Сейчас из каждого утюга говорят про нейронные сети, как они захватят мир и оставят художников/программистов/сценаристов/любых людей с работой без этой самой работы. Но хочу вас обрадовать, мне, как представителю, одной из этих профессий, совсем нестрашен этот злобный машинный мозг. Хотя бы потому, что мозга там и нет совсем.
Поэтому хочу рассказать тебе про то, что такое эти нейронные сети, про самые известные из них, да ещё и пофантазировать на тему их использования в играх. Так что присаживайся и послушай.
Видео версия:
Начну я, конечно, с того, что же это такое. И самое забавное, что сам алгоритм был придуман ещё в 50-ых годах прошлого века. А в основе своей это простейшая математика. Ну может не простейшая, но точно без всякой магии. Математики просто нашли где-то книжку по биологии и увидели строения нейронной сети в мозгу живого существа, и один из них сказал: “Блин, да этож идеальная математическая модель!” И как начал усердно её формализировать, да и выформализовал. Но особо нигде она не пригодилась. Считать нужно много и сложно, а результат по сравнению с затратами так себе. Ну на всякий случай они ещё пару вариантов набросали, но всё это пригодится потом, с ростом вычислительных мощностей.
И сейчас я постараюсь объяснить на коровках, как работает этот алгоритм. Когда-то я сам реализовывал это дело в университете, а там ведь как. Тебе дают талмуд написанный 70 лет назад и говорят, пиши из этого код. А ты не то, что код писать, даже прочитать этот не можешь. Страшные слова какие-то, вот вы знаете, что такое перцептрон? Звучит как название трансформера. Поэтому попробую сделать максимальное упрощение и объяснить, как работают нейронные сети. Конечно, это не поможет вам написать нейронную сеть самостоятельно, но даст понимание принципа работы.
Так вот, в нашей нейронной сети целая куча маленьких нейрончиков, это базовая единица, которая может принимать какое-то количество сигналов от других нейронов, как-то их обрабатывать и отправлять дальше по нейронной сети другим нейронам, обычно одному. И вот пример, который описывает это дело. Я хочу собраться с друзьями, я нейрон. У меня есть три друга нейрона, которые передают мне свой ответ готовы ли они пойти на тусичь. И я как нейрон на основе их ответов я решаю пойти или нет. Значение нейрон получает через сумма своих входов с учётом весов на них. А вес — это так насколько важен вклад каждого нейрона. Например, у меня есть два друга, с которыми я реально хочу встретиться, но они оба заняты. А третий, недавний знакомый, и он согласен пойти тусить. Вот это вес этих самый нейронов.
Получается, что если хороший друг и знакомый согласятся, то я пойду, но, если согласится только мимокрокодил, никуда я с ним не пойду, а вдруг он вообще маньяк.
Мой ответ будет итогом вычислений сети, но также я могу передать свой ответ другому другу, которого тоже звал, и он станет следующим нейроном в сети. И вот это можно масштабировать в тысячи или миллионы раз, тогда и получится нейронная сеть.
Конечно, есть много видов нейронных сетей, но базово этого понимая достаточно. Алгоритм в целом несложный, но есть особенность. По сути, хорошая нейронная сеть, это хорошо настроенные веса для нейронов. Потому что если веса слишком маленькие, то я не пойду тусить даже с Филом Спенсером, а если слишком высокие, то я соглашусь на встречу с бомжом Петей. Но не будем же мы вручную выставлять веса для каждого нейрона, на это не хватит и целой жизни. Поэтому большинство дата саентистов обычно занимаются обучением нейронной сети или создание алгоритмов для обучения, а сами нейронные сети несильно изменились с прошлого века.
И давай перейдём к самому интересному, о примерах использования этих самых нейросетей, хочу рассмотреть самый популярные на данные момент нейронки и то, как их можно было бы интересно использовать в играх.
На самом деле, их давно используют в играх. Например, Ubisoft или Naughty Dog много говорили о том, что почему анимации в играх выглядят так хорошо. Они записывают 50-100 анимацией, а потом с помощью нейросетей добавляют различные детали и чуть ли не каждая анимация получается уникальной и это увеличивает реалистичность поведения главных героев в их играх, несмотря на непредсказуемые действия игроков.
Midjorney. Об этой нейронной сети слышало, наверное, наибольшее количество человек. Все мы видели эти картинки “Как выглядел бы Властелин колец в стиле Хаяо Миядзаки” или “Супергерои в средневековье” и всё в таком духе. Но знаете, если поиграться с ней достаточно долго, всегда видно, что картинка сгенерирована искусственно. Слишком много деталей на изображении, некоторые края деталей нечётки и очень большие проблема с пальцами и зубами и в таком виде, конечно, не получится это использовать для генерирования готового продукта, но это ведь прекрасный инструмент для поиска вдохновения и определения цветовой гаммы и настроения продукта. Я к тому, что многие концепт арты это просто наброски, и результаты работа Midjorney это тоже просто наброски, но их можно использовать для дальнейшей генерации моделей, настоящих артов и т.д. Но представьте какая это экономия сил, прямо на этапе обсуждения идей для игры их можно забить туда и посмотреть, как это могло бы выглядеть и понять стоит ли оно вообще дальнейшего обсуждения.
У этой нейронной сети есть и ещё больший потенциал, если она сможет работать с 3Д моделями. Правда возникла бы та же проблема, что с Midjorney сейчас. Недовольство художников, что их работу забирают страшные ИИ, и просто переполнение всех площадок для художников нейрорисунками. Самое неприятное, что большая их часть выглядит плохо или очень плохо, но из-за их количества действительно стало сложно пробиться обычным, ручным художникам. То есть работу забирает не ИИ, а говногенераторы в виде людей, забивающих площади недоделками. Как всегда, главное зло это люди. Midjorney может попробовать любой желающий бесплатно, вам нужен только аккаунт в Discord. Но бойтесь тысячи сообщений от людей, которые хотят свою фотку обработанную нейросетью. Таких запросов там около 80%. Конечно, это самая популярная, но сетей, которые генерируют, рисунки по описанию целая куча. Есть разработка от Nvidia, которая на основе наброска в Paint рисует детальный пейзаж или ThisPersonDoesNotExist генерирующая лица людей, которых никогда не существовало.
Дальше расскажу о разработке от Open AI. Это нашумевшая когда-то OpenAI Five, нейронная сеть, которую научили играть в Доту 2 на киберспортивном уровне. Вроде бы что такого, ИИ для ботов написаны давно. Но тут есть важное отличие - OpenAI Five играет как человек, у неё нет внутренней информации, то есть если врага не видно на экране, то его она не знает, где он. Только то, что предоставляет интерфейс самой игры. Или другой вариант ИИ, который умеет играть это AlphaGo, которые сделали ИИ для игры Го, не контр страйк, которые побеждает лучших человеческих игроков. Буквально 10 лет назад это считалось невозможным из-за огромного количества вариантов ходов. В шахматах после первых двух ходов соперников существует меньше ста тысяч ходов, для Го это уже 16 миллиардов.
И подобные нейронные сети можно использовать по прямому назначению, создание ИИ в играх. Посмотрите на современные шутеры? Мы видим только тупых болванчиков. В FEAR 2005 года ИИ действовали осмысленнее, чем большинстве современных игр, хотя там не было никаких нейронных сетей. Сейчас же можно сэкономить время разработчиков и правильно обучить нейронку и пусть играет. Не нужно будет прописывать, что если игрок пошёл влево, то бот должен пойти вправо. Или если стреляют, то надо в укрытие. Боты будут играть как реальные люди, используя своё понимание ситуации и исходить из этого. Я бы очень хотел поиграть в подобный проект, но ни о чём похожем не слышал.
Третий тип, который я хотел обсудить, особенно популярный сейчас - ChatGPT. Думаю, уже многие слышали о том, что он может написать дипломную работу на уровне среднего студента или пройти тест Тьюринга, то есть обмануть человека и правдоподобно притвориться человеком. Это, на самом деле, впечатляет. Он может гуглить за вас, да ещё и находить только самое важное. Наверно, он даже может заменить 50% сотрудников техподдержки, особенно если его научить говорить, как например другая нейронная сеть, которая научилась генерировать голоса известных актёров озвучки, что тоже внушает некоторый страх. Но это же предоставляет огромный простор для использования. Можно создавать тысячи НПС, каждый из которых будет непохож на другого. Можно избавиться от написания мелких взаимодействий между персонажами. Можно даже заставить его написать за вас сценарий и взять то, что кажется хорошим. Повторить так раз 10 и вот уже сценарий, готовый для продажи в Голивуд.
Данную сеть уже начали испытывать моддеры. Не так давно для Mount & Blade II: Bannerlord добавили мод, который позволяет общаться с NPC на любые темы, и он будет осмысленно отвечать, причём учитывая средневековый сеттинг. А ещё появилось целая куча НРИ, где мастером выступает ИИ. Я пробовал AI Dungeon, который есть даже на смартфонах, и это действительно забавно, но до настоящего Мастер её очень и очень далеко.
И вот последнюю фразой хочется закончить этот ролик/статью. У нейронных сетей огромный потенциал уменьшить стоимость и улучшить качество производства игр, но главное помнить, что это никакая не замена людей. Никто не заменит художника, у которого есть своё видение проекта, воплощённое в концепт артах, никто не заменит талантливого сценариста, умеющего написать запоминающихся и глубоких персонажей, и никто не заменит программиста, который будет всё это собирать вместе. ИИ в текущем виде это просто ещё одно устройство, которое может помочь сделать увлекательную игру, но не средство замены людей. Поэтому не переживайте, ИИ не сможет у вас отобрать работу, а только сделать её проще и интереснее.
Прощай путник и заходи ещё