Приказы сверху: как ИИ управляет масштабными сражениями в Halo 3

Система постановки задач и отряды NPC.

Автор YouTube-канала AI and Games Томми Томпсон выпустил видео о том, как устроена система управления искусственным интеллектом в масштабных битвах в Halo 3. За основу была взята технология, применявшаяся во второй части шутера, однако разработчикам пришлось изрядно переработать её, чтобы не нагружать Xbox 360 и сделать сражения убедительными. Мы выбрали из материала главное.

Предпосылки

Halo 2, вышедшая в 2004 году, была первым шагом на пути к распространению техники ИИ под названием «древо поведения». Благодаря ей система выбирает, как каждый конкретный NPC должен вести себя в определённых условиях. Такой метод идеально подходил второй Halo, учитывая многообразие боевых ситуаций и арен для сражения. Разработчики из Bungie могли включать и отключать отдельные секции древа в зависимости от контекста боя.

Древо поведения
Древо поведения

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

Каждому NPC в Halo 2 давалась собственная задача, отличная от простой цели «убить игрока». Врагам могло быть поручено держать позицию, захватывать транспорт или подавлять пользователя огнём. С помощью сменяющих друг друга задач разработчики контролировали ход боя, не давая ему стать хаотичным.

Система хорошо работала в Halo 2, но управлять ею в условиях масштабных сражений, которые Bungie хотела ввести в третьей части шутера, было бы слишком сложно. Поэтому разработчикам пришлось изобрести иной метод постановки задач для NPC.

Приказы сверху: как ИИ управляет масштабными сражениями в Halo 3

Задачи

Halo 3 вышла на Xbox 360 в 2007 году. В игре были масштабные битвы, в которых могли принимать участие десятки NPC разных фракций. Кроме того, на поле боя присутствовала и военная техника.

Вместо того, чтобы указывать искусственному интеллекту что и как ему следует делать, система просто ставила перед ИИ задачи, которые тому необходимо выполнить. Отряды и отдельные юниты самостоятельно выбирали, как подходить к решению той или иной проблемы. Разработчики Halo 3 заставляли UNSC, Ковенант и Потоп выполнять разные миссии на разных этапах сражения: охранять территорию, захватывать технику или атаковать определённые цели.

У каждой из задач есть «фильтры» — условия, определяющие, каким именно образом нужно подходить к их выполнению. Например, одни миссии поручаются конкретным типам юнитов, а другие следует выполнять исключительно на определённом транспортном средстве. Кроме того, у задач есть «параметры», отвечающие за то, как ИИ должны вести себя. Например, искусственному интеллекту может быть поручено преследовать игрока. Задачи, как правило, разбиты на несколько подзадач, которые конкретизируют условия и место их выполнения.

Приказы сверху: как ИИ управляет масштабными сражениями в Halo 3

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

HaloScript
HaloScript

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

Отряды

Неигровые персонажи распределены по отрядам. Отряды — это группы неигровых персонажей, принадлежащих одной фракции. Как правило, они перемещаются по полю боя все вместе, но могут и действовать по одиночке. Система формирует отряды из тех NPC, которые находятся неподалёку друг от друга.

По словам программиста Дэмиана Исла, эта система работает по принципу «Plinko-автомата». Она «прогоняет» отряд по всему древу целей, выбирая для него задачу с наивысшим приоритетом, за которую ещё никто не взялся. Проверка производится каждый раз, когда цели меняются, либо когда какая-то из миссий выполняется.

Древо целей
Древо целей

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

Как отмечает Томми Томпсон, система отрядов существует не только для того, чтобы выполнять определённые задачи, но и затем, чтобы минимизировать время, за которое каждый отдельный персонаж получает информацию о ситуации на поле боя. Ввиду того, что в Halo 3 на экране может находиться много NPC, иной подход способен сильно навредить производительности.

Информация, которую получают отряды
Информация, которую получают отряды

Все члены отряда получают одни и те же данные о происходящем вокруг, а затем используют их для принятия решений. Учитывается лишь релевантная для конкретной группы информация, поэтому системные вычисления сведены к минимуму, а обновление происходит лишь по мере необходимости. Так разработчикам из Bungie удалось «убить двух зайцев»: заставить противников действовать сообща, а также не нагружать Xbox 360.

В заключение автор видео отмечает, что технические достижения Halo 2 и Halo 3 нельзя переоценить. По его словам, эти игры изменили подход к созданию искусственного интеллекта примерно так же, как F.E.A.R.

Сейчас за франшизу Halo отвечает 343 Industries, а Bungie переключилась на серию Destiny. Однако вы можете быть уверены, что инструменты [авторов Halo] применяются не только этими студиями и используются во многих ААА-шутерах.

Томми Томпсон
44 показа
4.6K4.6K открытий
18 комментариев

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

Ответить

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

Ответить

Играю на хуане в ремастер первого хэйло, и чтото подгорает а хардах местами )

Ответить

Кто знает, тот поймет. Хе-хе.

Ответить

AI как AI, и шутерок такой себе, F.E.A.R. впечатлил больше в свое время, а behavior tree ... ну такое, не удивляет опять таки (структура простая, раз заморочились могли бы и побогаче реакции сделать).

p.s Halo люблю)

Ответить

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

Но все заслуженно, обажаю Halo.

Ответить

Как понимаю именно ИИ не позволит в Хало 3 топовый графон.

Ответить