Pull to refresh

Охота на баги: Понимание архитектуры ИИ через эпические фейлы

Reading time3 min
Views2K
Original author: Alex J. Champandard

Введение


Современные игры отличаются очень сложным ИИ и бывает что системы рушатся под натиском амбициозных дизайнеров с одной стороны и креативных игроков с другой. На 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 еще раз:


Если есть дельные мысли по поводу увиденного, то просим поделиться. Мыслями.
Пишите свои комментарии по адресу: Москва, улица Шаболовка 37, передача «В гостях у Кафки». Приславший наиболее аргументированные предположения получит титул «AI молодец!» и шанс поучаствовать в передаче «Поле чудес», посвященной видеоиграм.

ps: прошу прощения за отсебятину в терминологии, перевод слегка вольный и местами адаптированный под свои нужды (вместо детальных комментариев и шуток в оригинальном видео тут просто тест для читателей с легким экскурсом в игровое ИИ).
Tags:
Hubs:
Total votes 57: ↑42 and ↓15+27
Comments12

Articles