Интервью. Как нейросети и машинное обучение делают игры интереснее (и не только)

Изображение: <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Funsplash.com%2Fphotos%2FEHLd2utEf68&postId=35257" rel="nofollow noopener" target="_blank">Unsplash</a>
Изображение: Unsplash

Машинное обучение и нейросети – горячие темы во многих технологических отраслях. Одна из них – геймдев, где новые инструменты используются для того, чтобы сделать игры интереснее.

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

Первый вопрос: в чем именно выражается «неинтересность» игр, которую надо исправлять новыми технологиями?

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

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

Ок, и как «прокачивают» ботов, чтобы с ними было интереснее играть?

Один из способов обучения игрового бота – его апгрейд через реальную игру с себе подобными. Представим, что мы создали некую игру, где можно передвигаться по карте, стрелять во врагов и совершать еще какие-то действия.

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

Среди интересных экспериментов в этой сфере – обучение ботов взаимодействию. Существуют эксперименты, в ходе которых ботов выпускают на карту и там они действуют сообща.

Звучит интересно, но есть ли уже сейчас какие-то практические реализации этого подхода? Может, какие-то примеры реальных игр, где такие боты используются?

Вообще, сложность машинного обучения и нейронных сетей в том, что необходимы очень большие ресурсы на отработку всех возможных вариантов действий. К примеру, чтобы научить нейросеть распознавать на изображениях слонов, ей нужно показать очень много картинок со слонами. А в случае с играми система должна пройти огромное количество игр. Интересные результаты можно получить начиная с нескольких десятков тысяч параметров.

Сейчас есть игры, в которых этого можно добиться на начальном уровне, но они должны быть довольно простыми. К примеру, VizDoom достаточно прост, к тому же у этой платформы большая частота кадров – 70 тыс. FPS, поэтому есть возможность дать ботам прожить много жизней за короткое время.

В итоге они качественнее обучаются, и можно получить неплохой результат: с ML-based ботами в VizDoom играть будет интереснее, чем с обычными скриптованными. В соревновании между ботами скриптованные также всегда будут проигрывать своим обученным противникам.

При этом все равно действия бота будут довольно простыми. Он будет в состоянии на хорошем уровне совершать рефлекторные действия, уворачиваться от пуль, но не сможет досконально помнить карту и придумать оригинальные ходы (например, устроить засаду в зоне респауна противников и убивать их сразу после появления): это слишком сложно. Ресурсы платформы VizDoom просто не позволяют расширить число экспериментов до необходимого уровня.

Что еще ограничивает разработчиков в деле внедрения ML и нейросетей?

Очень серьезная проблема – сбор данных для анализа и построения гипотез для проверки. В некоторых случаях их можно получить – например, Valve может выдавать информацию для ML-исследователей, скажем по Dota. Обычно это данные в формате JSON, которые удобно парсить – так можно быстро понять устройство мира конкретной игры, считывать все важные параметры вроде уровня здоровья.

В тех играх, где разработчики такой возможности не дают, исследователям приходится самостоятельно создавать инструменты для считывания данных – а это тысячи параметров от множества объектов. Есть и промежуточный вариант, при котором у нас есть только видео, и анализируется уже оно. В незамысловатых играх вроде VizDoom это может хорошо работать: разобрать такую картинку и считать главные параметры несложно. Но для более сложных игр нужно много данных, а получить их не всегда легко.

Какие компании сейчас активнее всего занимаются этими вопросами? Какими результатами могут похвастать?

Интересные эксперименты проводит компания – разработчик Battlefield DICE. В современной ААА-игре от первого лица на большом количестве машин повторили то, что делали в простеньком Doom. Что отличает Battlefield от более простых игр – так это сложная игровая механика, визуально более разнообразный мир. В остальном она ничем не отличается от простых игр. То есть нейронная сеть получает картинку на вход, а должна выдать действие. Только в случае Doom картинка была 300х400 пикселей, а в случае Battlefield – 1920х1080, и вариантов действий было значительно меньше. Кроме того, поскольку игровой мир стал более богатым, система должна иметь большую размерность, чем 3 слоя, так как сеть в результате исследования окружающего мира должна запомнить больше. Например, надо знать, что из оружия бывают гранаты, физика полета которых не похожа на полет пули, и что невысокие препятствия можно перелезть. За счет того что количество параметров в нейронной сети увеличилось, процесс обучения становится более долгим.

Интересно, что перед тем, как заняться обучением в Battlefield, разработчики сделали систему, похожую на VizDoom. И сначала там проверили работоспособность алгоритма. В ней в качестве домов использовали огромные кубы, здоровье и патроны были изображены просто цветными коробочками. Таким образом, агенту была упрощена задача. Дело в том, что сначала агент учится воспринимать визуальную информацию. Прежде чем научиться заходить в тыл сопернику, агент должен научиться понимать, где дом, а где аптечка. Поэтому симуляторы для проверки алгоритмов обучения с подкреплением делают максимально простыми с визуальной точки зрения – чтобы упростить первоначальное понимание мира.

Результаты исследований в области машинного обучения в играх публиковала команда проекта OpenAI. К примеру, не так давно они проводили целую серию экспериментов. В ходе одного из них люди играли против бота в режиме «один на один» – и здесь у человека возникали сложности в том, чтобы победить в прямом столкновении, так как бот лучше реагирует. Но затем удавалось найти неэффективности в стратегии бота и воспользоваться ими.

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

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

Почему пока не удается создать по-настоящему human-like бота?

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

И что с этим делать? Есть предпосылки к улучшению ситуации?

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

Этот подход подразумевает разбиение одной большой игры на маленькие – например, только стрельбу, передвижение, покупку предметов. Алгоритмы для обучения в рамках такой мини-игры куда проще, а для их отладки не требуется очень много ресурсов – иногда мини-игры вообще рендерят с помощью GPU. После получившийся результат можно масштабировать на более сложные игровые среды.

В заключение можете дать прогноз о том, как будут развиваться ML и нейросети в применении к геймдеву и не только?

С играми ясно: постепенно будут появляться все более прокачанные боты, с которыми будет все интереснее взаимодействовать.

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

Все видели роботов от Boston Dynamics, но в них не используется машинное обучение. У этой компании есть ресурсы для привлечения лучших математиков, которые создают модели и алгоритмы для их роботов. Это очень дорого, а применение отлаженных в игровой индустрии подходов к реализации human-like behavior позволит значительно сократить расходы и приведет к появлению десятков новых игроков на рынке робототехники.

2121
11 комментариев

Я человек простой, вижу в заголовке "нейронные сети", ставлю плюс

8
Ответить

Я слепой или про Бориса ни слова?

3
Ответить

Сдается мне, игроку не нужны боты, которые умнее его. Ему нужны боты, против которых он может придумать работающую тактику. Но в целом нейросети перспективны. В конце очень правильные мысли.

2
Ответить

Сдается мне, игроку не нужны боты, которые умнее его."Задача игрового искусственного интеллекта не выиграть у игрока, а правильно ему отдаться".

Ответить

вообще не понимаю о чем речь. что это за игры такие, где нужны боты играющие как люди в мультиплеерных играх, если с людьми все равно играть банально интересней.
"например, устроить засаду в зоне респауна противников и убивать их сразу после появления".
зачем мне в анчартеде бот, который меня будет убивать сразу после реса, зачем мне такой бот в GoW, асасине, в вульфенштайне. объясните, может я чего не понимаю.
Вообще, концепция "бот умный как и ты" подразумевает КД =1.
Понимаете? вы вышли, убили одного бота, вас убил второй. это логично и справедливо.
вопрос -как вы собираетесь делать геймплей, где игрок максимум должен убить 1го бота за игру(миссию)?

1
Ответить

Для для мультиплеера, это неплохое PvE ответвление. Которое, при правильном балансе, может дать положительный экспириенс.
Плюс можно закидывать таких ботов в pvp матчи, опять же, для баланса.
А для сингла, важно не как быстро он будет убивать игрока, а на сколько естественно он будет себя вести. Например, когда я первый раз играл в гта5, был приятно удивлен заходящим в тыл и лазающим на соседние здания копам. Это, в свою очередь, делает мир более живым, усиливает погружение и улучшает тот же экспириенс.

Ответить

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

1
Ответить