14 июля 2021 14.07.21 48 28K

Нейронные сети в игровой индустрии

+44
Лучший блог недели
1000 ₽

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

                                                                Что такое искусственный интеллект?

Так называемый ИИ (искусственный интеллект) отвечает за модуляцию или имитацию естественного поведения игроков или отдельных объектов. Принцип сводится к имитации поведения объектов, которыми не управляет человек. Иначе говоря, ИИ является искусственной заменой человеческого интеллекта и служит сугубо практической цели, выполняя какую-то из поставленных задач. 

1. ИИ построенный на наборе правил

Такой ИИ является самой простой формой и он далек от традиционного представления об искусственном интеллекте. Поведение игровых объектов происходит за счёт установленных алгоритмов, учитывающими определённые факторы игры. 

Из-за разнообразных действий может отличаться конечный результат, но подобную систему нельзя назвать интеллектуальной. Если игрок разберётся в шаблоне, как в случае с игрой Pacman - то он всегда сможет предсказывать действия.

                                                                                         Одна из вариаций игры Pacman
                                                                                         Одна из вариаций игры Pacman

2. ИИ построенный на конечных автоматах

Это более сложная система, которая подразумевает, что имеется конечное количество состояний и используется в отношении объектов, которые изменяются в зависимости от определённых условий. 

Для представления каждого состояния могут использоваться наборы различных условий, к примеру физических, представленных в виде переменных, и которые можно проверить при помощи условий.  Для перехода из одного состояния в другое должно произойти определённое событие.

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

               Дракон из Dark Souls, который переходит в атакующий режим, когда ты бежишь по мосту
               Дракон из Dark Souls, который переходит в атакующий режим, когда ты бежишь по мосту

3. Адаптивный ИИ

Данная система используется в стратегиях и во многих ААА проектах, имеющих сложную механику игры и разнообразие возможностей. Такой искусственный интеллект применяется в играх, которые необходимо сделать сложными и непредсказуемыми. Если заменить его набором алгоритмов, игрок за какое-то время определит оптимальную стратегию, обеспечивающую победу.

А так, в системе регистрируется выбор, осуществлённый игроком в ходе каких-то событий. Все переменные (они же решения) должны оцениваться, и на их основании строится будущее поведение. Проиллюстрировать ситуацию помогут:

- состояние здоровья

- количество времени

- наличие преимуществ и т. д.

При нанесении урона противнику учитывается:

- показатель защиты

- наличие одежды

- урон от оружия

- дополнительные бонусы.

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

                                                                                                   Стратегия StarCraft 2
                                                                                                   Стратегия StarCraft 2

4. Искусственные нейронные сети

Я считаю, что нейронные сети - это следующий шаг в поведении для видеоигр.

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

                                                                 Нейронные связи в головном мозге
                                                                 Нейронные связи в головном мозге

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

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

Но в любом случае сейчас даже люди, далёкие от программирования, слышали про нейросети, которые используются повсюду. Начиная от подборки музыки в YouTube на основе ваших личных предпочтений, и заканчивая полным анализом ваших данных, чтобы скормить вам какую-то рекламу. Ваш телефон с Face ID, распознание речи или возможность наложить маску в Snapchat.

                                                                                           Наложение маски в Snapchat
                                                                                           Наложение маски в Snapchat

Раньше считалось, что машинное обучение никогда не сможет заменить человека в искусстве. Но нынешние нейронные сети могут рисовать картины, сочинять музыку, реставрировать фильмы и писать статьи.

                                                          Картина написанная ИИ и выставленная на аукционе 
                                                          Картина написанная ИИ и выставленная на аукционе 

Тест Тьюринга

Это эмпирический тест, идея которого была предложена Аланом Тьюрингом, в котором он задался целью определить может-ли машина мыслить.

Стандартная интерпретация этого теста звучит следующим образом: «Человек взаимодействует с одним компьютером и одним человеком. На основании ответов на вопросы он должен определить, с кем он разговаривает: с человеком или компьютерной программой. Задача программы — ввести человека в заблуждение, заставив сделать неверный выбор», при этом все участники не должны видеть друг друга.

Если судья не может сказать определённо, кто из собеседников является человеком, то считается, что машина прошла тест.

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

                                                                                                   AI бот "microsoft xiaoice"
                                                                                                   AI бот "microsoft xiaoice"

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

                                                                            Как создаётся Deep Fake с Томом Крузом
                                                                            Как создаётся Deep Fake с Томом Крузом

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

Давайте посмотрим сначала на применение нейронок при разработке игры.

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

                          Игра Red Dead Redemption 2, которую разрабатывали 7 лет, и на пике 3000 сотрудников
                          Игра Red Dead Redemption 2, которую разрабатывали 7 лет, и на пике 3000 сотрудников

Требования к играм растут с каждым годом: в сюжетном плане, в размерах мира, в графическом, в постановках и вообще во всех аспектах. Сейчас игру могут легко "захейтить" за недостаточно качественную текстуру, за отсутствие какой-то из современных фич, или банально за "лок" в 30 фпс. Игр очень много, публика избалована, много токсичных геймеров, и просто хорошая игра может остаться далеко в тени.

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

1) Оптимизация игр

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

К примеру вы хотите фпс в 60. Ставите это число, а нейросети сами оптимизируют некоторые составляющие дабы достичь этой цифры. Что-то похожее было реализовано в Cyberpunk 2077, только без конкретной цифры, скорее всего там была установлена "дефолтная".

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

И можно будет запускать даже топовые игры на слабом железе, конечно с сильным урезанием графики. При этом там где сцены не такие тяжёлыеграфика будет автоматически апаться, а в сценах потяжелее - упрощаться, чтобы не ловить фризы.

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

                                     Пример работы алгоритма Intel под названием Enhancing Photorealism Enhancement
                                     Пример работы алгоритма Intel под названием Enhancing Photorealism Enhancement

2) Генерация квестов

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

                                                     Игра World of Warcraft - процесс взятия квеста и его содержание
                                                     Игра World of Warcraft - процесс взятия квеста и его содержание

3) Генерация целых уровней

При помощи нейросетей можно научить создавать шаблоны миров, выставлять растительность, генерировать ландшафт и здания. К примеру нечто подобное использовали в Microsoft Flight Simulator, что позволило буквально перенести весь основной ландшафт земли вместе с городами, зданиями, включая ваш дом, в игру. Так как создать такой мир вручную было бы практически нереально, ну или же очень долго и затратно.

                                                                                                Игра Microsoft Flight Simulator
                                                                                                Игра Microsoft Flight Simulator

Чтобы не лезть в открытые миры и сюжетные игры, возьмём вариацию попроще. Взять игру для виртуальной реальности под названием Beat Saber. Для расстановки кубов под ритм, нужно весьма много сил. Поэтому количество официальных песен от разработчиков ограничено.

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

                                                                                   Игра для ВР под названием Beat Saber
                                                                                   Игра для ВР под названием Beat Saber

Также возможна генерация полноценных 3д моделей, генерация лиц, логотипов, генерация оружия и самых различных объектов. А всё это возможно уже даже сейчас. Дизайнерам не нужно будет сидеть и рисовать кучу моделей. Нужны лишь заданные шаблоны. К примеру взять тот же киберпанк, где рекламой в городе занимались отдельные дизайнеры. По факту эту работу могли сделать нейросети.

А некоммерческая компания OpenAI сделала расширение для алгоритма gpt3, и выпустила сервис, под названием DALL-E, который умеет создавать предметы по текстовому описанию. Нейросеть анализирует англоязычные текстовые подсказки и затем отвечает не словами, а изображениями. При их создании, нейросеть учитывает 12 млрд параметров, включая цвет, высоту, расположение и названия предметов. Как результат,  DALL ·E способна создавать реалистичные фото, несуществующие объекты, достраивать любую прямоугольную область существующего изображения.

                                        Запрос "Улитка из арфы" созданная при помощи DALL ·E
                                        Запрос "Улитка из арфы" созданная при помощи DALL ·E

Кроме этого, DALL·E способна понимать сложные абстрактные комбинации и отображать произвольный текст на уличных знаках. Чтобы проверить способность DALL · E к визуальному мышлению, авторы провели IQ тест Рейвена. Нейросети требовалось определить закономерности и правильно заполнить матрицу недостающими элементами. С этим заданием DALL · E справилась на отлично.

Существуют нейросети, которые умеют дорисовывать детали, к примеру вы нарисовали условное синее небо - и нейросеть поняла, что вы хотите нарисовать небо и добавила деталей, что круто было бы использовать для 2Д платформеров.

                                                              Нейронка переводит абстракцию в полноценный пейзаж
                                                              Нейронка переводит абстракцию в полноценный пейзаж

А другие нейросети могут переносить модели в 2д или 3д плоскость. Вы просто фотографируете, или наводите на предмет - а в это время создаётся в программе его точная модель. Опять-таки представьте сколько это сэкономит времени 3д дизайнерам.

Есть нейронная сеть, которая позволяет генерировать 3D модели, передвигать их, менять цвет и создавать мир, как удобно разработчику, используя шлем виртуальной реальности и голосовые команды. Тем самым ты создаёшь игру для ВР и сразу смотришь на её реализацию.

4) Персонализация ощущений в виртуальной реальности

Для ВР разработчиков также можно использовать нейронные сети для интеллектуальной обработки статистической информации, чтобы персонализировать восприятие в виртуальной реальности, так как сенсорные системы людей отличаются и этот процесс можно было бы неплохо индивидуализировать.

5) Поиск багов, отлавливание читеров и проверка чатов на предмет оскорблений в онлайн играх

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

Теперь рассмотрим возможное использование нейронок в самих играх:

1) Искусственный интеллект (ИИ) для NPC

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

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

На данный момент все боты создаются при помощи скриптов. При том заранее игра знает когда вы целитесь в того или иного врага, и он не вылазит в это время. Это весьма топорные методы. Чтобы понять насколько это важно - возьмём игру F.E.A.R., где добавили обычное общение между болванчиками. Один враг мог сказать своим боевым товарищам, что кидает гранату, а после кинуть. Эта и несколько других нехитрых манипуляций делали их более живыми.

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

F.E.A.R. даже в 2021 году можно приводить, как пример отличного ИИ, хотя игре уже более 15 лет. 

                                                                                                            Игра F.E.A.R.
                                                                                                            Игра F.E.A.R.

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

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

Помните систему немезида (Nemesis) в Middle-Earth, где враги вас запоминали, добавляли себе какие-то сильные стороны если переживали стычку с вами и обязательно что-то говорили о предыдущей встрече, что дико раздражало. В данном случае это всё равно скрипт, а нейросеть может сделать эту систему более гибкой, и распространяться на саму основу поведения босса, а не лишь на его характеристики.

                                                                     Игра Middle-Earth: Shadow of Mordor с системой Немезида
                                                                     Игра Middle-Earth: Shadow of Mordor с системой Немезида

Конечно тут есть проблемы: 

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

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

Также нейросети можно было бы использовать просто для обучения каким-то геймплейным фичам. К примеру обучить ботов в Need For Speed на разные маневры. Скорее всего тут это будет не оправдано, и это можно сделать скриптами. Хотя опять-таки, когда использовали систему немезида в гонках – то это добавляло реализма, поэтому и нейронные сети можно использовать для этого.

                                                                                                        Игра Project Cars 2
                                                                                                        Игра Project Cars 2

2) Вариативность перепрохождения и гибкие шаблоны сложности

Например собирая информацию о времени реагирования игрока, о его выборах в диалогах, его умении играть. В зависимости от всего этого можно было бы сразу менять поведение врагов и окружения для максимально интересного игрового процесса. 

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

3) Реставрация игр

Сейчас наверное самое популярное использование. Принцип прост. Берётся какая-то старая игра, прогоняется через нейросеть, и на выходе мы получаем улучшенные модели, более качественные текстуры, и в целом повышение "графона". Конечно не стоит ожидать от первого дума графики уровня кризис. Но все же это весьма приятное улучшение, особенно для фанатов олдскульных игр.

                                                   Улучшение текстур оригинального DOOM при помощи нейросетей
                                                   Улучшение текстур оригинального DOOM при помощи нейросетей

4) Обучение киберспортсменов

Сейчас нейросети обыгрывают людей в шахматы, в го, в доту, и даже в декабре 2018 года свёрточная нейросеть под названием AlphaStar размазала профессиональных игроков в StarCraft, одержав множество побед в разных сериях игр.

А ведь Starcraft II — чрезвычайно сложная игра. К тому же в отличии от обычных ботов в игре у сети нет информации о действиях других игроков. В StarCraft также нет оптимальной стратегии и требуется время, чтобы стали понятны результаты действий игрока, что затрудняет обучение.

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

                                                 AlphaStar VS профессиональный игрок MaNa из команды Liquid в StarCraft 2
                                                 AlphaStar VS профессиональный игрок MaNa из команды Liquid в StarCraft 2

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

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

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

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

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

                                                                                              Кадр из фильма "Я Робот"
                                                                                              Кадр из фильма "Я Робот"

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

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

Также проблемой является и выделение ресурсов, при том как на изучение и разработку самих технологий (то есть денежных и человеческих), так и аппаратных. Так как пользователю нужно будет постоянное подключение к интернету, а также часть обработки отдавать на процессор или видеокарту, что может сильно повысить системные требования некоторых игр.

Пока что нейросети используются в более скромных проблемах. Например, в World Of Tanks, они генерируют случайные никнеймы для игроков, чтобы скрывать статистику и реальный никнейм. Нужно это для того, чтобы не "фокусили" статистов, ну или если с вами в команде плохой игрок, то, чтобы другие члены команды не начинали сливаться раньше времени из-за этого, ну или просто, чтобы не получать в свой адрес оскорбления.

                                                                                                      Игра World of Tanks
                                                                                                      Игра World of Tanks

Вряд-ли в ближайшее время нейронные сети шагнут слишком сильно в гейм деве (разработке игр). Однако перспективы в будущем открываются большие. Если помечтать, то можно реализовать адаптивно меняющуюся анимацию персонажей, предсказывать дальнейшие события и "кастомно" разветвлять сюжетные повороты в зависимости от решений игрока.

Ведь помните мы говорили о ботах, которые обманывали людей во время общения. Эти боты даже специально допускали ошибки. А теперь представьте, если вместо заранее прописанных фраз, вы будете в игре общаться с таким ботом. Насколько это изменит подход к играм. Насколько будет интересно перепроходить. Насколько будет интересно общаться со своим напарником, который будет в прямом смысле, как второй игрок. А представьте насколько интересно было бы выстраивать отношения в условном Mass Effect. Хотя обидно будет, наверное, когда в игре нейронная сеть тебя бортанёт.

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

                                                                                              Игра Detroit: Become Human
                                                                                              Игра Detroit: Become Human

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

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

P/S Если кому-то понравилась моя статья, то можете ознакомиться с ней в видеоформате.

 

 

* Деятельность родительской организации «Meta» признана экстремистской и запрещена на территории Российской Федерации


Лучшие комментарии

ЕА Geme давно у руля сидит нейронка которая, имеет основную модель «БАБКИ С#К@, БАБКИ»

хахахахахаха, вы прекрасны ребята. С учётом моей темы — это вдвойне круто. Настолько интересно было обсудить, что даже не задумался о такой ситуации, а сейчас сижу и смеюсь :D 

Спасибо большое, хорошо, обязательно буду писать ещё.

Истину глаголишь :D 
Скоро ещё и рекламу введут в свои игры :D

Действительно, им трудно понять как ТЫ работаешь, до сих пор! :D

Ну в глубину они масштабируются неплохо, хотя и приходят иногда в тупик. Но тут многое зависит всё-таки от алгоритмов, и способов обучения. То где одни упрутся в стенку, другие расширят при помощи каких-то алгоритмов.  Есть нейронки, которые в своих задачах добиваются точности в 99% и это очень круто. Я сам писал нейронки, которые работали с точностью 92-95% и показывали просто афигенный результат в бизнесе. А вот по ширине они проседают конечно сильно. 

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

Да, они не понимают, но при высоком показателе точности (например 99%) в тех задачах, которые допускают небольшие погрешности — это вполне себе круто. К примеру если это оптимизация фпс, и где-то будет небольшая погрешность, и просядет фпс, то я думаю ничего страшного, особенно если в основном НН будет работать стабильно. 

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

Спасибо за интересные комменты, интересно обсуждать

Спасибо :D
Это как посвящение во что-то, или крещение испытанием. Так тут в свою очередь проходишь через Каспарова :D

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

Согласен! А освежить уже было бы неплохо.

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

Классная идея. Это прям как в какой-то серии «Рика и Морти», где была игра в виртуальной реальности, где ты проживаешь жизнь другого человека.

Сразу и «не смотря», и «более лучшие».

Спасибо за критику, я учту. 

А в остальном текст очень понравился. В меру познавательный и не скатывается в монотонные исследования.

И ещё раз большое спасибо, мне приятно, что вам понравилось! :) 

Не знаю. Я не понимаю почему людям заходят очередные части колды или фифы. Конечно у каждого свой вкус, но иногда поддерживая такие игры — геймеры гробят потенциальное развитие игровой индустрии. 

После того, как я целый вечер переписывался с нейронкой — это слишком актуальный мем :D

Ага, я заметил, и даже поддерживает разговор интереснее, чем большинство реальных людей. К примеру, когда рассказываешь какую-то большую и интересную историю, а они в ответ «ясно», «понятно» :D ррр, аж бесит

Да даже если и потянется — то всё равно нужно будет как-то синхронизировать, а это опять же куча ресурсов и денег.

Верно! В любом случае начинает упираться в ресурсы и затраты. 

Да и при большом количестве нейронов производительность падает.

Есть множество алгоритмов, которые не сильно просадят производительность, даже при сложных задачах. К примеру, когда создаются генеративно-состязательные сети. К примеру алгоритм построенный на них, взламывал капчи за секунду, при том, что на вход вместо миллионов капч, которые обрабатывались длительное время, заносили лишь 500 штук. 

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

Если с первой проблемой можно работать, то со второй у разработчиков могут возникнуть проблемы.

И снова вы правы. Поэтому от части данная статья это не мануал по тому, как это сделать. А размышления где было бы интересно попробовать реализовать. 

И с теми же нпс можно попробовать работать сначала в простых задачах. 

Во 1) Не брать сразу опен ворлд проекты, где куча всего и без НН, а саму игру и без того не просто стабилизировать.

Во 2) Я не зря привёл в пример F.E.A.R. и что такая мелочь как общение между врагами добавляло реализм. Писать отдельный скрипт на реагирования таких мелочей под каждого нпс не будут. А вот сделать систему, которая будет немного гибче, и которую обучили на разных ситуациях уже можно. 

Например, генерировать какую-то фразу в зависимости от поведения. Тут даже не обязательно, чтобы эта фраза влияла на сюжет, в таком случае действительно сложнее определить влияние. Можно просто, для начала, её сказать, и это уже будет создавать нужный эффект. 

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

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

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

Абсолютно согласен! Ну для этого корпорации должны быть заинтересованы в развитии игровой индустрии. Так как маленьким фирмам реализовать подобное сложно из-за нехватки ресурсов. А большие типо ЕА делают копи пастную фифу. Затрат минимум, а прибыли максимум, ибо люди покупают каждый год, и поэтому им не нужно выделять ресурсы на создание подобных вещей. Там в принципе им на игры пофиг...  

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

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

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

Читай также