AlexSpl писал(а):
![](styles/prosilver/theme/images/openq.png)
![](styles/prosilver/theme/images/closeq.png)
Если напишите составы сражающихся армий, то я протестирую и составлю табличку.
Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! ![]() Добро пожаловать на геройский форум! ![]() |
Re: Герои 2 (разные версии) с плагинамиAlexSpl писал(а): ![]() ![]() Если напишите составы сражающихся армий, то я протестирую и составлю табличку. |
Re: Герои 2 (разные версии) с плагинамиМожно дать стандартному герою 1-го уровня без артефактов и модификаторов морали/удачи 5 родных отрядов 2-6 уровня фиксированной численности. Пусть это будет армия Волшебницы: 1 Феникс, 4 Единорога, 7 Старших Друидов, 15 Высоких Эльфов и 14 Боевых Гномов (примерно альфа 1 Феникса в каждом отряде). Для начала можно потестить бои против нейтралов. По-хорошему, нужно подобрать 5-10 нейтральных отрядов, обеспечивающих коэффициенты победы с равномерным шагом (например, 0.20, 0.30, ..., 0.80), но считать коэффициент победы точно вручную долго, а программ для подсчёта C[w] в Героях 2 у меня нет, поэтому можно просто от 5 альф Феникса (a) отталкиваться: например, 0.25a, 0.33a, 0.40a, 0.50a, 0.80a, 1.00a, 1.25a, 1.50a, 2.00a, 2.50a, 3.00a, 4.00a. И с каждым отрядом боёв 5 хотя бы (нерепрезентативно, желательно больше, но тут уж от свободного времени и желания тестировать зависит). Можно автоматизировать процесс, если совсем уж серьёзно подходить. Только вручную останется сразиться, без всяких трюков/разводов: просто игра среднего игрока, который уже не допускает ошибок в бою.
|
Re: Герои 2 (разные версии) с плагинамиЗавершил исследование. Таблицы можно посмотреть в приложенном файле (и при желании взять за основу для своих исследований):
Были проведены автобитвы с Мечниками, Птицами Рок и Друидами - численностью, соответствующей 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 Cw (коэффициента победы героя), по 3 автобитвы для каждого Cw с усреднением результатов (то есть потерь армии героя). Результаты в таблицах 3-7. Модификаторы героя (первичные навыки) были учтены, однако для существ (с обеих сторон) использовалась только Альфа-сила (базовые fight_value). Расчеты с использованием мю-поправки были произведены, однако исключительно для справки. Дополнительно проведены битвы и расчеты, показывающие неадекватность применения Мю-функций (табл. 16, 17). Так, проведены 3 автобитвы с Зомби-мутантами - армия героя выигрывает уже при Cw = 0.4 (92 Зомби-мутанта) и 3 автобитвы с Гоблинами - армия героя выигрывает уже при Cw = 0.2 (350 Гоблинов). Причина неадекватности результатов заключается в том что при расчете Cw использовались Мю-функции. Теперь вернемся к нормальным fight_value и нормальным результатам. Построены графики зависимости потерь армии героя в боях с нейтралами от Cw - можно сравнить результаты 1) автобоя, 2) оригинального теор. расчета, 3) нового теор. алгоритма ("new 1") - используются новые границы для dice (от 20 до 80) плюс сдвиги в значениях Cw 4) нового теор. алгоритма ("new 2") - используются новые границы для dice (от 20 до 80), но сдвиги не используются. Отдельные графики для Мечников, Птиц Рок и Друидов: ![]() ![]() ![]() Друиды оказались слабее, чем можно спрогнозировать на основе fight_values. При Cw = 0,5 армия героя выиграла все 3 автобитвы. Это можно объяснить завышенным fight_value для стрелков - в базовом fight_value используется "стратегическая ценность", которая у стрелков повышена, благодаря их важности при осадах - как при защите замка, так и при штурме. Для теор. расчета битв предлагаю использовать коэффициент 0.85 для стрелков к их Альфа-силе. Численность Друидов, необходимая для достижения нужных Cw, была перерасчитана, проведены дополнительные автобитвы (табл. 12, 13). Построен новый график для Друидов: ![]() Итогом приведем график для потерь, усредненных по боям с Мечниками, Птицами Рок, Друидами: ![]() Визуально можно сказать, что оба новых алгоритма теор. расчета лучше оригинального, однако алгоритм, который использует сдвиги Cw, дает неправдоподобно низкую величину потерь для высоких Cw (в районе 0,9) - 4% против 15% потерь, которые дает автобой. Нужно учитывать особую важность высоких значений Cw - ведь комп с большой вероятностью будет проводить битвы именно при высоких Cw. Кроме того, большие Cw соответствуют и большой армии - значит, каждый процент потерь соответствует большому количеству юнитов. Поэтому был предложен 3-й алгоритм расчета, который использует другие значения для сдвигов значений Cw: +0,02 если Cw >= 0.6 и Сw < 0.7 +0.04 если Cw >= 0.7 и Cw < 0.8 +0.02 если Cw >= 0.8 и Cw < 0.9 Игрового смысла в этих сдвигах никакого - чистая подгонка. Предполагаю, что и у Фила это была попытка чистой подгонки. Думаю, можно было бы обойтись без этих сдвигов, но это нужно работать ![]() То есть нужных результатов можно было бы достичь подборкой границ для dice плюс корректировкой основного алгоритма по потерям:
Сравнение автобоя и последнего (лучшего) алгоритма теор. расчета: ![]() Последний раз редактировалось Ben80 19 авг 2023, 18:14, всего редактировалось 3 раз(а).
|
Re: Герои 2 (разные версии) с плагинамиЧто меня дополнительно заинтересовало ? - Нетривиальность зависимости потерь от Cw. В смысле, реальной зависимости потерь - по данным автобоя (уверен, что при ручных битвах все эти нюансы сохранятся). Если двигаться от Cw = 0.5 в сторону больших значений Cw, то сначала при увеличении Cw потери резко падают, затем примерно в районе Cw = 0.8 увеличение Cw перестает существенно снижать потери (это как бы одна точка перегиба), ну а далее уже где-то в районе Cw = 0.95 потери резко падают до нуля (это как бы еще одна точка перегиба). Видимо, Фил и пытался это отразить в своем алгоритме:
|
Re: Герои 2 (разные версии) с плагинамиОтличная работа, но третий алгоритм нужно немного подкорректировать на участке C[w] от 0.2 до 0.6, ибо автобитва на этом участке даёт заведомо большие потери, причём расхождение довольно значимое (особенно на отрезке 0.4 .. 0.6).
|
Re: Герои 2 (разные версии) с плагинамиAlexSpl писал(а): ![]() ![]() Разница налицо, однако, может быть и не стоит тут ничего менять - во-первых это битвы когда защищающийся сильнее, следовательно, они очень редки. Во-вторых, в процентном соотношении также разница может быть приемлема (но визуально конечно да - бросается в глаза). Ну и как уже говорил должно быть соответствие между прогнозом ИИ перед боем и результатами боя. Для прогноза используется вот такая функция (в philAI_ProbableOutcomeOfBattle), которая как уже говорил дает лишь 75% потерь при Cw = 0.5:
|
Re: Герои 2 (разные версии) с плагинамиЦитата: ![]() ![]() Да нужно уравнять прогноз и теоретическую битву просто. По вычислениям даже ненакладно будет. |
Re: Герои 2 (разные версии) с плагинамиAlexSpl писал(а): ![]() ![]() Там вся суть в том, что в реальной битве должен быть сделан dice. Можно, конечно в прогнозе усреднить результаты по разным возможным значениям dice. Как собственно я и делал. Это возможно, да. |
Re: Герои 2 (разные версии) с плагинамиЦитата: ![]() ![]() Можно взять QuickBattle() без имплементации потерь. Т.е. лоухук на вот этот код:
И вызов "обрезанной" QuickBattle() для определения probablePreciseCasualtiesA, probablePreciseCasualtiesD. Это уравняет потери, которые ожидает получить AI и те, которые он получит. Цитата: ![]() ![]() Можно усреднять, конечно. А можно использовать последний бросок (dice) прогноза (где-то его хранить, в QuickBattle не делать новый, а просто доставать сохранённый). Кстати, это ещё сымитирует сомнения (нападать/не нападать) реального игрока. Последний раз редактировалось AlexSpl 19 авг 2023, 10:33, всего редактировалось 1 раз.
|
Re: Герои 2 (разные версии) с плагинамиВ общем, можно подумать. Но главное в том, чтобы было соответствие прогноза и МО реальных потерь. Но ! Реальные потери будут отличаться от МО потерь - dice должен влиять и давать разницу между прогнозом и реальным исходом.
|
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1