Введение
Современные игры отличаются очень сложным ИИ и бывает что системы рушатся под натиском амбициозных дизайнеров с одной стороны и креативных игроков с другой. На Youtube и других медиа сайтах полным полно роликов с багами, даже из самых последних игр. Просмотр этих багов может быть не только поучительным, но и дать понимание реализации ИИ.
В этой статье вы откроете для себя основы архитектуры игрового ИИ через серию забавных игровых багов, заснятых в видеоролики. Эксперты из AiGameDev.com Philip Dunstan и Alex Champandard проведут вскрытие и анализ багов, чтобы вы смогли увидеть общую картину этой технологии. После этого урока, вы сможете попробовать ответить на вопрос, почему NPC в вашей любимой игре ведут себя именно так и какие могут быть решения проблемы.
Об экспертах
До того как присоединиться к AiGameDev.com Philip Dunstan работал более пяти лет в Electronic Arts. Как участник центральной технологической группы он работал над некоторыми известными играми от EA в студиях по всему миру. Последние пару лет Филип специализировался на симуляции физики, в том числе помогая создать движок Impact для FIFA 12.
Alex Champandard работал над совместной технологией в движке R.A.G.E от Rockstar Games, в частности в TABLE TENNIS и MAX PAYNE 3. Недавно Алекс подписал контракт на создание ботов для мультиплеерной игры в KILLZONE 2 и 3, а также он регулярно консультирует студии с играми уровня AAA, в основном в Европе.
Чтобы понять о каких конкретно багах пойдет речь, давайте глянем на этот ролик из FIFA 12
(альт.линк на пример бага из FIFA 12)
Ну это довольно таки сложный баг и хуже этого мы сегодня не увидим…
Для начала давайте посмотрим на базовую архитектуру ИИ.
Когда речь заходит об архитектуре для традиционного ИИ, например для роботов, то обычно это концепция «Восприятие-Обдумывание-Действие». Этот традиционный подход вполне применим и для игрового ИИ.
Предлагаю Вам классифицировать баги и соотнести их к соответствующей категории на диаграмме. Для этого посмотрите видео и подумайте в какой части архитектуры появились баги в каждой продемонстрированной игре — в восприятии, в обдумывании или в действии.
(альт.линк на видео с багами №1)
Разумеется в современных играх реализация ИИ намного сложнее чем эта диаграмма и данные пересылаются от блока к блоку вперед и назад.
Думаю многие из Вас заметили что баги из этих игр по большей части относятся к блоку «Действие». Давайте конкретизируем этот блок указав две составные части, которые являются относительно фундаментальными столпами в этом блоке, хотя разумеется есть и другие части (например вокализация). Предлагаю классифицировать баги в вышеприведенном ролике еще раз, но уже детальнее — баг навигации или баг анимации.
Баг не всегда можно отнести лишь к одному блоку, да и решить проблему часто можно с разных подходов. Давайте рассмотрим баги в следующем видео. Какие из них Вы отнесете к ошибкам анимации, а какие к ошибкам навигации? Или может у этих ошибок иная природа?
(видео с багами №2)
Блок «Обдумывание» также можно разделить на несколько частей из которых основными являются «Рассуждение», «Поведение» и «Запоминание». Как бы Вы теперь классифицировали баги?
Блок «Рассуждения» принимает и обрабатывает информацию от блока «Восприятие» и на основе этой информации делает какие-то выводы, например — я вижу объект неподалеку от меня, это вражеский объект, это снайпер и мне надо валить отсюда. Блок поведения на основе выводов принимает решение как именно это решение будет исполняться — улепетывать со всех ног, уйти с гордо поднятой головой или медленно уползать в сторону кладбища. К сожалению, блок «Запоминание» не используется так часто как хотелось бы, будем надеяться что со временем этот блок станет таким же важным как и два других в сегменте «Обдумывания».
«Восприятие» в игровом ИИ отличается от сенсорного восприятия в робототехнике — у роботов в качестве сенсорного датчика часто выступает видеокамера или иное устройства для получения глубины (сонар, лазеры и т.д.), в то время как в игровом ИИ информация поступает в виде данных, например данных для выявления коллизий, для нахождении пути или о игровых сущностях.
И еще один ролик — ошибки какого блока или блоков привели к таким игровым ситуациям?
(видео с багами №3)
Ну и для наглядности покажем структуру головного мозга NPC еще раз:
Если есть дельные мысли по поводу увиденного, то просим поделиться. Мыслями.