Wake of Gods Forum | Форум Во Имя Богов

Full Version: AI - искусственный интеллект (ИИ)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6
(06.07.2017 10:08)Algor Wrote: [ -> ]как будет действовать ИИ в ситуации, когда перед его воротами герой без войск, но с наложенной "маскировкой".

На маскировку ИИ не повелся... Ab
Я ставил хуки на функции вычисления Fight Value и AI value отрядов и умножал базовые показатели командира на треугольные числа по порядку его уровней.
Правда, я сам так и не понял, помогло ли это. Скорее всего, структура героя в ряде случаев копируется в стек и поэтому код её не ловит, потому что учитывает только основной блок структур героев.
MOP, если я правильно понял, то данная задача по степени сложности представляет собой нечто неординарное? В переводе на Era ее возможно реализовать так, чтоб было понятно простым смертным?

P/S: признаться, я мало что понимаю в "хуках", и уж тем более в "треугольных числах"...))
А такой вариант возможен?

Присваивать герою без армии (но с командиром) при передаче хода какого-нибудь быстрого, но слабого юнита (такого, чтобы это никак не отразилось на скорости героя на следующем ходу и не отпугнуло потенциального врага)? А с начала последующего дня или при нападении на этого героя в процессе хода других игроков/ИИ просто удалять этого юнита из стека...
Elzivir, ну попробуй:
Отсутствие опечаток или ошибок не гарантирую.
(09.07.2017 13:12)gamecreator Wrote: [ -> ]Elzivir, ну попробуй:
Отсутствие опечаток или ошибок не гарантирую.

gamecreator, что-то не работает... 105
ИИ по-прежнему не впадает в панику при виде героя без армии у ворот замка.
(30.05.2017 13:39)Algor Wrote: [ -> ]
(30.05.2017 13:27)Heromant Wrote: [ -> ]Реализовывать алгоритм поиска оптимального пути на ERM с нуля достаточно сложно...Но данный алгоритм уже реализован в базовом ИИ игре, но как извлечь его, отделив от перемещения - я не знаю, да и вряд ли кто-то здесь мне поможет это сделать.
Вообще, надо просто найти существующую функцию и использовать ее. Это к "реверсерам". По-поводу "вряд ли кто-то здесь мне поможет" - а ты просил?

А кто-нибудь разбирался вообще, как работают баллы значимости. В ERM-Help написано следующее:
"В зависимости от установленной значимости точки, ИИ может отклонить от пути для сбора сокровищ, атаки более слабых монстров или героев, захвата шахты или городов." А в описании соответствующего параметра для AI:S
"$4 – значимость точки (500000 – значима, 5000000 – очень значима)"
Вопрос в следующем. Возможно, дальность и сложность доступа, не учитываются в баллах значимости, также, как и мощь героя с армией, для которого эта значимость точки устанавливается. Ведь наверняка же эти баллы для каких-нибудь мельниц не меняются в зависимости от того, какой герой с какой армией выбран и на каком расстоянии он от этой мельницы находится. Читаем дальше ERM-Help:
"Также можете связать координаты героя противника и координаты точки назначения, и герой ИИ будет неумолимо преследовать героя игрока."
А почему бы не связать таким образом координаты одного героя ИИ с координатами другого героя ИИ, армии/артефакты которых нуждаются в перераспределении. Ведь, как и в случае с мельницей, баллы значимости, которые мы будем задавать не должны будут меняться с расстоянием между героями а зависеть лишь от полезности встречи. Причем, очевидно, более слабый герой должен затрачивать больше мувипойтов для встречи, так как у сильного скорее всего будут задачи с большей значимостью, например пробивки.
Самая важная задача в этом случае правильно отмасштабировать баллы скоринга полезности встречи с задаваемыми баллами полезности встречи в ERM.
У меня в опции "Не место для людей" для ИИ открываются города игрока-человека и им выставляется "повышенный интерес".
Но насколько влияют на посещаемость именно эти баллы - оценить сложно.

Что до "принуждения к встрече", то тут вполне себе можно опытным путем попробовать подобрать коэффициенты - ставишь 2х ИИ героев в окружении "вкусняшек", задаешь им страстное влечение друг к другу и смотришь куда побегут в первую очередь. Заодно и влияние расстояния до "вкусняшек" можно будет оценить.
Если что, не забудь потом поделиться результатами наблюдений, в Help'е информации действительно маловато.
Quote: Повторюсь: проблема не в том, как технически устроить втречу/передвижение, а в том, чтобы определить когда это действительно нужно.

Если говорить о реализации нового ИИ, то в начале нужно определится со структурой его работы. После этого многое станет яснее, как формализовать то или иное условие.


Впрочем, извините что влезаю - тема начинается довольно оборвано и сложно понять тут про корректировку каких-то манер поведения ИИ или новый ИИ вообще.

Например, могу по фантазировать. Нижеприведенное лишь фантазия, как пример подхода к формализации таких вещей. Я сам периодический сижу прикидываю, как бы можно было бы сделать. На самом деле, если подумать можно сделать все проще и быстрее)

Ход ИИ должен быть разбит на два этапа:

1. Стратегический.

Происходит анализ карты, юнитов и ресурсов, выбирается стратегия: раш, раскачка, планомерный отжим. Устанавливается ценность тактических действий, условия переоценки стратегии (к примеру, достижение суммарной силы армии при режиме раскачки, встреча с врагом при движении).

2. Далее, для каждого героя, начинается тактическая фаза. Каждый герой соображает, какое тактическое действие он может совершить и происходит оптимизация по суммарной стоймости этих действий за ход.

К примеру, получена стратегия раш.

Для второстепенного героя (определяем их мощь и сортируем их по списку) ценнее передать свои вещи и юниты главному и идти собирать ресурсы. у главного героя появляется стимул тащиться к ближайшему городу, собирая по пути монстру и забегая за ресурсами на право-налево, но не далеко.

Вначале ходят герои с суммарной ценностью действий наименьшей, они могут открыть что-то новое, или собрать достаточно ресурсов для переключения на другую стратегию. Тут уже можно подумать о новом планировании.

Фактический, все сводится к выработке замысла и решению оптимизационной задачи по нахождению наибольшей суммы действий. Тут уже яснее.

1. выдумывать список действий для начала.
2. формулировать условия выбора плана.
3. оценки ценности действий в нем.

можно конечно пойти с низу вверх, но боюсь в случае чего такой подход при попытке включить в него другие ситуации может начать нуждаться в большом количестве костылей.
Извиняюсь, если тема уже поднималась ранее, хотя таковой на форуме и не нашёл. Можно ли "научить" ИИ использовать в качестве активных наиболее мощные из имеющихся у него артефактов? Не раз уже наблюдал, как герой ИИ весело бегает с артефактами начального уровня (+1/+2), однако у него же в рюкзаке пылятся реликты, способные очень сильно повлиять на ход игры.
Технически это не сложно. Можно в начале каждого хода ИИ игрока проходиться по его героям, далее по имеющимся артефактам и принудительно надевать арты с максимальной ценностью.
Но тогда нужно также заморочиться и с модификаторами ценности в зависимости от текущего состояния героев. Чтобы при отсутствии некромантии/стрельбы "обнулялись" ценности соотв. артов, при значительном кол-ве низкоуровневых существ повышалась ценность артов на +1 к здоровью, при отсутствии книги обесценивались арты на силу/знание, при выученном заклинании и выключенной опции "живые свитки" соотв. свитки не надевались бы в "разное" и т.д. Вот этих нюансов достаточно много.
Хотите, чтобы ИИ вас дрючил? Ставьте себе мод "Конкистадор" от валери. Прекрасная штука
(05.10.2018 14:55)Algor Wrote: [ -> ]Технически это не сложно. Можно в начале каждого хода ИИ игрока проходиться по его героям, далее по имеющимся артефактам и принудительно надевать арты с максимальной ценностью.
Но тогда нужно также заморочиться и с модификаторами ценности в зависимости от текущего состояния героев. Чтобы при отсутствии некромантии/стрельбы "обнулялись" ценности соотв. артов, при значительном кол-ве низкоуровневых существ повышалась ценность артов на +1 к здоровью, при отсутствии книги обесценивались арты на силу/знание, при выученном заклинании и выключенной опции "живые свитки" соотв. свитки не надевались бы в "разное" и т.д. Вот этих нюансов достаточно много.

Algor, абсолютно согласен, что учесть все нюансы достаточно проблематично, т.к. их слишком много и не всегда очевидно, какие артефакты для ИИ более благоприятны в определенный отрезок времени. Поэтому, думаю, можно ограничиться, так сказать, базовой концепцией, предполагающей наиболее важные исправления, вызывающие наименьшие сомнения.

- Чем выше класс/ценность артефакта, тем выше его приоритет для ИИ.
- ИИ автоматически экипируется Сборным артефактом при условии нахождения всех его комплектующих, даже если некоторые его части лежат в рюкзаке.
- Слоты Кольца, Плащ, а также слоты под Разное для одиночных артефактов (т.е. не сборников) не учитываются, за исключением случаев, когда свиток с уже известным для ИИ заклинанием помещается из "разного" в рюкзак (кстати, последним пунктом вполне можно дополнить скрипт ESR "Разрушение артефактов, свитков и знамен").
- Амулет гробовщика, Мантия вампира, Сапоги мертвеца учитываются лишь при наличии у героя вторичного навыка Некромантии.
- Сапоги левитации, Ожерелье морского проведения, Шляпа морского капитана учитываются лишь при наличии на карте воды не менее 15%.

Далее пробегусь по оставшимся 6-ти слотам (от минимума до максимума).

Оружие: Секира кентавра - Меч правосудия.
Щит: Щит гномов - Щит львиной храбрости.
Шлем: Шлем белого единорога - Шлем небесного просвещения, либо Шляпа оратора для тех, у кого она не запрещена.
Доспехи: Доспехи из окаменелого дерева - Латы титана (в качестве альтернативы Латам тут можно назвать Доспехи из чешуи дракона, но последние по стоимости уступают первым, хотя и могут в некоторых случаях оказаться более полезными для ИИ класса "Воин").
Амулеты: тут заморачиваться насчет оберегов (учитывать для кого и когда они полезны) особого смысла не вижу, поэтому как всегда: чем выше класс/ценность артефакта, тем выше его приоритет для ИИ. Максимальный предел - Ожерелье божественной благодати.
Обувь: Наколенники из драконьей кости - Сандалии святого.

P/S: Понимаю, что исправление данного аспекта поведения ИИ хоть и не сделает из него гения тактики и стратегии, но что несколько усилит его и без того обделенный природой искусственный мозг уж точно. Yes
Очень ценные замечания для любого реального ИИ мода.
   Амулет гробовщика, Мантия вампира, Сапоги мертвеца учитываются лишь при наличии у героя вторичного навыка Некромантии
В Эре пофиксили "поднятие 1 скелета" для ИИ?
Pages: 1 2 3 4 5 6
Reference URL's