Victoria 3 Дневник разработчика #59 - Искусственный интеллект

Victoria 3 Дневник разработчика #59 - Искусственный интеллект
Опубликовано 22 Сен, 2022 0 likes

Здравствуйте и добро пожаловать в 59-й дневник разработки Victoria 3!

dev-diary-59-aivictoria-3_1.jpg

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

dev-diary-59-aivictoria-3_2.jpg

Таким образом, сейчас самое подходящее время поговорить об искусственном интеллекте Victoria 3 - о том, как он спроектирован, как работает и какие инструменты доступны моддерам для его настройки.

dev-diary-59-aivictoria-3_4.jpg

Однако на самом деле я не буду говорить о том, какую именно сложность обеспечивает искусственный интеллект или на каком уровне мастерства он играет.

dev-diary-59-aivictoria-3_7.jpg

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

dev-diary-59-aivictoria-3_3.jpg

Итак, как же работает искусственный интеллект в Victoria 3? Что ж, как и в других наших играх с большой стратегией, искусственный интеллект играет в ту же игру, что и вы.

dev-diary-59-aivictoria-3_6.jpg

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

dev-diary-59-aivictoria-3_0.jpg

В дополнение к этому, существуют четыре принципа проектирования, которые определяют, как ИИ должен действовать в Victoria 3: Ролевая игра, а не минимизация: ИИ в Victoria 3 должен "играть по ролям", а не пытаться играть оптимально или "играть как игрок’.

dev-diary-59-aivictoria-3_8.jpg

ИИ не должны эксплуатировать игру и должны действовать в соответствии со своими внутренними целями - например, для небольшого немецкого государства, контролируемого ИИ, совершенно нормально хотеть быть поглощенным объединенной Германией, даже если аннексия явно не является оптимальным способом играть в Victoria 3.

Прозрачность и ясность: Стратегия игрового процесса ИИ и процесс принятия решений должны быть всеобъемлющими для игрока - если ИИ не нравится игрок или он не согласится с предложением игрока, игрок должен быть в состоянии понять почему, и внутренние стратегии, которым ИИ следует в соответствии с "ролевой игрой’ принцип должен быть четко продемонстрирован игроку.

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

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

Не слишком случайный, не слишком детерминированный:

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

Например, если ИИ выбирает между двумя разными вариантами, которые имеют базовые оценки 50 и 100, а коэффициент случайности (R) для этого решения равен 1,0, это означает, что фактические диапазоны оценок для каждого из двух вариантов находятся в диапазоне от (X / ( 1 + R ) ) до ( X * ( 1 + R ) ) -

т.е. между 0. от 5 до 2 раз больше базового балла, или 25-100 против 50-200 в данном конкретном примере.

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

Однако, если бы искусственный интеллект вместо этого выбирал между двумя вариантами, набравшими 100 и 10 баллов, он всегда выбирал бы вариант со 100 значениями со случайностью 1, поскольку случайность просто не может преодолеть разрыв в базовых оценках.

Это тип взвешивания, который мы используем во всех наших играх, который позволяет ИИ принимать "разумные" решения, не будучи полностью детерминированным.

Но хватит преамбул, давайте углубимся в реальную механику искусственного интеллекта в игре!

Наиболее важным механизмом искусственного интеллекта в Victoria 3 являются стратегии искусственного интеллекта, которые вытекают из всех трех этих принципов.

Каждая страна с искусственным интеллектом в игре постоянно управляется тремя стратегиями искусственного интеллекта - административной, Политической и Дипломатической.

Вообще говоря, Административная стратегия определяет, как ИИ развивает свою экономику (например, должен ли он сосредоточиться на строительстве плантаций товарных культур или попытаться провести индустриализацию?)

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

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

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

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

Эти значения по умолчанию затем могут быть переопределены или добавлены активными стратегиями искусственного интеллекта.

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

Затем, если у этой страны с искусственным интеллектом есть дипломатическая стратегия "Объединить Германию", эта стратегия добавит дополнительную ценность для каждого культурного государства Северной и Южной Германии.

Часть скриптовой логики, которая используется для оценки ИИ того, сколько стоит Обязательство, - это то, с чем, я уверен, моддеры будут возиться!

Я упомянул Стратегические желания - это что-то вроде мини-стратегии, которую каждая страна с искусственным интеллектом может иметь против любой другой Дипломатически значимой (т.Е. страны, с которой они могут дипломатически взаимодействовать на основе интересов, статуса соседа и так далее) страны.

Стратегические желания определяются полуслучайно, с учетом веса каждого набора в стратегиях ИИ - например, страна ИИ со стратегией ИИ "Приобретение колоний" с большей вероятностью захочет завоевать или подчинить Непризнанные страны, чем та, у которой стратегия ИИ ‘Поддержание баланса сил’.

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

У османов воинственное отношение к Египту из-за их очень низкого показателя отношения в сочетании с их стратегическим желанием "Завоевать". Стратегии и стратегические желания, конечно, не являются статичными на протяжении всей кампании.

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

Это изменение может быть ускорено определенными событиями - у каждой отдельной стратегии ИИ и стратегического желания есть счетчик "точек изменения", который заставляет его повторно запускаться, когда этот счетчик достигает 100, и есть ряд вещей, которые могут произойти со страной, которая немедленно добавляет кучу точек изменения и может вызвать повторный бросок.

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

Другой, менее драматичный пример заключается в том, что всякий раз, когда страна успешно принимает новый закон, в ее политическую стратегию добавляется ряд изменений.

Достижение 100 пунктов изменения не обязательно означает, что Стратегия страны или Стратегическое желание изменятся, хотя вполне возможно, что результатом "повторного броска" будет просто повторение одного и того же старого действия снова и снова, особенно если ИИ отдает предпочтение этой стратегии по сценарию.

Теперь, когда мы поговорили о том, как искусственный интеллект функционирует на стратегическом уровне, давайте переключим передачу и поговорим о том, как он работает в другой области, а именно в экономике.

Экономическое управление Victoria 3 может быть довольно сложным, и поэтому создание искусственного интеллекта для него также не является тривиальной задачей.

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

Просто, не так ли? Мы просто смотрим на предполагаемые затраты на рабочую силу в сравнении с текущей рыночной ценой табака и принимаем решение о том, принесет ли это прибыль?

Ну, нет. Во-первых, эта рыночная цена изменится, как только новое здание будет завершено и на Рынок поступит больше заказов на продажу табака.

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

Итак, как же вы учитываете все эти факторы, не снижая производительность каждый раз, когда ИИ хочет что-то построить?

Решением является система под названием Переменные расходов, которая является довольно непритязательным названием для того, как искусственный интеллект прогнозирует и отображает курс своей экономики и рынка.

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

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

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

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

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

Искусственный интеллект собирает список всех изменений в государственных расходах, которые он мог бы внести, в обоих направлениях.

Например, субсидирование конкретного здания, строительство казарм в определенном штате или сокращение размера его государственной администрации в другом штате.

Затем он присваивает каждому из этих действий Приоритет и оценку.

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

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

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

Приоритеты следующие: Must-Have: Это то, что искусственный интеллект считает настолько важным, что скорее обанкротится, чем останется без этого.

Искусственный интеллект всегда будет увеличивать расходы на то, что необходимо иметь, и никогда не уменьшит их.

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

Должен был: Это то, что ИИ считает очень важным и должно быть приобретено, как только у них появится небольшой избыток.

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

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

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

Они сократят расходы на имущих в тот момент, когда их излишки будут выглядеть не так хорошо. Должен-не-Иметь:

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

Оценка - это числовое значение, которое определяется полуслучайно и служит тай-брейком между двумя элементами с одинаковым приоритетом.

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

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

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

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

Если вы следили за официальными потоками и различными AAR разработчиков, вы, возможно, знакомы с тем, как ИИ альфа-реализации решал, какую сторону поддержать в дипломатической игре: он присваивал оценку каждой стороне, а затем добавлял к этому значение предложения sway, чтобы определить если он был готов поддаться влиянию (и иногда присоединялся к стороне, которую он решительно предпочитал, даже не поддаваясь влиянию).

Теперь эта система была дополнена несколькими новыми ценностями, которые определяют поведение ИИ в дипломатических играх: Нейтралитет, Сочувствие, Уверенность и Смелость.

Мы рассмотрим каждый из них по очереди и объясним, как они влияют на принятие решений ИИ при участии в дипломатической игре. Нейтралитет:

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

Для того, чтобы искусственный интеллект принял чью-либо сторону или позволил повлиять на себя, оценка присоединения к одной стороне теперь должна превышать как оценку другой стороны, так и их оценку нейтралитета - так что, если Австрия и Пруссия противостоят друг другу в игре, а Россия дает Австрии счет 30 и Пруссия набрала -10 баллов, в то время как их оценка нейтралитета равна 50, они не захотят участвовать в игре по собственному желанию и потребуют от Австрии влияния на сумму не менее 21 балла, в то время как для Пруссии предложение влияния должно быть не менее 61 балла.

Симпатия:

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

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

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

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

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

Чем ниже уверенность ИИ, тем больше он готов отступить и тем больше он будет стремиться заручиться дополнительной поддержкой незаинтересованных участников. Смелость:

Это скрытое значение, которое определяется полуслучайным образом для каждого участника Дипломатической игры.

Страны с определенными Стратегиями, страны с более высоким рейтингом, страны с сильной армией и страны, которые сталкиваются с аннексией в Игре, как правило, обладают большей Смелостью.

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

Для этого Уверенность и Смелость складываются вместе, и чем ниже результат, тем больше вероятность того, что ИИ отступит.

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

Столкнувшись с перспективой войны как с Пруссией, так и с Россией, здесь есть шанс, что Австрия отступит, если они не смогут заручиться большей поддержкой - хотя они также могут решить, что Богемию необходимо защищать любой ценой, учитывая ее неотъемлемый статус в империи, что является моей личной страстью (я на самом деле начинал как программист искусственного интеллекта в Paradox еще в 2013 году, то есть почти 10 лет назад! )

и я, вероятно, мог бы продолжать говорить об этом вечно, но этот дневник разработчиков становится ужасно длинным, поэтому в заключение я просто хочу рассказать о правилах игры с искусственным интеллектом, доступных в Victoria 3, поскольку они немного отличаются от обычных настроек сложности, к которым вы, возможно, привыкли.

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

Вместо этого мы решили сосредоточиться на том, как искусственный интеллект взаимодействует с игроком и остальным миром на геополитическом уровне.

Следуя этой философии, мы добавили два правила игры с искусственным интеллектом, которые называются "Поведение ИИ по отношению к игрокам" и "Агрессия ИИ".

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

Это влияет на то, какие Стратегические желания они склонны предпочитать, насколько вероятно, что они начнут Дипломатические игры для реализации этих желаний и насколько они готовы принять Позор.

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

При обычной настройке Стандарта искусственный интеллект относится к Игроку так же, как если бы он был другой страной с искусственным интеллектом, без каких-либо особых соображений.

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

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

Тогда я называю эту комбинацию правил игры с искусственным интеллектом "Режимом Меттерниха"!

Вот и все для этого дневника разработчиков - я надеюсь, вы найдете его поучительным, и я надеюсь, что вы найдете искусственный интеллект в Victoria 3 забавным и интересным для игры с ним и против него, когда игра выйдет.

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

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

А пока прощайте и присоединяйтесь к нам снова на следующей неделе, когда Майкл познакомит нас с моддингом в Victoria 3!

0 Комментарии:

оставьте ответ

Ваш электронный адрес не будет опубликован.

Смотрите также в категории Simulation games news