Какие нейронки НАМ на самом деле нужны в Gamedev

Какие нейронки НАМ на самом деле нужны в Gamedev

В последнее время расплодилось много хайпа на теме нейросеток и как они могут помочь в геймдеве.
Особый ажиотаж выдают нейросетки которые дербанят картинки со всего света и потом сшивают их воедино и пытаются всем показать что время художников ушло: Артбридер, wombo. art disco diffusion, Midjourney, Nvidia gaugan… да тысячи их.

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

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

Что такое Нейросети?

Прежде чем перейти к сути совсем кратко расcкажу что такое нейросеть. Максимально просто и на пальцах:
(Если вы все знаете — пропускайте это)

Какие нейронки НАМ на самом деле нужны в Gamedev

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

Выходящие узлы выдают — нам результат в нужном нам формате.

Все самое интересное происходит на промежуточных узлах где поступающая информация обрабатывается по определенным алгоритмам… каким алгоритмам? А вот они как раз задаются в ходе обучения нейронки.

Что такое обучение нейросетки? Опишу максимально кратко: это когда наш черный ящик с узлами внутри задают псевдорандомные значения показателей у алгоритмов(уже по своим алгоритмам) — трясут и тасуют эти значения в ящике пока нейронка не начнет выдавать в ответ на сигнал идущий на входящие нейроны результат похожий на тот который мы хотим получить c ± нужной точностью.

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

если бы нейронки работали так как задумали их создатели

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

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

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

В качестве примера что из из себя представляет собой нейронка типа disco diffusion или Midjourney? Это инструмент которому скормили коллекцию работ уже существующих художников: в ходе обучения нейронка раздербанила их на на кусочки которые осели на узлах, а при подачи текстового/визуального запроса — узлы сшивают из сотен тысяч исходных шаблонов и кусочков итоговую картинку. Узнаваемых кусочков. Которые нейронка позаимствовала из уже существующих картинок.

Как правильно использовать?

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

Используйте инструмент правильно!
Используйте инструмент правильно!

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

Итак применим свои знания gamedev’a что бы понять где можно использовать нейронки максимально эффективно — максимально оптимизировать самую скучную, сложную в нашей индустрии работу которая требует от человеков усидчивости, но никакой креативности. Где можно максимально удобно и эффективно срезать углы за счет нейросеток? Что же держите мое мнение, как художника немного понимающего весь процесс разработки контента для игр.
Давайте пройдемся по всему списку задач в геймдеве которые весьма муторны для человека но не содержат в себе «творчества» и

2D

Мы самые обиженные нейронками работники геймдева.

Какие нейронки НАМ на самом деле нужны в Gamedev

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

3D

Самый недооцененный для нейронок сегмент. Но есть два момента вселяют в работников вселенскую грусть — но которую нужно выполнять.
UV

В работе 3дшника самый скучный элемент работы — это UV развертка. И хоть существуют автоматические генераторы UV — не существует способа эффективно избежать раскладывания островов c полигонами с помошью одной кнопки.
Данная работа может занимать от нескольких часов до нескольких дней подготовки модели к последующему текстурированию.

Как обучать такую нейронку?
На вход — 3д модель со случайно авторазверткой.
На выход — 3д модель с правильной разверткой UV. Для обучения можно вытащить кучу моделек из уже существующих игр.
Ретопотология

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

Как обучать такую нейронку?
На вход — 3д модель хайполи/мидполи- на выход LOD0.
На вход — 3д модель LOD0. На выход — LOD1.
На вход — 3д модель LOD1. На выход — LOD2.
Как и в случае с UV — материал брать из игр.

Анимация

Скининг

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

Послесловие

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

Какие нейронки НАМ на самом деле нужны в Gamedev

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

Поделитесь и вы самой скучной работой в геймдеве — которая простая и не самая приятная. Но которую нужно делать, и делать аккуратною. И своими предложениями как нейронки могут помочь ее оптимизироавать.
И поделитесь своими необычными инструментами по оптимизации скучной работы.
Ps: Make Gamedev Great Again!

5454
29 комментариев

Казалось бы. Используйте инструменты по назначению и будет вам счастье. Именно в геймдеве применение нейросетей, наиболее эффективным, для меня выглядит... Ну например для создания поведенческих моделей персонажей. Как они будут реагировать на то или иное действие игрока или другого персонажа. Распределяя разным образом веса, можно будет добиться разнообразия "характеров". Если с точки зрения "Арта" - то почему бы не отдать на откуп нейросетке генерацию текстур для ландшафта например. Может быть даже создание каких-нибудь камней, горных массивов в далёкие или деревьев. Для генерации помещений в которые игрок ни когда не попадёт ( типо комнат в окнах в последнем человеке пауке). А сами художники тоже могут использовать их для супер быстрого прототипирования. Типо тебе дали ТЗ, ты вычленил из него ключевые слова, скормил нейросетке - она тебе десяток изображений в разных стилях, через 5 минут. Обсуждаете с заказчиком какой стиль больше подходит - потом сам уже рисуешь то что надо. И с более глубоким пониманием хотлеок заказчика. В общем вариантов использования - уйма, даже у существующий сеток, которые даже обучать уже не надо. Просто если нет задач под них, то и нехер их тянуть в проект.

10
Ответить

Ну например для создания поведенческих моделей персонажей

Это не тривиальная штука - нам нужно где то взять исходные данные что бы сделать нейронку чтобы вела себя так как нам нужно.
То есть нужны реплеи - и большое количество записии нформации как должны себя НПС. сделать тестовые сцены где заставить тестеров отыгрывать НПС - а в это время записывать их модельное поведение.
Сколько нам понадобиться образцов для обучения нейросетки?
Очевидно что достаточно много.

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

Собственно Альфа Стар из Ск2 как раз образец такой нейронки
ей скормили миллионы человеко-часов реплеев. Но... стоило выйти баланс патчу как все ломалось.

А вот в РПГ? На это только Лорд Бритиш (Ричард Гэрриот) может решиться . Он в свое время заставил сотрудников отыгрывать роль НПС в демке ультимы, да и потом заходил в игру от имени своего аватара.

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

Зачем? Обычно заказчик приходит с уже готовым стилем.
А для подгона под нужный стиль - уже есть тот же Артбридер , многие знакомые концептеры читерят через него нарисовали скетч указали донором качественную работу с тенями и детальками, и подвинули ползунок на 30%. И вуаля у тебя скетч как у признанного крутана из ЕА, Убейсофт или Близзард, даже если ты сам нужную стилистику не вытягиваешь.

Для генерации помещений в которые игрок ни когда не попадёт Если не попадет - то это не интересно. Достаточно заготовок которые будут чередоваться.
Наоборот - если есть возможность попасть - то можно взять уже готовые образцы использования левел дизайна и обучить нейронку, но в таких делах результат нужно ПРОВЕРЯТЬ ручками.

Ответить

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

4
Ответить

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


Если про использование конкретной музыки - то вот эта вот неплоха для чего то простого

https://www.youtube.com/watch?v=hTCBkuZi3pA&t=1563s

2
Ответить

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

3
Ответить

Хорошая шутка.

3
Ответить

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

3
Ответить