Зачем NPC разум: искусственный интеллект в играх

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

ИИ нужен для имитации разумности NPC, при этом его задача не в том, чтобы обыграть пользователя, а в том, чтобы развлечь его. В современных играх используются разные подходы для создания ИИ. В основе лежит общий принцип: получение информации → анализ → действие. В статье — самые популярные методы и примеры использования ИИ в играх.

Зачем NPC разум: искусственный интеллект в играх

Владимир Семыкин

Энтузиаст геймдизайна,  автор Нетологии

Конус зрения, уши и обонятельные рецепторы — как игровой ИИ получает информацию

Получение информации происходит примерно так же, как и в реальном мире — у ИИ есть специальные сенсоры, при помощи которых он исследует окружение и следит за происходящим. Сенсоры бывают совершенно разными. Это может быть традиционный конус зрения, «уши», которые улавливают громкие звуки, или даже обонятельные рецепторы. Конечно, такие сенсоры — всего лишь имитация реальных органов чувств, которая позволяет сделать игровые ситуации более правдоподобными и интересными.

Зачем NPC разум: искусственный интеллект в играх
В Tom Clancy«s Splinter Cell: Blacklist вражеские собаки умеют выслеживать героя по запаху. Это вынуждает игрока постоянно менять укрытие и не засиживаться на одном месте

Наличие и реализация сенсоров зависит от геймплея. Во многих активных шутерах не нужны комплексные рецепторы — достаточно конуса зрения, чтобы реагировать на появление игрока. А в стелс-экшенах весь геймплей основан на том, чтобы прятаться от противников, поэтому виртуальные органы чувств устроены сложнее.

Зачем NPC разум: искусственный интеллект в играх
В серии Serious Sam большинство врагов просто бездумно бегут на игрока, когда он выходит на поле боя

Виртуальные рецепторы устроены по-разному. В Metal Gear Solid у противников совсем простой конус зрения, отсутствует периферийное зрение, поэтому они видят только то, что происходит прямо перед ними.

Зачем NPC разум: искусственный интеллект в играх
Конус зрения в Metal Gear Solid

В Shadow Tactics: Blades of the Shogun тоже используется конус, но он сложнее. Конус поделён на зоны видимости, которые зависят от особенностей ландшафта. Если игрок попадёт в однородную зелёную зону, то его почти сразу увидят. В полосатой зоне видимость затруднена, поэтому игрок будет незаметен, если будет двигаться пригнувшись. А в зоне, покрытой точками, герой полностью скрыт.

Зачем NPC разум: искусственный интеллект в играх
Когда противник замечает игрока, конус зрения постепенно меняет цвет на жёлтый. Когда он заполнится, враг поднимет тревогу

В Tom Clancy«s Splinter Cell: Blacklist визуальный сенсор противников комплексный. У врагов есть основная зона видимости в форме вытянутого шестиугольника. Здесь персонаж видит лучше всего, поэтому в это пространство вообще лучше не заходить. Есть и более крупный шестиугольник, который имитирует периферийное зрение — там противник видит хуже. В такую же зону входят удалённые участки, которые недостаточно хорошо просматриваются.

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

Зачем NPC разум: искусственный интеллект в играх
Схема визуального сенсора противников в Splinter Cell: Blacklist

Особенность противников в Splinter Cell: Blacklist в том, что они могут видеть игрока в частичном укрытии. Если несколько частей тела героя выглядывают из-за препятствия, то враг замечает его. Чтобы реализовать эту механику, разработчики использовали технологию рейкастинга — из глаз врага кастуются лучи, и если они пересекают несколько частей тела героя, то противник поднимает тревогу.

Зачем NPC разум: искусственный интеллект в играх
Тело Сэма Фишера поделено на восемь частей. Если враг увидит несколько из них, то откроет огонь

Зачем NPC разум: искусственный интеллект в играхПрофессия

Геймдизайнер

Узнать больше

  • Освоите профессию геймдизайнера с нуля: от идеи до балансировки и маркетинга
  • Разработаете прототип собственной игры на движке Unreal Engine
  • Составите полный комплект проектной документации для запуска игры

Анализ, коллективный интеллект и навыки режиссёра — что помогает ИИ принимать решения

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

Зачем NPC разум: искусственный интеллект в играх
В Gears Tactics у ИИ противников всегда есть глобальная цель. Групповой ИИ раздаёт каждому задание, которое помогает достигать общей цели. А NPC сами решают, каким образом выполнить задачу

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

Зачем NPC разум: искусственный интеллект в играх
В Horizon Zero Dawn робозвери умеют объединяться в стада, а их поведением управляет групповой агент. У каждой машины есть своя роль: патрулирование, атака, поиск ресурсов

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

Зачем NPC разум: искусственный интеллект в играх
Например, в Final Fantasy XV есть мета ИИ, который постоянно анализирует ситуацию и управляет NPC. Если игрок попал в передрягу, то именно мета ИИ вызовет ему на помощь союзника

В играх есть несколько подходов, которые чаще всего используются для принятия решения. Один из самых простых и понятных подходов — это rule-based ИИ. В основе лежит список правил и условий, заранее созданный разработчиками. Такой подход можно эффективно использовать для создания простого поведения. Например, «если игрок приближается к курице ближе, чем на три метра, то она начинает от него убегать».

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

Зачем NPC разум: искусственный интеллект в играх
ИИ в Half-Life реализованы при помощи конечных автоматов. У них более 80 уникальных состояний

Преимущество этого подхода в том, что персонаж всегда будет находиться в каком-то состоянии и не зависнет где-то между ними. Так как разработчик должен прописать все переходы, он точно знает, в каких состояниях может находиться игровой объект. Недостаток метода в том, что с увеличением количества механик значительно разрастается и система конечных автоматов. Это увеличивает риск появления багов, а также может снизить скорость операций.

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

Зачем NPC разум: искусственный интеллект в играх
Пример дерева поведения из Just Cause 3. У каждого типа поведения есть огромное количество вариаций

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

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

Зачем NPC разум: искусственный интеллект в играх
В Gears Tactics у каждого типа юнитов есть собственное дерево поведения, в котором учтены все индивидуальные особенности и способности NPC

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

Зачем NPC разум: искусственный интеллект в играх
Так выглядит иерархическая архитектура в Final Fantasy XV

Есть и менее популярные решения, которые не смогли полноценно закрепиться в индустрии. В F.E. A.R. использовалась система целеориентированного планирования действий (Goal-Oriented Action Planning, GOAP) — для всех NPC она создаёт план действий, основываясь на информации об игровом мире. Если персонажу нужно перейти в другую комнату, то система сперва проверяет, какое расстояние нужно пройти до двери, есть ли на пути препятствия, открыта ли дверь и так далее. Когда у системы есть вся информация об окружении, она составляет план, а NPC просто проигрывает последовательность анимаций.

Этот подход работает на основе конечных автоматов, но они отвечают только за воспроизведение анимаций. У автоматов есть всего три состояния, каждое из которых отвечает за свой набор анимаций: движение (бег, ходьба), действия (стрельба, реакции), взаимодействие с объектами (открыть дверь, включить свет).

Зачем NPC разум: искусственный интеллект в играх
F.E. A.R. запоминается достаточно умными противниками, которые умеют работать сообща. На самом деле они даже не знают о существовании друг друга — просто ИИ грамотно координирует их действия

На смену GOAP постепенно пришла система ИИ под названием иерархический планировщик сети задач (HTN). Эта сеть создаёт планы, которые состоят из макросов действий, в которых уже заложена определённая последовательность.

Такая система применяется в Horizon Zero Dawn. С помощью неё робоживотные могут обмениваться информацией и запрашивать у группового ИИ план действий для решения задачи.

Зачем NPC разум: искусственный интеллект в играх
У каждого противника в Horizon Zero Dawn есть свой паспорт, который используется при идентификации и добавлении в новую стаю. Когда персонаж попадает в неё, ему присваивается роль внутри группового агента

На земле, в воде и по воздуху — как ИИ передвигается в пространстве

Действия ИИ напрямую связаны с его задачей: это может быть удар в ближнем бою, занятие более выгодной позиции для стрельбы, помощь союзнику. Независимо от задачи агент должен добраться до места выполнения действия — для этого ему нужна информация об окружающей среде.

Обычно такие данные содержатся в навигационной сетке (NavMesh) — это особая карта, на которой обозначено, где NPC могут передвигаться.

Зачем NPC разум: искусственный интеллект в играх
В Horizon Zero Dawn есть сразу шесть навигационных сеток: четыре для существ разного размера, одна для тех, кто плавает, одна, чтобы игрок мог корректно оседлать существо

Поверх навигационной сетки может располагаться система узлов, которая применяется для того, чтобы NPC корректно выполняли сценарии поведения. К примеру, в Assassin«s Creed Origins у всех NPC есть свой распорядок дня, который они соблюдают даже без участия игрока. Чтобы персонажи следовали сценарию и не застревали в окружении, разработчики сделали специальную сеть узлов — точки на плоскости, где NPC выполняют свою персональную задачу. Описанный метод подходит для заранее предопределённых сценариев. NPC словно перемещаются по рельсам от одной точки к другой.

Зачем NPC разум: искусственный интеллект в играх
Зелёным обозначена навигационная сетка, а поверх неё находится система узлов. Жёлтая стрелка указывает на ошибку — кто-то поставил на узел игровой объект, чем перекрыл NavMesh

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

Зачем NPC разум: искусственный интеллект в играх
NPC будут стараться находиться у зелёных точек, так как это наиболее выгодные для них позиции

Похожая система есть и в Final Fantasy XV: когда NPC хочет применить способность, он оценивает окружение вокруг своей цели, чтобы найти наиболее выгодную позицию. Сначала ИИ ищет цель, потом выстраивает сетку из точек вокруг цели, отсеивает позиции, которые не подходят из-за особенностей ландшафта или удалённости от цели, а из оставшихся выбирает самую высокую точку.

Зачем NPC разум: искусственный интеллект в играх
В навигационной сетке уже содержится информация о перемещениях между уровнями по вертикали

Всё это применимо только к ИИ, которые передвигаются по горизонтальным плоскостям. А в Horizon Zero Dawn, например, есть ещё и летающие противники, для которых не работают стандартные навигационные сетки. Чтобы исправить это, разработчики использовали технологию MIP Mapping, которая позволяет быстро менять детализацию карт высот.

Для расчёта траектории в полёте применяется один из самых популярных алгоритмов поиска пути — А*. Этот алгоритм позволяет найти оптимальный маршрут до цели — он считает «стоимость» каждого варианта пути, а потом сравнивает их между собой. В результате ИИ использует самую «дешёвую» траекторию.

Зачем NPC разум: искусственный интеллект в играх
A* высчитывает траекторию, основываясь на самой высокой точке локальной местности. Именно из-за этого воздушные противники в Horizon Zero Dawn не могут залетать под мосты или скалы

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

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

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

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

Читать также

Зачем NPC разум: искусственный интеллект в играх Как создаются интересные открытые миры: ключевые принципы

Зачем NPC разум: искусственный интеллект в играх Механика, геймплей, динамика — как устроен игровой процесс в играх

Зачем NPC разум: искусственный интеллект в играх Архитектура в видеоиграх — как здания влияют на левел-дизайн и навигацию игрока

Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

Зачем NPC разум: искусственный интеллект в играх

Владимир Семыкин

Энтузиаст геймдизайна, автор Нетологии

The post Зачем NPC разум: искусственный интеллект в играх first appeared on Медиа Нетологии.

Полный текст статьи читайте на Нетология