Банды Нью-Йорка: как работает ИИ в The Division
Дерево поведения и особые атрибуты.
Действие Tom Clancy's The Division происходит на улицах Манхэттена, на которых игроку нужно сражаться с несколькими фракциями, захватившими город. Игра показала, как многочисленные бандиты могут устроить хаос в крупном мегаполисе. Достичь такого эффекта во многом это удалось за счёт грамотной системы поведения, которая позволила вдохнуть жизнь в противников и сделать перестрелки интересными.
Автор блога AI and Games Томми Томпсон опубликовал текст, в котором проанализировал работу ИИ в The Division. Он обратил особое внимание на то, как авторы добавили уникальность в поведение каждого типа врагов. Мы выбрали из материала главное.
Расколотый Манхэттен
Чтобы добавить разнообразия миру, разработчики поделили территорию Нью-Йорка между пятью фракциями: «Чистильщики» с огнемётами, «Заключённые» с острова Райкерс, «Последний Батальон», «Бандиты» и «Объединенная Тактическая Группа» (ОТГ). Кроме того, в игре присутствует «Тёмная зона» — особая PvP-территория, где встречаются противники, управляемые не только ИИ, но и реальными пользователями.
Есть три разных сценария, при которых игроки взаимодействуют с NPC:
- бродяги в открытом мире — дикие собаки, горожане, бойцы ОТГ или враждебные патрули;
- запланированное столкновение — умышленно расположенные враги в открытом мире, цель которых — втянуть игрока в бой или заставить его искать обходной путь;
- сюжетные миссии.
В каждом случае ИИ имеет конкретные задачи, которые соответствуют одной из двух важнейших целей разработчиков: погрузить пользователя в мир игры, а также преградить путь головоломками, которые решаются в бою.
Последнее является особенно важной частью, так как геймплей побуждает игроков к предварительной разведке и выстраиванию базовой стратегии. Когда начинается непосредственно бой, пользователям приходится постоянно производить переоценку своих приоритетов и анализировать пространство, чтобы эффективно вывести противника из строя.
Чтобы сделать бои интересными, вражеские NPC должны иметь однозначные поведенческие черты, которые игроки смогут распознать. В то же время, их действия должны согласовываться с многочисленными подсистемами, например, обнаружение противников и адекватная реакция на самих игроков.
Система поведения
Всё поведение NPC прописывается в дереве системы поведения. В зависимости от определённых обстоятельств или переменных, отдельные ветви активируются для запуска каких-либо действий. Например, это относится к обозначению цели навигации, поиску потенциальных угроз, противников для атаки, прикрытий для перехода и так далее.
Архитектура дерева поведения, показанная выше, основана на обширной многоуровневой системе, которая способна обеспечивать несколько путей для каждого поведения. Верхний слой дерева [оранжевый справа] разделён на три реакции NPC, и включает прямые приказы от игровых систем, которые касаются вступления в перестрелку и, собственно, действий во время боя.
Ниже располагается слой условий [синий и фиолетовый в центре], который определяет, какие действия могут выполняться на основе текущих условий. А слой в самом низу уже включает каждый вариант боя, возможный в игре.
Средний слой построен таким образом, что он может ссылаться на различные действия на нижнем уровне. Это делается для предотвращения дублирования поведения в нижней половине дерева. Таким образом, все NPC и особые технические приспособления могут иметь похожие поддеревья или поведение, соответствующее их цели.
Это приводит к тому, что архитектура дерева поведения значительно усложнена. Учитывая, что над The Division работало множество команд, было важно не допустить неожиданных ошибок, возникающих при изменении отдельных элементов системы. Чтобы избежать этого, в движок Snowdrop были включены инструменты для контроля подобных действий. Эти инструменты отладки обширны, поскольку они позволяют разработчикам определять, что происходит с конкретным персонажем в реальном времени.
Архетипы
На запуске The Division имела 36 типов вражеских NPC, распределённых по фракциям. Архетипы помогают установить тип поведения конкретного персонажа, а фракции определяют атрибуты, характерные для NPC. Для повышения интереса игроков в The Division присутствует большое количество архетипов:
- Assault — стандартный ИИ, которые атакует из-за укрытия;
- Rusher — бежит напрямую к цели;
- Tank — силён в атаке и защите;
- Sniper — дальнобойная и прицельная атака;
- Thrower — кидает гранаты и предметы с действием по площади;
- Support — занимается лечением;
- Heavy — подавляет игроков;
- Leader — даёт баффы;
- Controller — управляет турелью.
Есть также специальные NPC, которые не придерживаются архетипов, но они используются только в битвах с боссами. Каждый из этих архетипов призван дать чёткую обратную связь о непосредственной опасности для игрока и о том, какая потребуется стратегия для атаки. Кроме того, многие из этих архетипов дополняют друг друга, поэтому их взаимодействие может привести к выполнению общей цели.
Например, в то время как Sniper издалека наносит большой урон игроку, Rusher пытается подобраться ближе, чтобы атаковать. Тем временем Tank и Heavу заставляют игрока оставаться в укрытии, а Thrower пытается его оттуда выманить. Эта совокупность условий заставляет пользователя постоянно менять тактику во время битвы. Это обусловлено стремлением заставить игроков постоянно оценивать три ключевых атрибута геймплея:
- расставление целей по приоритету: «Кого я должен атаковать в данный момент?»;
- смена позиции и время в укрытии: «Сейчас я в подходящем укрытии?»;
- вознаграждение выносливости: «Вознаграждение за это испытание окажется достаточно хорошим?».
Фракции
Как упоминалось ранее, 36 типов NPC распределены по основным фракциям: «Заключённые», «Чистильщики», «Бандиты» и «Последний Батальон». В зависимости от района, в котором находится игрок, ему будет противостоять та или иная группировка. Фракции предназначены для того, чтобы повышать сложность боёв по мере прохождения.
Тем не менее большое количество видов NPC и фракций может привести к тому, что баланс будет работать недостаточно хорошо. Чтобы этого избежать, разработчики создали систему профилей ИИ, которая изменяет количество атрибутов каждого NPC. Такой подход позволяет настраивать их сложность.
Всего есть девять атрибутов: скорость реакции на действия игрока, скорость передвижения, групповое поведение, использование укрытий, использование умений, устойчивость на земле, сопротивление подавлению, здоровье, точность.
Созданные профили могут быть применены либо к конкретным типам NPC, либо к фракциям. Например, «Заключённые» — первая враждебная фракция — ограничены профилем Dumb, в котором все атрибуты довольно низкие. Тем не менее у всех Heavy, Support и Turret есть специальные профили, которые встречаются в каждой фракции. Также у «Последнего Батальона» есть собственный профиль Elite — он делает их гораздо опаснее по сравнению с остальными группировками.
Последний модификатор, который влияет на поведение ИИ — это роль и ранг внутри самой игры. Персонажи варьируются от обычных пехотинцев до ветеранов, элиты и, наконец, высшего ранга NPC, который используется только для наиболее важных целей. По мере увеличения роли NPC, растут и его базовые показатели: урон, точность выстрелов, наличие уникального оружия и так далее. Они даже могут получить лазерный прицел, которые абсолютно никак не влияет на их силу, но приводит игроков в ужас.
Дерево поведения позволяет The Division создать целую коллекцию NPC, оживляющих Манхэттен. Хотя эти системы основаны на одной и той же архитектуре ИИ, использование архетипов, фракций, профилей и рангов позволяет разнообразить геймплей. Благодаря такому подходу игроки получают уникальный опыт схваток на улицах Нью-Йорка.