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

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

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

Предпосылки

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

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

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

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

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

Задачи

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

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

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

Каждое сражение имеет набор целей, которые активируются в определённые моменты боя. Система задач не только делает битвы более естественными, но и помогает разработчикам структурировать их. Менеджмент задач осуществляется с помощью инструмента под названием 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] применяются не только этими студиями и используются во многих ААА-шутерах.

Томми Томпсон


Источник: dtf.ru

Комментарии: