В голове у демона: устройство искусственного интеллекта в DOOM

Наследие Rage и новые технологии.

DOOM 2016 года многими был признан одним из лучших шутеров за последние несколько лет — на DTF его выбрали лучшим FPS 2016-го. id Software проделала отличную работу, адаптировав классический геймплей серии для современных игроков.

Одна из ключевых составляющих игрового процесса DOOM — это искусственный интеллект врагов. Демоны должны быть достаточно умными, чтобы не разрушать эффект погружения, но при этом не наступать на игрока слишком яростно — иначе играть будет невозможно. Автор YouTube-канала AI and Games подробно изучил, как устроен искусственный интеллект врагов в шутере.

Основа геймплея DOOM — это push forward combat, боевая система, в которой игрок не отсиживается в укрытии, а идёт напролом. Она состоит из четырёх элементов: скорость передвижения игрока и врагов, индивидуальность демонов, своеобразие оружия и «власть» игрока. Это столпы, на которые ориентировались разработчики при создании игры.

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

Технологии

Как ютуберу рассказали его источники внутри студии, технологии искусственного интеллекта DOOM 2016-го унаследовал от Doom 4, которую отменили где-то в 2013 году, и Rage — постапокалиптического шутера от id, который был неоднозначно принят аудиторией.

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

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

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

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

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

При разработке Rage конечные автоматы создавались программистами, но поведение врагов настраивали геймдизайнеры. Работая над DOOM, дизайнеры пользовались уже специальным редактором, который взаимодействовал с кодом игры, написанном на C++.

Помимо технологии ИИ DOOM заимствовала из Rage ещё две системы: укрытий и анимации. Система анимации AnimWeb — это конечный автомат, в котором каждое состояние отвечает за отдельную анимацию, а переходы между состояниями — за переходы между анимациями.

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

Система укрытий в Rage была вдохновлена первыми частями Halo, в которых слабые юниты прятались в укрытиях, а сильные шли прямо на игрока. Она высчитывала расстояние до главного героя и укрытий, видимость врагов и много других вещей вроде оптимальных траекторий для броска гранаты. Несмотря на то, что укрытий в DOOM нет, эта система нашла своё применение в шутере.

Дизайн

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

Скорость

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

Также враги меняют своё положение во время боя с помощью «перевёрнутой» системы укрытий из Rage: они не прячутся от игрока, а наоборот, находят точки, с которых их будет лучше всего видно.

Индивидуальность демонов

В DOOM 16 архетипов ИИ — демонов, — каждый со своим уникальным набором характеристик и поведением. Каждый из архетипов настроен так, чтобы игрок мог легко различать их в гуще боя: Пинки пытаются протаранить игрока, а импы издалека кидаются фаерболами.

С этой же целью созданы и анимации, отражающие характеры противников. AnimWeb не только генерирует плавные переходы между анимациями, но и следит, чтобы длительность анимации совпадала с длительностью движения, а модели не проходили сквозь стены. Также в игре есть технология Focus Tracking, которая контролирует вращение головы, груди и ног, чтобы враги реалистично поворачивались в сторону игрока.

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

Своеобразие оружия

Разные противники в DOOM по-разному реагируют на одни и те же пушки. Это достигается с помощью продуманных систем DPS (урона в секунду) и боевых состояний, которые определяют, насколько сильно противник должен «пошатнуться» (stagger) от выстрела из определённого оружия.

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

«Власть» игрока

Чтобы игрок чувствовал себя всесильным, он должен всегда оставаться в «потоке» геймплея. Для этого в DOOM реализована система, которая заставляет демонов «спрашивать разрешения» на атаку. Игра выдаёт демонам ограниченное количество «жетонов» на разные виды атак единовременно: ближнего боя, дальнего и так далее. Чтобы атаковать, демон берёт «жетон», а после возвращает его обратно системе. Количество «жетонов» на каждом уровне сложности разное.

Противники могут также «красть» друг у друга право на атаку, чтобы не было ситуаций, когда демон, находящийся прямо перед героем, просто стоял. Более того, разработчики не хотели, чтобы противники атаковали героя, когда тот не может ответить. Поэтому новый жетон на атаку не выдаётся, пока игрок, например, делает glory kill.

Также id Software сделала так, чтобы количество здоровья, выдаваемое за glory kill, зависело от размера демона. Но при убийстве бензопилой выдаётся одно и то же количество патронов вне зависимости от того, кого именно ты убил. Всё это для того, чтобы игрок не испытывал ограничений при освоении своего арсенала оружия и мог использовать любую доступную пушку в любой момент.

Источник