Алгоритм на поле боя ИИ - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Ответ
 
Опции темы
#1
Старый 30.04.2014, 17:57
  #1
^
Attasik
 
Аватар для Attasik
📖
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
По умолчанию
Алгоритм на поле боя ИИ

Добрый день. Просмотрел форум, ответа (вопроса) не нашел.

По какому принципу нейтралы агрятся на поле боя? Есть ли какой то алгоритм у ИИ на кого ранее бежать (стрелять)?. Или тупо бежать в перед , а потом до кого добегают, того и бьют.

Если не корректно выразился, можете пинать.
Attasik вне форума
Ответить с цитированием
#2
Старый 02.05.2014, 19:43
  #2
^
dnaop-wr
 
Аватар для dnaop-wr
📖
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
По умолчанию
Re: Алгоритм на поле боя ИИ

Посмотри Памятку по тройке в моей подписи - там есть раздел о поведении ИИ на поле боя.
__________________
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
dnaop-wr вне форума
Ответить с цитированием
#3
Старый 02.05.2014, 20:57
  #3
^
Attasik
 
Аватар для Attasik
📖
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
По умолчанию
Re: Алгоритм на поле боя ИИ

dnaop-wrПосмотри Памятку по тройке в моей подписи - там есть раздел о поведении ИИ на поле боя.

Спасибо большое. В памятке получил полный ответ. Тему можно закрывать.
Attasik вне форума
Ответить с цитированием
#4
Старый 16.09.2014, 01:25
  #4
^
LazyBoy
📖
Регистрация: 06.11.2012
Сообщения: 9
Регистрация: 06.11.2012
Сообщения: 9
По умолчанию
Re: Алгоритм на поле боя ИИ

dnaop-wrПосмотри Памятку по тройке в моей подписи - там есть раздел о поведении ИИ на поле боя.
В своё время, почти год назад, занимался подобным вопросом, но только при 1 на 1 отрядах. За пример было взято изучение, как ведёт себя стек виверн в нычке при её захвате гнолями. При их скорости вивы ходят раньше и имеют два варианта поведения - вейт и полёт полностью вперёд. Зависит это от того, боятся они получить по голове от гнолей или нет. В итоге шло сравнение значений, полученных по формуле ниже и от их соотношения можно было понять тактику ИИ.
Собственно, сама формула выглядела примерно так(FV - Fight Value из crtraits.txt):
K_стека = HP_юнита*(урон_стека/FV_юнита), где
FV_юнита = sqrt(((FV_базовое+(атака_героя*FV _базовое)/20 )^2)*((FV_базовое+(защита_героя* FV_базовое)/20)^2))
Впрочем, это не совсем всё, но примерное объяснение в том, что стек просто хочет нанести больший урон не по HP, а по HP*FV, при этом он отдельно учитывает атаку и защиту героя, то есть, при прочих равных стек с атакой и защитой 5/5 и героем 0/0 для него не то же самое, что 3/3 и 2/2, хотя и урон при этом одинаковый. При этом, вивы всегда подлетали, если соотношение (К_стека_гнолей/К_стека_виверн)>=2. То есть, они уже хоронили себя заранее. Так же и в случае, если соотношение <=0.07. Они считают, что уже победа.
Примерно так я всё это могу по старым записям описать, но вполне возможно, что в чём-то ошибся, всё-таки уже почти год прошёл. Если интересно - могу показать примеры расчёта и всё такое, но это надо вспоминать.
На практике же это - атака змиев в ульях, атака стрелков в начале раунда по выдвинутым кентам, а не по эльфам, страх получить по зубам от стека вив и удар в единичку.
P.S. И да, кстати, урон_стека - это средний урон. То есть, стек воздушек будет считать свой урон за 5 при уроне 2-8. В своё время хотел записать видео с выводом формулы такой, но таааак мне лень.
LazyBoy вне форума
Ответить с цитированием
#5
Старый 17.09.2014, 10:43
  #5
^
dnaop-wr
 
Аватар для dnaop-wr
📖
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
По умолчанию
Re: Алгоритм на поле боя ИИ

Ну да, это математическое обоснование поведения ИИ на поле боя. Одна беда - далеко не всегда можно быстро учесть, оценить и просчитать влияние всех факторов. Поведение ИИ можно определить как наиболее вероятное, но не значит, что он поступит именно так - он может поступить нелогично с точки зрения игрока, но логично по заложенному в него алгоритму. К тому же возможно и определенный рандом действий ИИ присутствует в некоторых ситуациях. Поэтому кратко и однозначно описать алгоритм поведения ИИ на поле боя не представляется возможным (без вскрытия кода).
Впрочем, хочу отметить, что "безмозглая" нежить ведет себя как и должна - она идет к ближайшему врагу, в то время как живые юниты могут игнорировать подставку и идти напрямую к главным силам врага.
__________________
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
dnaop-wr вне форума
Ответить с цитированием
#6
Старый 17.09.2014, 20:17
  #6
^
LazyBoy
📖
Регистрация: 06.11.2012
Сообщения: 9
Регистрация: 06.11.2012
Сообщения: 9
По умолчанию
Re: Алгоритм на поле боя ИИ

dnaop-wrНу да, это математическое обоснование поведения ИИ на поле боя. Одна беда - далеко не всегда можно быстро учесть, оценить и просчитать влияние всех факторов. Поведение ИИ можно определить как наиболее вероятное, но не значит, что он поступит именно так - он может поступить нелогично с точки зрения игрока, но логично по заложенному в него алгоритму. К тому же возможно и определенный рандом действий ИИ присутствует в некоторых ситуациях. Поэтому кратко и однозначно описать алгоритм поведения ИИ на поле боя не представляется возможным (без вскрытия кода).
Впрочем, хочу отметить, что "безмозглая" нежить ведет себя как и должна - она идет к ближайшему врагу, в то время как живые юниты могут игнорировать подставку и идти напрямую к главным силам врага.
Не уверен, что есть разница между типом существа, так как во время тестов у меня и скелеты присутствовали. Вели себя в точности, как и другие. При этом, учитывая отсутствие морали, не могу и утверждать, что поведение идентично. А ещё насчет поведения - мой тест в улике 12 могу привести.
Герой - Аин 0/0 (СП и знание не учитываются ИИ при расчете ходов). Армия - только гнолики. Пробуем две расстановки гнолей:
422+6 единичек и 423+6 единичек. В первом случае змии бьют по единичкам. Во втором бросаются на большой стек. Разница в уронах тут мало значения имеет. Считая FV стеков можно заметить, что FV змиев = 250*60 = 15000, в свою очередь FV 428 гнолей = 70*428 = 29960. 429й гнолик выступает как раз тем граничным гноликом, который заставляет змиек понять, что им ничего не светит. Увеличивает FV гнолей настолько, что соотношение становится >=2. Итог - удар первых змиек по большому стеку. Далее же змийки видят 7 стеков, один из который ответку не даст, но при ударе по нему будет больше потерь HP*FV у врага. Поэтому все остальные пинают так же большой стек.
Таким вот образом добавляя одного гноля, можно увеличить потери, имея бОльшую армию.
Кстати, однажды у меня в игре всё пошло неправильно в склепе из-за большего количества гнолей. Оказалось, что убитый ящерами вампир унизил FV противника настолько, что соотношение вышло за рамки, от чего тряпки уже понеслись убивать большие стеки, а не гонялись за мухой. Как-то так было примерно, точно уже не вспомнить.
P.S. При 428 гнолях, если большой стек дефится в первом раунде, то вторым раундом получит по башке, даже если есть ещё 1 гнолика. Прибавленная единичка дефа, похоже, считается не от существа, а от героя, и в итоге стек получает гнолей с несколько бОльшим FV, что и заставляет ударить их.
LazyBoy вне форума
Ответить с цитированием
#7
Старый 18.09.2014, 11:34
  #7
^
dnaop-wr
 
Аватар для dnaop-wr
📖
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
По умолчанию
Re: Алгоритм на поле боя ИИ

Я не тестировал поведение различных монстров на поле боя - просто заметил типичное поведение определенных видов монстров.
__________________
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
dnaop-wr вне форума
Ответить с цитированием
#8
Старый 17.01.2020, 18:54
  #8
^
Tarmo
 
Аватар для Tarmo
📖
Регистрация: 29.05.2018
Адрес: Спб
Сообщения: 57
1448
Отправить сообщение для  Tarmo с помощью ICQ
Регистрация: 29.05.2018
Адрес: Спб
Сообщения: 57
1448
Отправить сообщение для  Tarmo с помощью ICQ
По умолчанию
Re: Алгоритм на поле боя ИИ

Формула определения Велью стека не верная не много или криво записана, вот точная формула

FV_юнита=floor((sqrt( Fight_Value+(Fight_Value*(Атака_Героя+ Бонус_Атаки )/20)*(Fight_Value+(Fight_Value*Защита_Гер я+Бонусы_Защиты/20) ))

И если выражение Fv_юнита* Сумма_Юнитов > 2*Fight_Value * N верно, то АИ будет бить по мейн стекам, если не верна, то будет избегать их и бить по единичкам.
floor - округление полученного числа в меньшую сторону.
Где бонусы это сумма бонусов за родную землю(+0 или +1) и бонус юниту от героя спеца по этому юниту в единицах. К примеру Галтран +1 на 1 уровне даст скелетам. Fight_Value велью юнита.

Данной формулой можно пользоваться при нападении на Черные Башни с черным или Золотым драконом.

Так же более общая формула для смешанной армии для определения в какой момент алгоритм Аи изменяется в бою

Σ(Ni*floor(sqrt(V(vi,ha,b1)*V(ai,hd,b1))) > 2*vj*Nj,
где V(vi,ha,b1)=FV_юнита.
Если формула не верна то АИ будет стараться закрывать стрелков, бить по тем кто меньше ответный удар нанесет, держаться на расстоянии от удара мейн стека, бить по существу с которого снят ответный удар, и который ранен. И вообще много разных коэффициентов, в общем урон будет по Велью_Юнита*Урон/ХП_Юнита
__________________
isq 742235848
isq 742235848
Tarmo вне форума
Ответить с цитированием
#9
Старый 14.10.2025, 15:24
  #9
^
Plotnick
📖
Регистрация: 01.06.2010
Сообщения: 70
Регистрация: 01.06.2010
Сообщения: 70
По умолчанию
Re: Алгоритм на поле боя ИИ

Вопрос, который давно хотел задать. В трешке рандом не вполне себе рандом. Он буквально предсказуем, вплоть до того, что если вы рестартанули сценарий и в сундуке рядом с городом подобрали допустим 1000 золота, то в рядом в могиле воина окажется допустим перчатки всадника, а если в сундуке будет 1500 то в могиле что-то другое. Но если вы опять рестартанёте и в сундуке будет 1000, то в могиле опять будут перчатки. Также и с деревом прокачки героев, благодаря чему работает тулза LMOracle. 
Интересно, что в какие бы версии я не игра, откуда бы их не скачивал и на какой бы комп не ставил, ровно также у меня работает и в бою. Если я повторяю одну и ту же последовательность действий, то ровно в те жу моменты боя у меня/ у компа будет выпадать мораль, удача, те же касты джинов или чародеев и т.д. Однако часто в обсуждении прохождений в оффлайн встрачются такие замечания, что мол нельзя строить прохождение на том, что должна выпасть мораль, она ведь может и не выпасть и т.д. То есть, чувствю, что так рандом как работает у меня, будто бы работает только у меня. 
Может быть дело в HD моде или в чем-то еще? Подскажите у кого как работает рандом в бою, потому что у меня 100% воспроизводимые события при пошаговом повотрении.
Plotnick вне форума
Ответить с цитированием
#10
Старый 14.10.2025, 19:35
  #10
^
Nameless Hero
📖
Регистрация: 03.12.2021
Сообщения: 76
Регистрация: 03.12.2021
Сообщения: 76
По умолчанию
Re: Алгоритм на поле боя ИИ

PlotnickВопрос, который давно хотел задать. В трешке рандом не вполне себе рандом. Он буквально предсказуем, вплоть до того, что если вы рестартанули сценарий и в сундуке рядом с городом подобрали допустим 1000 золота, то в рядом в могиле воина окажется допустим перчатки всадника, а если в сундуке будет 1500 то в могиле что-то другое. Но если вы опять рестартанёте и в сундуке будет 1000, то в могиле опять будут перчатки. Также и с деревом прокачки героев, благодаря чему работает тулза LMOracle. 
Интересно, что в какие бы версии я не игра, откуда бы их не скачивал и на какой бы комп не ставил, ровно также у меня работает и в бою. Если я повторяю одну и ту же последовательность действий, то ровно в те жу моменты боя у меня/ у компа будет выпадать мораль, удача, те же касты джинов или чародеев и т.д. Однако часто в обсуждении прохождений в оффлайн встрачются такие замечания, что мол нельзя строить прохождение на том, что должна выпасть мораль, она ведь может и не выпасть и т.д. То есть, чувствю, что так рандом как работает у меня, будто бы работает только у меня. 
Может быть дело в HD моде или в чем-то еще? Подскажите у кого как работает рандом в бою, потому что у меня 100% воспроизводимые события при пошаговом повотрении.

Видимо разные сиды генерируются при рестартах. Это на Hota или SOD? Просто в бою в Hota рандом строго детерминированный (повторяемость полная), а в SOD/Complete все как раз таки почти хаотично (тут рандом покадровый). 
Nameless Hero вне форума
Ответить с цитированием
#11
Старый 15.10.2025, 12:13
  #11
^
Plotnick
📖
Регистрация: 01.06.2010
Сообщения: 70
Регистрация: 01.06.2010
Сообщения: 70
По умолчанию
Re: Алгоритм на поле боя ИИ

Nameless HeroЭто на Hota или SOD?

SOD разных версий пробовал. GOG, Complete, SOD english. Всегда получается 100% воспроизводимость.
Plotnick вне форума
Ответить с цитированием
#12
Старый 15.10.2025, 15:11
  #12
^
Nameless Hero
📖
Регистрация: 03.12.2021
Сообщения: 76
Регистрация: 03.12.2021
Сообщения: 76
По умолчанию
Re: Алгоритм на поле боя ИИ

PlotnickSOD разных версий пробовал. GOG, Complete, SOD english. Всегда получается 100% воспроизводимость.
Понял. Я как-то встречал видео в одном из тредов Реддита про воспроизводимость/смену раскладов при различных рестартах, где автор расписывал примерные паттерны. На примере кампании "Руби и Кромсай". Но к сожалению не могу найти это самое видео. На хота тоже самое , наверное, не знаете?
Nameless Hero вне форума
Ответить с цитированием
#13
Старый 15.10.2025, 18:31
  #13
^
Plotnick
📖
Регистрация: 01.06.2010
Сообщения: 70
Регистрация: 01.06.2010
Сообщения: 70
По умолчанию
Re: Алгоритм на поле боя ИИ

Nameless HeroЯ как-то встречал видео в одном из тредов Реддита про воспроизводимость/смену раскладов при различных рестартах, где автор расписывал примерные паттерны. На примере кампании "Руби и Кромсай".

В прохождениях раньше было на ag.ru в геройском уголке, но сейчас и уголка такого нет. В общем там прямо говорилось в началах разных кампаний, что рестартами добиваться комбинаций вторичных скилов. По сути, наборы этих комбинаций были статичны, то есть выпадало несколько вариантов. Притом, после какого-то из рестартов они могли зациклиться до двух. После чего надо было перезапускать игру. Так же происходит со стартовым артом, можно попытаться сгенерировать что-то приличное, на иногда рестарты уходят в цикличность, так и не родив ничего приличного ))
Но бои это другое дело, там можно сделать пропуск хода или какое-то действие, чтобы воздействовать на рандом. Допустим, можно сидеть и считать ходы вражеского отряда и заметить что на 5 ходу у него выпадает мораль. Чтобы этого не случилось надо как-то поменять расклад, например, походить своим отрядом или наоборот пропустить ход. Иначе мораль опять случится на 5 ходу. Вот об этом я говорю. Это у меня работает всегда, а причины такого поведения мне непонятны.
В хоту не играл.
Plotnick вне форума
Ответить с цитированием
Ответ


Опции темы



Часовой пояс GMT +4, время: 11:22.


vBulletin v3.5.0, Copyright ©2000-2026, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru