В новом выпуске научно-популярного проекта ЛессОН речь пойдет об игровом искусственном интеллекте и принципах его «жизнедеятельности» в виртуальных мирах. Само понятие NPC давно вышло за пределы мониторов и превратилось в модный термин, однако за ним стоит серьезная техническая база.
Илья Семичаснов
Академический руководитель магистерской программы «Цифровая инженерия для компьютерных игр», руководитель Мастерской Игровой инженерии и интерактивных систем НИУ ВШЭ, CEO Bear Head Studio.
Сегодня мы с вами поговорим о так называемых «внутриигровых агентах», или «ботах», или NPC или, иными словами, об «Игровом искусственном интеллекте». А также о его «жизнедеятельности» в различных виртуальных мирах.
Вообще сам термин NPC уже тесно вошел в обиход, став частью современного сленга, даже не только в контексте видеоигр. Однако его корни отходят непосредственно к техническому обозначению особого автономного игрового объекта, который не контролируется игроком. NPC следует набору строго определенных алгоритмов, которые меняются в зависимости от ситуации. То есть NPC чаще всего симулируют человеко-подобные действия в виртуальном мире в контексте истории или режима игры, создавая тем самым необходимую интерактивность для игрока. Они могут выступать верными товарищами, продвигать игрока по внутриигровому сюжету, выступать в качестве противников или просто наполнять мир своим присутствием.
Техническая реализация каждого NPC в совокупности чаще всего уникальна и зависит от набора игровых механик, доступных игроку, жанра и основного целеполагания конечного «бота» в игре. Именно поэтому на разработку «умного» и «интересного» игрового ИИ уходит так много времени, кратно повышая, тем самым, стоимость разработки игры.
Но какие признаки у «умного» и «интересного» NPC? И почему взаимодействие с внутриигровыми агентами до сих пор вводят игрока в тоску? Дьявол кроется в деталях работы видеоигр на конечных устройствах… Технологическим сердцем любой игры является движок, на котором она была разработана. Игровой движок – это сложный комплексный инструмент для разработки видеоигр, состоящий из набора подпрограмм для работы программистов, геймдизайнеров и художников в единой среде. В Игровом движке можно разрабатывать игровые механики, строить виртуальные миры, настраивать анимации и… создавать NPC! В основе современных на настоящий момент Игровых движков для разработки внутриигровых ботов лежит фундаментальный принцип настройки конечных автоматов.
Поведение NPC разбивается на различные дискретные состояния — например, «атаковать», «убегать», «ожидать», «идти по строго определенному маршруту все время». Каждое состояние имеет строго определенный набор переходов, которые выполняются при соблюдении предписанных разработчиком внутриигровых условий. Минус этой технологии на лицо: любой конечный автомат не способен обучаться и генерировать новые сценарии взаимодействия с игроком, что делает поведение такого NPC предсказуемым. Именно поэтому в большинстве современных однопользовательских игр компьютерные противники похожи по своему поведению друг на друга, и современному игроку не составляет труда запомнить их набор реакций на внутриигровые ситуации и применять выигрышную стратегию вновь, и вновь и вновь и вновь… Звучит как-то не инновационно, вам не кажется?
Но не спешите расстраиваться – к нам на помощь приходят нейросети! На заре развития современного искусственного интеллекта разработчики сразу же поставили перед собой цель обновить используемый десятилетиями принцип создания NPC, чтобы виртуальные миры стали еще более интерактивными, а на их создание уходило меньше трудозатрат. В 2017 году Unity Technologies, это компания, которая разработала один из самых знаменитых игровых движков в мире Unity, объявила о выпуске инструмента Unity ML‑Agents Toolkit, который был призван превратить игры и симуляции на их движке в среды обучения внутриигровых агентов на базе имитационного обучения или обучения с подкреплением на выбор разработчиков.
«За этим действительно большое будущее и скоро взаимодействие с NPC выйдет на новый уровень интерактивности», — подумали все разработчики и… думают так до сих пор…
Дело в том, что мысль действительно прорывная, но вот прошло уже почти 8 лет на момент выпуска данного ролика, а игр с NPC, разработанных на базе инструментов машинного обучения, до сих пор практически нет. Проблема кроется в вычислительных ресурсах, а именно — в вычислительной стоимости обучения. Даже простые модели машинного обучения в играх требуют длительных тренировок на дорогостоящем оборудовании, что делает технологию невостребованной для небольших инди-студий. Кроме того, поведение агента после обучения остается трудно предсказуемым, а процесс подбора наград, гиперпараметров и структуры среды требует глубоких знаний в области машинного обучения, которыми большинство игровых разработчиков не обладает.
Однако мы в Bear Head Studio как никто другой почувствовали эту проблему на своем опыте, ведь наша Мастерская занимается разработкой собственного игрового движка Claw Engine, а также собственных моделей машинного обучения для разработчиков игр и непосредственно самих видеоигр. Именно поэтому в 2025 году мы открыли в МИЭМ НИУ ВШЭ магистерскую онлайн программу «Цифровая инженерия для компьютерных игр», где обучаем студентов создавать технологии для разработки игр и модифицировать их под современные стандарты индустрии. Мы учим применять математику и физику для создания реалистичных симуляций, и преподаем машинное обучение в играх, чтобы наши выпускники могли создавать игровые миры более живыми и захватывающими. Тематика развития современного внутриигрового NPC — одна из ведущих научных тем наших студентов. Поступайте к нам и создавайте будущее для игровой индустрии вместе с нами!
Давайте помечтаем и предположим все-таки, что вычислительные ресурсы сделали большой скачок, и дообучить свою собственную модель машинного обучения под узкоспециализированные нужды может любой пользователь прямо на своем домашнем ПК. Но что дальше? Неужели настанет время, когда NPC будут не просто взаимодействовать с пользователем, а создавать целые сюжетные линии на базе их непредсказуемого набора действий? Этакий аналог «матрицы в матрице». Ответ на этот вопрос — и да, и нет. Даже если мы решим проблему вычислительных ресурсов останется еще одна боль игровой индустрии с точки зрения разработки NPC, а именно соблюдения принципов геймдизайна.
Научным языком эту проблему можно обозначить как «отсутствие детерминированности и гарантий результата», а простым языком она будет звучать так: NPC, который создан с применением технологий машинного обучения, с легкостью может обучиться «не тому», и потенциально ломать игровой баланс своим «эффективным поведением». Ведь самой главной целью геймдизайна является постоянная поддержка интереса игрока в игре, а чрезмерно умный NPC, который тебя постоянно обыгрывает - это не то, к чему стремится игровая индустрия в контексте данной технологии.
Самый простой такой пример — это игры в гоночном жанре. Создать машинку, которая будет выступать соперником игроку и постоянно «правильно поворачивать», не составляет особого труда с технологической точки зрения. А вот создать машинку, которая будет совершать ошибки в рамках геймплея, так же уместно, как, например, это делает реальный человек — это уже самый настоящий вызов для разработчиков. Плюс еще стоит учесть момент реиграбельности: на одной и той же трассе NPC должен совершать разные ошибки в разный момент времени. Получается такое принудительное «отупление» внутриигрового агента с целью достижения магии веселья для пользователя во время игры. Иначе в гонках, где машинка, которая уже хорошо предобучилась на виртуальном полигоне и теперь может эффективно проезжать разные трассы, просто неинтересно будет играть, и такую гонку никто не купит.
Но если перейти от гипотетических утверждений к экспериментам, которые проводились на практике, то в 2019 году компания OpenAI опубликовала результаты исследования об обучении NPC игре в салочки. Боты-«искатели» и боты-«прячущиеся» тренировались с помощью методов машинного обучения на виртуальном полигоне, построенном в игровом движке. После более чем миллиона итераций NPC начали вырабатывать выигрышные стратегии, не заложенные разработчиками вручную.
Самое интересное то, что боты научились использовать баги и особенности физики виртуального полигона в их стратегии для получения преимущества. Например, они обнаружили способы «катапультироваться» на объекты или перемещаться по недоработанным коллизиям. Эксперимент наглядно продемонстрировал, что NPC способны обнаруживать лазейки в симуляциях так же, как и люди, но делают это значительно быстрее. Это очень эффективно с точки зрения тестирования игр, но абсолютно нецелесообразно с точки зрения геймдизайна. Такого рода «читерство» выглядит «инородно» по отношению к правилам игры и к ЛОР-у, что потенциально снижает погружение пользователя в игровой процесс.
Все описанные случаи накладывают некоторый ряд технологических ограничений, которые мы решаем на момент выпуска этого видеоролика. Однако, если взглянуть на развитие игрового ИИ на десятилетия вперед, становится ясно, что следующим вызовом станет создание эмоционального интеллекта. Сейчас игроки испытывают разные эмоции к виртуальным персонажам в контексте сюжета благодаря хорошо прописанным сценарным подходам и нарративу. Внутриигровые герои заставляют нас испытывать разные эмоции: от сопереживания, симпатии и чувства ответственности до раздражения, страха или откровенной ненависти. Однако в случае развития эмоционального интеллекта у NPC портрет персонажа будет формироваться автоматически в контексте сюжета игры, некая генерация всей симуляции. Данная технология является апогеем развития всего внутриигрового NPC и является достижимой мечтой каждого разработчика-исследователя в геймдеве.
Но даже если такая технология будет изобретена, сможет ли NPC чувствовать? А это уже философский вопрос… NPC чувствуют и сейчас в контексте тех параметров, которые были заложены в них изначально. Они не могут сломать четвертую стену, и то, что происходит в виртуальной симуляции является реальностью для них. Тем не менее именно эти «чувства» и создают часто эмоциональную вовлеченность игрока, предавая NPC ту самую человечность.
В итоге можно сказать, что NPC «чувствуют» только в той степени, в какой мы интерпретируем их поведение как проявление эмоций, но сами по себе они остаются моделями, лишенными «внутреннего» мира.
В подписке — дайджест статей и видеолекций, анонсы мероприятий, данные исследований. Обещаем, что будем бережно относиться к вашему времени и присылать материалы раз в месяц.
Спасибо за подписку!
Что-то пошло не так!