Идеальная симуляция поведения NPC — не главная задача: почему реакции ИИ имеют фундаментальное значение

Создание увлекательной системы важнее реализма.

Ведущий ИИ-инженер Hangar 13 Серджио Оцио Барриалес на сайте Gamasutra опубликовал текст, в котором рассказал о важности реакций NPC на действия игроков — именно этот аспект имеет фундаментальное значение для пользовательского опыта. Мы выбрали из текста главное.

Идеальная симуляция поведения NPC — не главная задача: почему реакции ИИ имеют фундаментальное значение

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

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

  • Конечные автоматы (Finite-State Machines, FSMs) или их иерархические версии (Hierarchical Finite-State Machines, HFSMs) обрабатывают реакции NPC как переходы между состояниями. Трудности с этим подходом начинаются в тот момент, когда реакций становится очень много — из-за этого бывает трудно контролировать число переходов.
  • Деревья поведения (Behavior Trees, BTs) — это в некотором смысле эволюция HFSMs: они могут обрабатывать реакции несколькими различными способами. Этот подход позволяет приоритезировать обработку внешних стимулов, а также вводить новые модели поведения в определённые точки дерева.
  • Автоматизированные планировщики, такие как GOAP (Goal-Oriented Action Planning) или HTNs (Hierarchical task network), могут потребовать частичного или полного перепланирования. Эти подходы лучше масштабируются, но их реакции могут быть менее управляемыми — решение алгоритма зависит от текущего состояния мира и цели NPC. Поэтому реакция на одно и то же событие в разных условиях может отличаться.
Идеальная симуляция поведения NPC — не главная задача: почему реакции ИИ имеют фундаментальное значение

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

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

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

Идеальная симуляция поведения NPC — не главная задача: почему реакции ИИ имеют фундаментальное значение

В отношении ИИ часто можно услышать словосочетание «приостановка неверия». Это идея появилась ещё в 1817 благодаря британскому поэту Сэмюэлю Тейлору Кольриджу. Её можно описать, как «готовность читателей принять неправдоподобность истории, пока она достаточно правдоподобна, чтобы привлечь их внимание».

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

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

Идеальная симуляция поведения NPC — не главная задача: почему реакции ИИ имеют фундаментальное значение

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

Допустим, в стелс-игре пользователь спрятался у колодца, но его заметил противник и крикнул: «Он у колодца!». Вероятно, если игрок сменит позицию, но останется у колодца, то противники при обнаружении будут произносить всё ту же фразу. В итоге это начнёт раздражать, а иллюзия начнёт рушиться. Чтобы избежать этого, у каждой фразы должен быть небольшой «кулдаун» — промежуток времени, в который реплика не может быть повторена. Вместо конкретных фраз можно использовать более общие: «Вон там» или «Я вижу его».

Идеальная симуляция поведения NPC — не главная задача: почему реакции ИИ имеют фундаментальное значение

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

Реакции на попадание воспроизводятся в результате прямого контакта или столкновения с каким-либо другим объектом, например, при ударе или попадании пули. Они предназначены для обеспечения немедленной обратной связи — благодаря им игрок понимает, что атака была успешной. Реакция обычно определяется сочетанием таких факторов, как сила и направление удара, а также место попадания, например, выстрел в голову или конечность.

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

Идеальная симуляция поведения NPC — не главная задача: почему реакции ИИ имеют фундаментальное значение

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

Пребывание NPC в игре можно легко описать с помощью конечного автомата с ограниченным количеством состояний. Например, в типичной экшен-игре «жизнь» персонажа может быть описана четырьмя состояниями — «До боя», «Бой», «Поиск» и «Смерть». Конечно, эти состояния можно разбить на множество более мелких частей, но на самом высоком уровне это выглядит примерно так:

Схема перехода в разные состояния
Схема перехода в разные состояния

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

Вот несколько выводов.

  • Сделайте так, чтобы противники могли переговариваться между собой. Это создаст ощущение хорошо проработанного интеллекта. Сценаристы могут помочь вам в этом.
  • Используйте как можно больше вариаций анимации — это позволит избежать проблем с повторением.
  • Рандомизируйте тайминги реакций — это сделает ИИ более реалистичным.
  • Не нарушайте ожидания игроков, когда дело касается реакций — если пользователь ожидает ответа от игры, убедитесь, что он его получит.
4040
16 комментариев

Комментарий недоступен

8
Ответить

Так эту мысль еще с 2000 года несут. Гейплей важнее всего.   Бывает конечно симулятор подводной лодки, но их и делают для любителей этих фетишей.  

Ответить

Ведущий ИИ-инженер Hangar 13 ИИ в Mafia 3 оставляет желать лучшеЧувствую, что его мнение я читать не очень хочу

6
Ответить

Комментарий недоступен

6
Ответить

"Зачем вы убили Ульяма Таггарта?!!" (с, deus ex md) Когда одна истеричная NPC-девица накинулась с этим вопросом, то впечатлило.

3
Ответить

Идеальная симуляция людей, находящихся в зоне аномалий, радиации, мутантов и вооружённых бандитов.

Ответить

вот именно, 1 гайки кидает, остальные в след идут

1
Ответить