Из первых уст: Fallout Wasteland Warfare - искусственный интеллект

14 March 2018
213 full reads
1,5 min.
342 story viewsUnique page visitors
213 read the story to the endThat's 62% of the total page views
1,5 minute — average reading time

Дословный период 10 записи из дневника разработчиков Fallout Wasterland Warfare.

9 марта 2018. Мы попросили Джеймса (James Sheahan) рассказать поподробнее о системе ИИ для нашей игры - судя по комментариям блога, это одна из самых интересных тем. Это один из аспектов игры, которому мы уделили особенно много внимания на стадии разработки - нам знакомы множество игр с миниатюрами, которые нечасто оказываются на игровом столе из-за недоработок в этой области. Вдобавок идея предоставить возможность игры в кооперативном режиме показалась нам интересной и сам факт того, что есть возможность объединить, к примеру, силы Братства Стали с Выжившими и выступить против Супермутантов выглядит потрясающе! Мы действительно рады, что нам удалось воплотить подобное в рамках базовой коробки для двух игроков, и это, на наш взгляд, означает, что наша игра будет отличный подарком как для опытных, так и для начинающих игроков.

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

Вернемся к Джеймсу.

Одним из самых интересных способов игры в Fallout: Wasteland Warfare является игра против Пустоши в соло-режиме или в союзе с другими игроками. Любая игра с подобными режимами нуждается в правилах, регулирующих поведение врага - Искусственный Интеллект (ИИ). Как я уже неоднократно упоминал ранее, Фоллаут - это не просто схватка противоборствующих сторон на поле боя: игроки должны выполнять самые разнообразные действия во время партии - взламывать двери, исследовать области, использовать компьютеры, и прочее; и важно, чтобы ИИ имел такие же способности. Мы поставили перед собой цель - наш ИИ должен заменять живого игрока максимально точно. В результате, мы наметили три основных аспекта разработки: во-первых, ИИ должен осмысленно выполнять небоевые действия (не просто бежать на врага и атаковать), во-вторых, ИИ должен обладать информацией о игроке, его моделях и задачах на игру, и в-третьих, каждый тип моделей в своих действиях должен руководствоваться своими особенностями - супермутант может вступить в ближний бой, но, например, скриптор братства предпочтет держаться на расстоянии от врагов и будет выбирать цель сообразно своим возможностям. И, конечно, механизм управления ИИ должен быть легок в использовании.

Задачи

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

Реакция

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

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

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

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

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

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

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

Персоналии

Как уже упоминалось, все модели используют 5 одинаковых реакций, в зависимости от их сетки поведений, но любая реакция , помимо прочего зависит от персонализации модели. Одной из персональных черт является возможность модели действовать безрассудно - на сетке это показано как затененная ячейка; например, паладин в силовой броне вероятнее всего будет перемещаться по кратчайшему пути к своей цели, игнорируя укрытия, а скриптор, наоборот, будет балансировать между безопасностью своего перемещения и продвижению к цели. Действующие безрассудно модели будут сближаться с противником, навязывая тому ближний бой, отчего могут пострадать их союзники, в отличии от моделей которые ведут себя осторожно. Тот факт, что безрассудность регулируется определенными ячейками в сетке поведения значит для нас то, что каждая из моделей имеет свою манеру поведения; например Super Mutant Brute впадает в ярость, как только получает урон и становится безрассуднее дальнейших ранениях, в то время как паладин, одевая силовую броню, становится безрассудным (поскольку, посмотрим правде в глаза, силовая броня крута), однако становясь более рассудительным при получении урона, поскольку ему необходимо выполнять возложенные на него обязанности.

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

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

Заключение

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

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

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