Дневник разработчиков Модификация ИИ от 16.10.2018

Gor

Вольный горожанин
Депутат
Сообщения
256
Карма
173 3
#1
Добро пожаловать в дневник разработчиков, меня зовут Майкл/Мишель, и я работаю программистом в команде разработчиков EU4 чуть больше года.

Как многие из вас отметили, ИИ действует некорректно после недавних обновлений. Особенно когда речь идет о защите своей родины и выборе крепостей для осады. Поэтому в предстоящем обновлении "Испания" мы потратили достаточно времени на улучшение этих аспектов поведения армий ИИ. В этом дневнике разработчиков я расскажу о некоторых изменениях, которые мы внесли. Помимо улучшенных жёстко закодированных шаблонов поведения ИИ, в предстоящем обновлении модеры смогут влиять на некоторые аспекты поведения ИИ армии с помощью скриптов. А закончу я этот дневник коротким объяснением/учебником.

Сначала я рассмотрю уже проделанные изменения и улучшения. Поскольку мы еще работаем над этим обновлением, всё это в дальнейшем может измениться.

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

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

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

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

Модифицируемый ИИ армий

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

Вы найдёте новые файлы скрипта с некоторым базовым функционалом в commmon/ai_army, но вы можете добавить и сколько угодно своих.

Давайте рассмотрим простой пример:
Код:
Код:
province = {
    war = {
        active = {
            is_at_war = yes
        }
        eval_multiply = {
            modifier = {
                factor = 0.1
                is_in_capital_area = yes
            }
        }
    }
}
Сейчас ключ верхнего уровня - это всегда "провинция". Мы возможно добавим и другие варианты позже. Второй ключ - это просто имя, которое вы можете свободно выбрать и служит для разделения различных модификаций, которые вы хотите использовать. Как и вероятности событий, начальное значение для них равно 1. Интересные ключи "active", "eval_multiply" и (не показано) "eval_add" и "eval_overwrite". С их помощью вы можете управлять изменениями, которые будут применены к оценке провинции. В этом случае она будет применяться всякий раз, когда страна находится в состоянии войны.
Важно отметить, что оценка провинций происходит очень часто и для всех армий в игре, поэтому этот "active" триггер не будет проверяться каждый раз, когда оценивается провинция (что может произойти сотни раз в день).
Но будет оцениваться, при любом из следующих событий:
- Всякий раз, когда вы получаете или теряете право собственности или контроль над провинцией
- Когда война начинается или заканчивается
Есть три способа изменить счет, вы можете умножить его, добавить к нему или перезаписать его. Коэффициент может быть отрицательным и < 1.0, так что обратные операции также возможны.
Обратите внимание, что армии предпочитают провинции с наименьшим количеством очков.

Хотя вы сможете сильно влиять на армии, все еще есть некоторые жестко запрограммированные вещи, которые всегда будут иметь приоритет, и, очевидно, армии все равно всегда будут придерживаться правил игры (например, когда разбитая армия отступает и её нельзя добить, пока она до точки назначения не дойдёт-прим. пер). Это хороший вариант, однако, я с нетерпением жду, чтобы увидеть, как он будет использоваться в модах. Конечно, этим также можно сломать поведение ИИ, поэтому я бы рекомендовал быть осторожным, особенно с "eval_overwrite".

Для отладки скрипта можно использовать "ИИ mapmode". В этом "mapmode" вы можете увидеть оценку для каждой провинции, при выборе армии. Можно включить "mapmode", выполнив эту команду в консоли:
Код:
Код:
mapmode aieval



На сегодня это всё! На следующей неделе мы рассмотрим нововведения будущего Immersion Pack. В то же время я буду наблюдать за темой на форуме, поэтому вы можете спокойно задавать там вопросы.
 

Haikan

Вольный горожанин
Сообщения
238
Карма
106 5
#2
- Выбор армий для вторжений (на заморских территориях) теперь учитывает потенциальные угрозы родине и при необходимости будет выделять меньше армий. По-прежнему существует вариант, что ИИ решит начать вторжение всеми силами, если ИИ считает, что иначе ему не победить. Расчёт требуемой силы был переработан и теперь должен лучше определять нужное количество подразделений.
Надеюсь я больше не увижу Испаний и Великобританий не имеющих войск в своих родных землях. И всё же..
Будет очень жаль, если все эти нововведения для ИИ не будут включать в себя улучшенные десанты на транспортных кораблях для ИИ.
 
Сверху