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

Автор оригинала: 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: прошу прощения за отсебятину в терминологии, перевод слегка вольный и местами адаптированный под свои нужды (вместо детальных комментариев и шуток в оригинальном видео тут просто тест для читателей с легким экскурсом в игровое ИИ).
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

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

    +1
    Ни одного вставленного видео не видно :(
    Не могли бы вы рядом с каждым роликом дать прямую ссылку на ютуб?
      +2
      хмм, прошу прощения за вызванные неудобства, хотя видео было залито на vimeo, который вроде как одобрен для хабравидео… добавил ссылки отдельно, через какое-то время перезалью на Youtube
        0
        Странно, у меня все отображается.
          0
          Спасибо!
          Дело в том, что я иногда читаю Хабр в дороге с телефона в Google Reader (думаю, я не один такой), и встроенные ролики там показываются не всегда.
          По прямой ссылке на vimeo видео работает, перезаливать на youtube не обязательно.
        +2
        Спасибо, полезно. Как раз сейчас пытаюсь написать бота для игрушки. Последний график очень помог продвинуться. Было бы ещё лучше, если бы вы указали, какие книжки можно почитать по этому поводу.
          0
          На рутракере есть тема №1045448… там есть несколько книг по AI, которые возможно заинтересуют Вас.
          +13
          я думал тут расскажут что-то об алгоритмах реализации ии, а оказалось это банальная никому не нужная классификация .-.
            +9
            А где примеры кода? Обсуждение архитектур? Эх…
              0
              Если честно — первое видео не впечатлило. Да, футболисты двигаются немного коряво, но я не исключаю возможности, что ошибка обработки пасов в них тоже были заложены специально (симуляторы ой какие умные последнее время). Такая ситуация вполне могла повториться на реальном поле, просто судья свистнул бы игру рукой и игра остановилась бы.
                +2
                Я так понял там баг когда футболист пытается ударить по мячу, а бьёт «лежачего» и «спотыкается».
                  +2
                  И такое в реальной жизни бывает тоже.
                0
                Посмотрел первый ролик. Рыдаю. Прямо в офисе :)

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое