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

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

#long

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Alexander Lashkov", "author_type": "self", "tags": ["long"], "comments": 11, "likes": 28, "favorites": 24, "is_advertisement": false, "subsite_label": "gameindustry", "id": 35257, "is_wide": false, "is_ugc": true, "date": "Thu, 27 Dec 2018 15:57:26 +0300" }
{ "id": 35257, "author_id": 108313, "diff_limit": 1000, "urls": {"diff":"\/comments\/35257\/get","add":"\/comments\/35257\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/35257"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 87855, "last_count_and_date": null }

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

Популярные

По порядку

Написать комментарий...
8

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

Ответить
3

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

Ответить
2

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

Ответить
0

Сдается мне, игроку не нужны боты, которые умнее его.

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

Ответить
1

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

Ответить
0

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

Ответить
1

боты в пвп матчах - не то будущее, которого я ждал)
меня вот что напрягает, специалист по нейросетям, ты сейчас с примером гта и многие другие, мнения которых я читал о искусственном интеллекте - описываете улучшение АИ только в рамках боевых задач.
лучше использовать укрытия, заходить с фланга, устраивать засады -все это конечно желательно видеть в играх(хотя все это уже видели и без нейросетей, в той же ГТА, fear и других играх. Поэтому новое поведение электронныъ мальчиков для битья вряд ли станет революцией для игр.
Но мне казалось, что нейросети могут дать гораздо больше, чем боевой примитив.
Просто представьте. Мир дикого запада на движке RDR 2. И в этом мире все боты живут и действительно осознают себя живыми людьми того времени. У них есть планы, мечты, желания, они могут отреагировать на ваши действия как бы отреагировал реальный человек и дело вообще не в боевке. Дело во всем остальном.
И для всего этого не нужно будет в ручную писать миллион строк диалогов, создавать сотни тысяч анимаций. Нужно будет просто обучить этот ИИ жить в том мире реалистично.
Вот это именно то развитие нейросетей, которое станет настоящей революцией не только в игровой индустрии, но и в нашей жизни.
И не обазательно воспринимать мои слова как утопические. Понятно, что первые блины будут комом, что до реального "мира дикого запада" и прочих виртуальных реальностей еще далеко.
Но нейросети сделают первый серьезный шаг в этом направлении и именно в этом плане надо хайповать имхо, а всякие засады и знание ботом карты -это такое.

Ответить
1

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

На самом деле кроме ботов у сеток огромный потенициал в монетизации и предсказаниях поведения пользователей.

Ответить
–1

Победить игрока ДОТЫ может только другой игрок ДОТЫ, так как быть таким же тупорылым дегенератом ниодин бот не сможет никогда.

Ответить
0

Как-то пустовато и поверхностно

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Пять простых способов разогнать свой ПК
с помощью соли и чайной ложки
Подписаться на push-уведомления