По какому алгоритму рассчитывают Ai Value и Fight Value?
P.S. Убил бы того, кто дал этим характеристикам такие невнятные, подменяющие друг друга названия. Постоянно забываю, что есть что. Можете напомнить ещё раз.
MOP, походу никакого алгоритма нету - это просто результаты рейтингового тестирования существ...
А почему тогда при неверном значении бывают вылеты?
К тому же, мне кажется, эти показатели не были бы такими странными и некруглыми, если бы устанавливались от балды... Но, может, я ошибаюсь.
Так я же и не говорил, что они ставились от балды. Люди смотрели силу существа и в зависимости от неё выставляли рейтинг для этих значений...
(09.09.2009 17:19)MOP Wrote: [ -> ]По какому алгоритму рассчитывают Ai Value и Fight Value?
P.S. Убил бы того, кто дал этим характеристикам такие невнятные, подменяющие друг друга названия. Постоянно забываю, что есть что. Можете напомнить ещё раз.
Не знаю, по какому алгоритму, но
c:\NewEraOfHeroes\Era Софт\MonsterPower\MonsterPower 2B.exe
умеет их рассчитывать
Ivor, там вроде бы просто функция, зависящая от параметров каждого существа, только и всего. А настоящие значения этих величин можно определить только долгой серий боёв-тестов...
(11.09.2009 09:40)Efrit Wrote: [ -> ]Ivor, там вроде бы просто функция, зависящая от параметров каждого существа, только и всего. А настоящие значения этих величин можно определить только долгой серий боёв-тестов...
Сильно подозреваю, что эти параметры и есть некие интегральные параметры, функция от боевых параметров юнита.
Если результат работы этой утилиты соответствует существующим значениям, то так оно и есть
Да нет же, не существует никакой функции. Я в своё время даже специально пытался восстановить интерполяционный многочлен по значениям Ai Value и Fight Value для неулучшенных существ 4 уровня (так как большинство из них без спецсвойств) - он не восстанавливается. Это как раз и доказывает, что эти параметры -
НЕ значения каких-либо функций, а именно что результаты серии тестовых боёв.
Да это и так видно - например, у Арбалетчика (неулучшенного) и Ящера (тоже неул.) эти параметры полностью совпадают, хотя у Ящера все навыки как минимум не хуже, чем у Арбалетчиков - а некоторые просто лучше. Значит, либо просто Арбалетчикам в тестовых боях везло (или на траве тестили

), либо им эти значения "от балды" выставили. А вот уже у улучшенных Арбалетчиков AI Value в 1.6 раза выше, хотя из их навыков улучшается лишь скорость (+2). А всё потому, что они теперь атакуют дважды - а значит, и особые свойства тоже учитывались, чего ни одна функция сделать не может.
(11.09.2009 13:05)Efrit Wrote: [ -> ]Да нет же, не существует никакой функции. Я в своё время даже специально пытался восстановить интерполяционный многочлен по значениям Ai Value и Fight Value для неулучшенных существ 4 уровня (так как большинство из них без спецсвойств) - он не восстанавливается. Это как раз и доказывает, что эти параметры - НЕ значения каких-либо функций, а именно что результаты серии тестовых боёв.
так сама утилита выдает похожие на реальность значения?
(11.09.2009 13:05)Efrit Wrote: [ -> ]Да это и так видно - например, у Арбалетчика (неулучшенного) и Ящера (тоже неул.) эти параметры полностью совпадают, хотя у Ящера все навыки как минимум не хуже, чем у Арбалетчиков - а некоторые просто лучше. Значит, либо просто Арбалетчикам в тестовых боях везло (или на траве тестили
), либо им эти значения "от балды" выставили. А вот уже у улучшенных Арбалетчиков AI Value в 1.6 раза выше, хотя из их навыков улучшается лишь скорость (+2). А всё потому, что они теперь атакуют дважды - а значит, и особые свойства тоже учитывались, чего ни одна функция сделать не может.
Элементарно может. Если функция расчета интегрального параметра выглядит как Аt*k1+Dам*k2+Def*k3 и т.д., то наличие спецсвойств типа двойного выстрела можно учесть в формуле вида *(Аt*k1+Dам*k2)*(1+DoubleShot)+Def*k3, где DoubleShot - получает значение 0 или 1 в зависимости от наличия спецспособности.
В случае с AI value и Fight value нужно сначала определиться, что, собственно, представляет собой юнит, параметры которого задаются. Например, если это юнит 5 уровня, стрелок, не имеющий штрафа в рукопашной, то отталкиваться нужно от параметров близких по характеристикам монстров, в данном случае, монахов и фанатиков. Если юнит N - сильнее их (либо по ТТХ, либо по абилкам), то задаются параметры большие, чем у сравниваемых, если слабее, то меньшие.
Другими словами, нужно отталкиваться от параметров юнита, родственного юниту N по уровню и характеристикам. Это самый верный способ заставить ИИ адекватно реагировать на нового монстра.
В принципе, есть приблизительный алгоритм вычисления данных параметров, причем это можно проверить на большинстве имеющихся монстров:
1. Вычисляется базовая сила монстра (прога Берсеркера), если юнит не имеет абилок, то это значение (с небольшим "плюс-минус") задается в качестве параметра Fight value. Если это даунгрейд, то, как правило, AI value (ценность для ИИ) не сильно отличается от Fight value.
2. Если у юнита есть абилки, то к базовой силе монстра добавляется приблизительно 30% (реже 40%, если юнит очень сильный и по ТТХ и по абилкам), и это значение соответствует Fight value. Если юнит очень ценный, как правило, апгрейд, то к значению Fight value добавляется еще приблизительно 20-40%, и это значение соответствует AI value.
При этом, цена юнита соответствует Fight value, с поправкой, в большинстве случаев, в меньшую сторону.
Расчеты я производил на довольно большом количестве стандартных монстров, так что алгоритм этот можно считать базисом, на котором разработчики игры определяли шкалу параметров Fight value и AI value.
В целом, эта информация больше для ознакомления, так как лучше ориентироваться, как я писал выше, на конкретного монстра (или монстров), близких по параметрам для моделируемого.
имхо если бы AI и Fight value вычислялись по формуле их бы тупо не вбивали, а вбили бы формулу через которую они бы и вычислялись.
Quote:имхо если бы AI и Fight value вычислялись по формуле их бы тупо не вбивали, а вбили бы формулу через которую они бы и вычислялись.
А интересно - если у лучников кончаются стрелы, то городские башни всё равно бьют именно их? Ведь, по логике вещей, их "ценность" должна поменяться...
Как я заметил, Fight Value брали по схожим с моим алгоритмом для монстров с абилками, а вот на AI Value накидывали ганимедовы проценты. Видно потому, что абилки - вещь тонкая.
Если лазурному дракону все параметры сделать 1, как будет играть за него комп: как за существо со слабыми параметрами, или как за существо, идентифицирующееся, как лазурный дракон?
И вообще комп смотрит на параметры существа, или на его номер?
Вроде как ΑΙ Value за это в ответе.