- PVSM.RU - https://www.pvsm.ru -
Шутеры от первого лица за долгие годы эволюционировали и стали очень интересной средой для неигровых персонажей: солдаты прячутся за укрытиями, чужие преследуют игрока, а напарники помогают ему в пылу боя. Всё это вписывается в концепцию дизайна современных шутеров: удерживания территории, создания рубежей обороны и сдерживания игрока. В этой статье я на примере перезапуска франшизы DOOM 2016 года расскажу о том, что происходит, когда разработчики отказываются использовать в игре стандартный кодекс поведения.
DOOM построен на философии, известной как "push forward combat" («агрессивный бой»), влияющей на нарратив, дизайн уровней, перемещения игрока и многое другое. Если вкратце, то он является критическим взглядом и реакцией на современные шутеры. В то время как Call of Duty заставляет игрока ползать за укрытиями и снимать врагов издалека, DOOM нарушает эти правила, создавая мощный, быстрый, «спинномозговой» геймплей. Но как это всё устроено, и что предпринимает ИИ, чтобы сделать игровой процесс живым?
Философия Push Forward Combat охватывает все аспекты DOOM: она определяет фундамент игры и способы взаимодействия игроков с ИИ в бою. Как объяснил Курт Лауди в своём докладе на GDC 2018 [1], игра в большой степени заимствует механики оригинальных игр DOOM: быстрое движение, потайные коридоры и яростные перестрелки. Но хотя она стремится вернуться к корням, ей в то же время нужно привлечь совершенно новую аудиторию, никогда не игравшую в олдскульные FPS, в том числе и в DOOM с DOOM II: Hell on Earth. Поэтому агрессивный бой построен на четырёх столпах, на которых стоит дизайн всей игры:
Эти четыре столпа позволили создать и усовершенствовать механики игры; благодаря им становилось очевидно, какие из механики усиливали принципу агрессивного боя, а какие ему мешали. Поэтому из игры убрана перезарядка оружия, ведь она мешала течению боя, а также добавлен двойной прыжок, позволяющий быстрее добраться до врагов. Наконец, базовый геймплей должен быть интуитивным и интересным, но в то же время он может становиться всё более сложным, вознаграждая игрока за правильный выбор целей и оружия. Бои в DOOM часто происходят на средних и больших аренах, асимметричных по своей природе, с множеством перемещений по вертикали. Они гораздо ближе к многопользовательским онлайн-шутерам, чем к традиционным однопользовательским кампаниям. Добавьте в состав вражеских демонов, и вы получите то, что id называет «боевыми шахматами»: задача игрока — выяснить, какого демона уничтожить первым, и как лучше всего к нему добраться.
Для реализации и оттачивания такого игрового процесса потребуется набор новых инструментов. Используемые в нём системы ИИ созданы под серьёзным влиянием более традиционных шутеров от первого лица и адаптированы под концепцию DOOM. Я ещё вернусь к тому, как именно ИИ DOOM благодаря своей структуре подкрепляет концепцию Push Forward Combat, но сначала мне бы хотелось исследовать работу архитектур ИИ и изучить источники её возникновения. Для этого нам нужно сначала рассказать о DOOM, которого никогда не было, и о том, как он превратился в игру 2016 года.
Хорошо известно, что цикл разработки DOOM 2016 был сложным: франшиза испытывала проблемы самоидентичности и не знала, во что ей превратиться в современной эпохе. Изначально игра напоминала более современные шутеры, но в конце концов её сдали в утиль, и с этого момента начал обретать форму тот DOOM , который мы знаем сегодня. Именно в процессе этого перехода выяснилось, какие инструменты тулчейна ИИ можно адаптировать под игру и как они способны помочь в реализации концепции агрессивного боя.
DOOM 4 — как он назывался изначально — находился в разработке с 2008 года. Родительская компания ZeniMax Media, купившая id Software в 2009 году, была недовольна процессом разработки и после внутренней ревизии в 2011 году настаивала на изменениях. Близкие к проекту источники, пожелавшие остаться анонимными, сообщили мне, что команда разработчиков Rage, готовившаяся к началу препродакшена сиквела, была вынуждена прекратить работу и слиться с командой DOOM 4. «Call of Doomy», как пренебрежительно называли игру в студии, резко изменила курс, превратившись из DOOM 4 в просто DOOM. Это привело к серьёзному разочарованию — идеи и личности противились новому выбранному направлению. Новый дизайн проекта заставил Мэтта Хупера приступить к поискам, необходимым для возрождения энергии классического DOOM. Мои источники утверждают, что успех мода Brutal DOOM [2] разработчика SgtMarkIV стал чем-то вроде подтверждения правильности этого идеала. Это привело к созданию нового геймплейного демо, выпущенного в 2012 году, в котором делался упор на философию push forward combat, а также была переработала система glory kill (прим. пер.: система эффектного добивания врага в ближнем бою), уже присутствовавшая в DOOM 4.
Вместе со множеством опытных разработчиков, перешедших из команды Rage к созданию DOOM, в новый проект перенесли кучу инструментов и систем и из самой игры, и из движка id Tech 5. Давайте поговорим о базовых инструментах архитектуры ИИ в движке id Tech, а также о том, как эти системы созданные и отполированные под Rage, были в последствии портированы для DOOM.
Разработка тулчейна ИИ как части движка id Tech 5, началась ещё в 2005 году, почти сразу после выпуска DOOM 3. Впервые он был протестирован в деле в Rage. Основная система принятия решений вражеского ИИ в Rage и DOOM состоит из иерархических конечных автоматов (Hierarchical Finite State Machines): разновидности классической реализации ИИ, обеспечивающей повышенную гибкость и контроль над последовательностью состояний с их поведением.
Конечные автоматы (Finite State Machines) тесно связаны с принципом состояния (state), в течение которого ИИ может выполнять определённое поведение. Также при соблюдении определённых условий ИИ может переходить в другие состояния. Соединение множества состояний в группы и реализация переходов между ними позволяет создать гибкие, реагирующие на ситуацию и интересные поведения. В одном из моих первых видео про Batman: Arkham Asylum [3] рассказывается, как они использовались для стелса и боёв.
Однако схема может быстро стать очень сложной: количество состояний увеличивается, а вариантов переходов между ними становится ещё больше. Чтобы справиться с этой проблемой, иерархические конечные автоматы (ИКА) группируют определённые наборы состояний и выполняют их одним кластером с чёткими переходами внутрь и наружу этого кластера.
По сути, кластеры создают маленькие конечные автоматы внутри большого конечного автомата, в которые и из которых система может выполнять переход. Это позволяет создать более упорядоченное и структурированное поведение, при котором отдельные состояния присутствуют в одной или нескольких группах. Благодаря этому конкретные аспекты — перемещение в укрытие, атака на расстоянии или приближение — можно обрабатывать и моделировать для каждого демона.
Это отличает DOOM от многих современных шутеров, в которых конечные автоматы встречаются гораздо реже, а популярность приобретают деревья поведений (Behaviour Trees) или даже HTN-планирование.
Система ИКА в Rage позволяла дизайнерам с определённой гибкостью настраивать поведения в конкретных ситуациях, но создавать такие конечные автоматы могли только программисты. Как рассказали мои источники, лучше всего было предоставить команде дизайнеров большой набор интересных и захватывающих поведений для каждой битвы. Это позволяло сохранить целостность систем ИИ и минимизировать вероятность их сбоя или неожиданного поведения. Для обеспечения целостности всего процесса конечные автоматы DOOM можно создавать только с помощью специально созданного редактора, имеющего интерфейс с кодом на C++, который использовался для построения отдельных состояний. Этот редактор стал расширенной версией ранее созданного макроязыка для Rage, который в редакторе используется для записи состояний и предлагаемых переходов нового конечного автомата. Он выполняет перекрёстные ссылки с файлами заголовков кода на C++, которые задают все возможные переходы для текущего состояния. Это оказалось невероятно ценной особенностью для команды программистов, потому что позволило быстро проверять целостность и структурированность всего конечного автомата или вручную, или с помощью инструмента визуализации графов. Готовая реализация получилась быстрой и не требовала управления огромным количеством ресурсов в игре. Однако несмотря на то, что созданные инструменты обеспечили чёткую визуализацию структуры и поведения конечных автоматов, они также увеличили количество абстракций, что усложнило пошаговое выполнение и отладку.
В дополнение к ИКА, используемой для принятия решений о действиях демонов, в DOOM применяются две системы, созданные для Rage: система укрытий и система анимаций.
Система анимаций под названием AnimWeb сама по себе тоже является конечным автоматом. Каждое состояние управляет выполнением анимации для конкретного поведения, а переходы между состояниями управляют смешиванием между анимациями. Система часто вычисляет пути с помощью AnimWeb, которая запускает начальные, промежуточные и конечные анимации для конкретных состояний ИИ с переходами, синхронизированными с заданными точками смешения, вычисленные на основе анализа костей в скелетном меше. Почему эта система жизненно необходима, я расскажу в анализе дизайна поведения демонов. Мы узнаем, что AnimWeb делает для настройки и изменения выполнения анимации во время выполнения игры, чтобы демоны устрашали игрока на протяжении всего игрового процесса.
Наконец, в Rage была создана и протестирована система укрытий, активно взаимодействующая с ИИ принятия решений, AnimWeb и встроенными инструментами навигации. Боевая система Rage, а значит и её система укрытий вдохновлялись ранними играми Halo, в которых отряды монстров стремились в области с хорошими укрытиями, в то время как тяжёлые враги, такие как Shrouded и Gearhead, атаковали игрока на открытом пространстве. Эта система учитывала расстояния между игроком и располагаемыми дизайнерами оборонными позициями, позиции ИИ относительно областей хороших укрытий, видимость ИИ-противников для игрока, присутствие в укрытии дружественных ИИ, оптимальные позиции для бросков гранат и многое другое. Вероятно, вы задаётесь вопросом, почему это так важно: ИИ в DOOM никогда не прячется за укрытиями, да и сами укрытия в целом нарушают концепцию агрессивного боя. Как я объясню ниже, эта система невероятно важна для позиционирования демонов в DOOM, но совершенно неожиданным образом!
Процесс разработки и выпуска Rage позволил довести все эти системы ИИ до уровня зрелости и использовать их в других продуктах. Они не только мигрировали в DOOM 2016 — в котором используется движок id Tech 6 — но и применяются в игре 2014 года Wolfenstein: The New Order компании MachineGame. Хотя эти системы уже доказали свою ценность, для использования в DOOM им необходимы были дальнейшие настройки и усовершенствования. Кроме того, дизайнерам нужно было сделать так, чтобы поведение системы находилось в контексте агрессивного боя. Поэтому давайте узнаем о дизайнерских секретах, позволивших реализовать эту философию.
Теперь, когда мы знаем о внутренних системах ИИ, давайте разберёмся, как они используются для создания врагов в DOOM и подкрепления ядра дизайна. Поэтому вернёмся к четырём геймплейным столпам агрессивного боя: скорости, индивидуальности демонов, уникальности оружия и мощи игрока. Что же делает ИИ для усиления этих аспектов?
Для начала поговорим о скорости: игрок может двигаться по миру очень быстро, и ИИ учитывает это двумя жизненно важными способами: стрельбой и расположением врагов. Точность демонов намеренно снижается в зависимости от скорости игрока: чем он быстрее, тем сложнее в него попасть. Это достигается благодаря взвешенному распределению точности выстрелов — демоны намеренно промахиваются, когда игрок движется на максимальной скорости, и становятся точнее, когда он замедляется. Кроме того, эта система связана с уровнями сложности: при высокой сложности точность демонов быстрее компенсирует перемещения игрока. И ещё один штрих: враги не стреляют по взрывающимся бочкам, даже если те находятся рядом с игроком, чтобы дать игроку шанс использовать их против демонов.
Однако ещё более интересна система позиционирования ИИ в бою для поддержания своей эффективности и обеспечения свободы движения игрока. Стреляющие враги, такие как импы, какодемоны и манкубусы, активно стремятся при возможности находиться на расстоянии от игрока, чтобы атаковать издалека. В то же время игра стремится сделать так, чтобы другие враги были хорошо расположены для атаки, с учётом того, что им понадобится бежать к игроку в любой момент времени. Чтобы достичь этого, DOOM берёт систему укрытий из Rage и инвертирует её: система используется не для поиска точек укрытий, а для нахождения открытых позиций рядом с укрытиями, обеспечивающих максимальную видимость для игрока. Такие «перевёрнутые» укрытия не только позволяют демонам продолжать атаки, но и помогают игроку находить цель.
Теперь давайте рассмотрим индивидуальность демонов. В DOOM есть 16 отдельных архетипов ИИ, каждый из которых обладает уникальными поведениями и анимациями, подчёркивающими его характерные особенности. С учётом высокого темпа игры, основная цель заключается во мгновенном распознавании демонов игроком и обеспечении целостности их поведения. Вообразите Pac-Man, в котором игрок движется в 10 раз быстрее обычного, а призраки на самом деле являются адскими полчищами! Здесь просто нет места для затейливого и сложного поведения. Противники должны быть узнаваемыми для игрока и интересными для дизайнера, вываливающего их на шахматную доску боя.
Эта цель достигается не только с помощью преувеличенных анимаций поведений, но также и через цели врагов и способы их достижения. Почти как в классическом DOOM, многие из ИИ имеют свои узнаваемые поведения, но подстроенные под дизайн современного DOOM: розовые демоны несутся к игроку, пытаясь протаранить его, а импы держаться в отдалении, чтобы метать фаерболлы.
Кроме того, анимации созданы таким образом, чтобы подчеркнуть характерность каждого архетипа демона. В дополнение к реализации плавного смешивания, AnimWeb также выполняет проверки анимаций в реальном времени, чтобы убедиться, что анимация может уместиться в кривую движения демона. Поэтому импы могут прыгать на короткие и дальние расстояния, используя одинаковую анимацию, которая настраивается в реальном времени, а рыцари ада выполняют проверки, чтобы при атаках не пересекаться с окружающими объектами. Кроме того, каждый демон выполняет процесс под названием Focus Tracking: вычисляет подходящий поворот головы, груди и бёдер в IK-риге, чтобы поворачиваться и смотреть на игрока правильным образом.
Кроме всего этого DOOM снова возвращает перепалки между врагами, которые использовались в оригинальных играх серии: система фракций фиксирует взаимодействия и поведения между отдельными архетипами ИИ. Она использует систему правил, определяющую, как и почему одна фракция демонов начинает злиться на другую. Кроме того, она фиксирует такие события, как случайный или намеренный урон, наносимый такими фракциями друг другу, и использует их для запуска боёв между врагами. Фракции внутри системы заимствуют повадки других фракций, поэтому пока импы страдают от лап манкубусов и баронов, одержимые солдаты UAC равно ненавидимы всеми демонами и во внутренних перепалках обычно оказываются убитыми первыми.
Теперь поговорим об уникальности каждого оружия. ИИ DOOM реагирует, когда игрок использует подходящее оружие для подходящего демона. В основном это реализуется системой продолжительного урона в секунду и системой управления состояниями боя. Она делает так, что демоны уязвимы к выстрелам из определённого оружия, и опасаются этого оружия. Мои источники объяснили, что внутри DOOM используется система продолжительного DPS (damage per second), вознаграждающая игрока за продолжительную агрессию к конкретному демону. Урон становится длительным, что запускает болевую реакцию демона. Джейк Кэмпбелл рассказывал об этом в своём докладе [4] на GDC. Эти болевые реакции могут быть очень разнообразными: от небольших судорог, немного влияющих на точность прицела ИИ, до замирания и отступления, прерывающего текущее поведение ИИ.
Чтобы ещё больше подкрепить эту систему, отдельные виды оружия запускают реакцию в разных типах врагов. Например, при выстреле из штурмовой винтовки импы перестают двигаться, а зомби при выстреле из дробовика быстро переходят в состояние пошатывания, в котором их легко убить. Мои источники сказали, что на этапе разработки какодемон мог застрять в постоянной реакции замирания при непрерывной стрельбе из минигана. Это было сделано намеренно, чтобы отдать честь оригинальному DOOM, но перед выпуском игры от этого отказались.
Наконец, несмотря на несметные полчища демонов и исходящую от них опасность, концепция агрессивного боя всегда должна стремится наделять игрока мощью. Поэтому игра должна сохранять баланс и ритм боя, обеспечивающие постоянное нахождение игрока в потоке. Для этого DOOM использует боевую систему, заставляющую демонов спрашивать разрешения для нападения на игрока. Это реализовано через систему токенов: каждый тип атаки — рукопашный, дальний и так далее — имеет в каждый момент времени ограниченное количество токенов. Чтобы совершить атаку, демон должен запросить токен, а после использования вернуть его системе. На каждом уровне сложности есть свой набор значений токенов для каждого типа атаки, создающий более агрессивную орду демонов и в то же время сохраняющий сбалансированность благодаря ограничению на количество одновременно атакующих демонов. Забавно в этой системе то, что демоны могут воровать токены друг у друга, если чувствуют, что способы использовать их более эффективно в текущий момент времени. Основная причина этого в том, чтобы заставить демонов рядом с игроком атаковать его, а не стоять рядом с глупым видом.
Кроме того, дизайнеры осознали, что не будет справедливо, если демоны будут атаковать, когда игрок не может ответить. Поэтому во время выполнения glory kills игрок неуязвим, а искусственный интеллект не имеет права начинать новое поведение атаки, пока glory kill не завершён. Наконец, glory kills ценны для игрока тем, что дают здоровье, а в случае убийства бензопилой — и боеприпасы! При glory kills игрокам всегда выпадают предметы, а большие демоны дают ещё больше жизни. Однако выпадающие боеприпасы в основном постоянны, потому что игра хочет, чтобы игрок продолжал осваивать свой арсенал и использовал наилучшее оружие в текущих условиях. Поэтому если вы используете для расправы над рыцарем ада бензопилу, то это не даст вам в результате больше боеприпасов!
Возвращение DOOM в 2016 году оказалось триумфальным, но как мы только что убедились, это произошло не случайно: благодаря годам работы над игровым ИИ демоны ада восстали в полную силу. Эта игра — чёткий пример использования классических техник ИИ наряду с дизайнерскими инструментами, подкрепляющими ядро игрового процесса. Как и вся франшиза в целом, DOOM заявляет, что хотя некоторые инструменты создания ИИ уже вышли из моды, всё ещё остаётся потенциал для создания интересного нового игрового процесса, привлекающего и современных игроков. Пока писалась эта статья, было заявлено о разработке DOOM Eternal с ещё большим количеством архетипов демонов. Ад на земле никогда не был таким захватывающим.
Loudy, K. and Campbell, J. 2018. Embracing Push Forward Combat in DOOM. [1] Game Developers Conference, 2018.
Cambell, J. 2017 Bringing Hell to Life: AI and Fully Body Animation in DOOM. [4] Game Developers Conference, 2017.
Автор: PatientZero
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/iskusstvenny-j-intellekt/288936
Ссылки в тексте:
[1] докладе на GDC 2018: https://www.youtube.com/watch?v=2KQNpQD8Ayo
[2] Brutal DOOM: https://www.moddb.com/mods/brutal-doom
[3] Batman: Arkham Asylum: https://www.youtube.com/watch?v=Oz04rH542l8
[4] докладе: https://www.youtube.com/watch?v=3lO1q8mQrrg
[5] Источник: https://habr.com/post/419537/?utm_campaign=419537
Нажмите здесь для печати.