Правила войны — как устроен ИИ в шутере Spec Ops: The Line

МЕНЮ


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

ТЕМЫ


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

Авторизация



RSS


RSS новости


Фантомные гранаты и командная работа врагов и союзников.

На первый взгляд кажется, будто Spec Ops: The Line от студии Yager — очередной шутер с укрытиями в духе Gears of War. Но под этой обёрткой кроется мрачная история, разворачивающаяся в истерзанном войной Дубае. Искусственный интеллект здесь выступает как один из инструментов сторителлинга.

Автор YouTube-канала AI and Games Томми Томпсон (Tommy Thompson) проанализировал, как устроен AI в игре и рассказал, как изменилась Spec Ops: The Line в ходе её разработки, занявшей пять лет. Мы выбрали главное из материала.

Цели разработчиков

Сюжет в Spec Ops: The Line очень важен: он задаёт ритм путешествию главного героя, Мартина Уокера, и его соратников Адама и Луго через занесённый песком Дубай. В процессе игрок узнаёт, что не только стихия нанесла ущерб городу, но и он сам.

Нарративный дизайнер и сценарист игры Уолт Уилльямс в своей книге Significant Zero рассказывает, что разработчикам приходилось искать баланс между повествованием и свободой действий игрока, чтобы усилить нарратив.

Когда игрок начинает игру, он становится её персонажем. Здесь он должен понимать, в каком состоянии находится разум героя […] Чтобы свести Уокера с ума, мы должны были сломать его как эмоционально, так и психологически. Должен был быть момент, когда Уокер, под контролем игрока, совершал что-то настолько ужасное, что его разум просто не мог этого вынести […] Если бы надлом Уокера происходил без участия пользователя, то игрок бы просто перестал ассоциировать себя с героем, и сюжетный поворот бы не сработал.

Уолт Уилльямс

сценарист Spec Ops: The Line

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

Архитектура AI

В ходе своей разработки Spec Ops: The Line претерпела множество изменений. Это касается и ИИ. Создание игры началось в 2007 году, и тогда искусственный интеллект в игре во многом напоминал оный из F.E.A.R. Игроки могли отдавать своим союзникам приказы на манер классических частей Rainbow Six: заставлять их занимать определённые позиции, обходить противника и так далее.

Однако такой подход не работал с дизайном уровней игры, с этим ИИ было трудно работать. Система искусственного интеллекта STRIPS из F.E.A.R. заставляла противников изобретать интересные стратегии и действовать «обдуманно», но в контексте шутера с укрытиями, враги, управляемые ею, считали самым разумным вовсе не вылезать из укрытия. То есть, играть с «умным» ИИ было попросту не весело.

В 2010 году разработчики полностью переписали искусственный интеллект и построили систему на основе древа поведения (behavior tree). Это популярный в ААА-играх метод, который использовался, в частности, в Alien: Isolation. Он позволяет разработчикам устанавливать то, как будут вести себя NPC в конкретной ситуации.

Все наработки, созданные с помощью STRIPS, были перенесены на новую систему. Возможности игрока в плане управления соратниками было решено сильно урезать: теперь им можно приказать лишь атаковать конкретного врага, лечить друг друга и кинуть ослепляющую гранату. Несмотря на это, узлы поведения, отвечающие за действия NPC, всё-таки дошли до финальной версии, но в изменённом виде. Например, изначально Адаму можно было приказать развернуть миномёт. Эта возможность не добралась до релиза, но соответствующий узел поведения был использован в сцене с атакой белым фосфором.

Yager внесла небольшие изменения в типичную схему древа поведения. Обычно система сверяется с древом каждые несколько кадров, чтобы «перестроить» поведение противника в зависимости от изменившихся условий. Однако это сильно сказывалось на производительности, потому что одновременно в игре могут действовать целых восемь древ, каждое из которых «привязано» к конкретному NPC.

Разработчики решили эту проблему, заставив систему менять модель поведения не каждый кадр, а в зависимости от того, что происходит вокруг. Это значит, что персонажи будут выполнять одни и те же действия, пока не закончится конкретное внутриигровое событие. Для этого разработчикам пришлось создать специальную систему, которая анализировало всё, что происходит на экране, и передавала эту информацию NPC.

Вражеский AI

На пути игроку встречаются три вражеские фракции: жители Дубая, которые не смогли покинуть город, бойцы 33-го батальона и отряд «Зулу». Каждая из них содержит в себе три одних и тех же архетипа ИИ: врагов, которые предпочитают навязывать ближний, средний или дальний бой. Однако в рядах 33-го есть два особых вида противника: Commando и Heavy Trooper. Они созданы так, чтобы заставить игрока покинуть укрытие.

Все архетипы противников по-разному реагируют на происходящие вокруг события. Кроме того, у некоторых врагов упрощённый ИИ, на действия которого влияют только глобальные изменения на поле боя. Разработчики хотели добиться такого эффекта, чтобы игрок понимал, что сражается с живыми людьми. Для этого бойцы 33-го, например, регулярно переговариваются по рации.

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

Более того, у противников в Spec Ops неограниченный запас патронов, а их броски гранат — фикция. Анимация перезарядки включается лишь для того, чтобы игрок мог пойти в наступление, но, в то же время, если они, например, обходят игрока с флангов, они вообще не будут перезаряжать оружие. Что касается гранат, то для них была создана специальная система. Игра оценивает, как долго игрок находится в укрытии, выбирает ближайшего к нему NPC и заставляет того проиграть анимацию броска гранаты. После этого граната просто оказывается неподалёку от Уокера. На самом деле никакого броска не происходит.

Однако есть системы, которые призваны помогать игроку. Так, все враги поднимаются на ноги, открываясь для удара, когда игрок подходит к укрытию, за которым они сидят. Кроме того, если бросить гранату-липучку в противника, то тот обязательно побежит к своим соратникам, если те есть в поле его видимости.

Дружественный AI

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

По локациям в Spec Ops: The Line были разбросаны так называемые Squad Triggers — специальные точки диктующие напарникам, как им вести себя, когда они добираются до них. Благодаря этим точкам, союзники всегда знают, где им следует находится, когда начнётся сражение. Однако во время сражения их поведение не зависит от Squad Triggers.

У Луго и Адама есть два основных состояния поддержки игрока. В первом они просто расправляются с противниками, выбирая самых сильных из тех, кто находится в их поле видимости. Кроме того, они помогают игроку обнаруживать врагов, скрывающихся за укрытиями. Устроено это следующим образом: снайпер Луго может «видеть» где именно прячется противник, и стреляет в него. При этом система устроена так, что враг обязательно поднимется из-за укрытия, чтобы попасть под выстрел Луго.

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

Как было сказано ранее, враги могут переговариваться между собой во время боя, но то же самое делают союзники. Они указывают игроку, когда противник пытается обойти его с фланга или сообщают ему, что на локации появился определённый тип вражеских солдат. Таким образом, создаётся иллюзия того, что Адам и Луго следят за тем, что происходит вокруг них. На самом же деле, вражеский AI попросту сообщает союзникам о том, что он собирается сделать, а соратники Уокера затем «рассказывают» об этом игроку.


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

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