Current time: 26.11.2024, 22:27 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
AI - искусственный интеллект (ИИ)
» Поведение ИИ, предложения/идеи по его улучшению, ресивер !!AI
Author Message
Elzivir Offline

Posts: 263
Post: #61

(06.07.2017 10:08)Algor Wrote:  как будет действовать ИИ в ситуации, когда перед его воротами герой без войск, но с наложенной "маскировкой".

На маскировку ИИ не повелся... Ab
06.07.2017 17:49
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #62

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


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 07.07.2017 07:56 by MOP.)
07.07.2017 07:48
Find all posts by this user Quote this message in a reply
Elzivir Offline

Posts: 263
Post: #63

MOP, если я правильно понял, то данная задача по степени сложности представляет собой нечто неординарное? В переводе на Era ее возможно реализовать так, чтоб было понятно простым смертным?

P/S: признаться, я мало что понимаю в "хуках", и уж тем более в "треугольных числах"...))
07.07.2017 08:09
Find all posts by this user Quote this message in a reply
Elzivir Offline

Posts: 263
Post: #64

А такой вариант возможен?

Присваивать герою без армии (но с командиром) при передаче хода какого-нибудь быстрого, но слабого юнита (такого, чтобы это никак не отразилось на скорости героя на следующем ходу и не отпугнуло потенциального врага)? А с начала последующего дня или при нападении на этого героя в процессе хода других игроков/ИИ просто удалять этого юнита из стека...
(This post was last modified: 09.07.2017 00:00 by Elzivir.)
08.07.2017 23:08
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #65

Elzivir, ну попробуй:
Отсутствие опечаток или ошибок не гарантирую.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
09.07.2017 13:12
Find all posts by this user Quote this message in a reply
Elzivir Offline

Posts: 263
Post: #66

(09.07.2017 13:12)gamecreator Wrote:  Elzivir, ну попробуй:
Отсутствие опечаток или ошибок не гарантирую.

gamecreator, что-то не работает... 105
ИИ по-прежнему не впадает в панику при виде героя без армии у ворот замка.
(This post was last modified: 10.07.2017 00:41 by Elzivir.)
09.07.2017 21:27
Find all posts by this user Quote this message in a reply
Heromant Offline

Posts: 348
Post: #67

(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.
20.08.2018 02:01
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #68

У меня в опции "Не место для людей" для ИИ открываются города игрока-человека и им выставляется "повышенный интерес".
Но насколько влияют на посещаемость именно эти баллы - оценить сложно.

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


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
20.08.2018 14:29
Visit this user's website Find all posts by this user Quote this message in a reply
ModWizard Offline

Posts: 8
Post: #69

Quote: Повторюсь: проблема не в том, как технически устроить втречу/передвижение, а в том, чтобы определить когда это действительно нужно.

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


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

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

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

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

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

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

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

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

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

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

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

можно конечно пойти с низу вверх, но боюсь в случае чего такой подход при попытке включить в него другие ситуации может начать нуждаться в большом количестве костылей.
(This post was last modified: 21.08.2018 02:05 by ModWizard.)
21.08.2018 00:51
Find all posts by this user Quote this message in a reply
Elzivir Offline

Posts: 263
Post: #70

Извиняюсь, если тема уже поднималась ранее, хотя таковой на форуме и не нашёл. Можно ли "научить" ИИ использовать в качестве активных наиболее мощные из имеющихся у него артефактов? Не раз уже наблюдал, как герой ИИ весело бегает с артефактами начального уровня (+1/+2), однако у него же в рюкзаке пылятся реликты, способные очень сильно повлиять на ход игры.
05.10.2018 04:29
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #71

Технически это не сложно. Можно в начале каждого хода ИИ игрока проходиться по его героям, далее по имеющимся артефактам и принудительно надевать арты с максимальной ценностью.
Но тогда нужно также заморочиться и с модификаторами ценности в зависимости от текущего состояния героев. Чтобы при отсутствии некромантии/стрельбы "обнулялись" ценности соотв. артов, при значительном кол-ве низкоуровневых существ повышалась ценность артов на +1 к здоровью, при отсутствии книги обесценивались арты на силу/знание, при выученном заклинании и выключенной опции "живые свитки" соотв. свитки не надевались бы в "разное" и т.д. Вот этих нюансов достаточно много.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
05.10.2018 14:55
Visit this user's website Find all posts by this user Quote this message in a reply
Noel Offline

Posts: 110
Post: #72

Хотите, чтобы ИИ вас дрючил? Ставьте себе мод "Конкистадор" от валери. Прекрасная штука
05.10.2018 16:38
Find all posts by this user Quote this message in a reply
Elzivir Offline

Posts: 263
Post: #73

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

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

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

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

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

P/S: Понимаю, что исправление данного аспекта поведения ИИ хоть и не сделает из него гения тактики и стратегии, но что несколько усилит его и без того обделенный природой искусственный мозг уж точно. Yes
(This post was last modified: 05.10.2018 22:03 by Elzivir.)
05.10.2018 21:11
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #74

Очень ценные замечания для любого реального ИИ мода.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
05.10.2018 23:25
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #75

   Амулет гробовщика, Мантия вампира, Сапоги мертвеца учитываются лишь при наличии у героя вторичного навыка Некромантии
В Эре пофиксили "поднятие 1 скелета" для ИИ?
07.10.2018 04:16
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group