Как мы с ИИ делали игру
Никто не любит контент нейронок.
Да и как его любить? Нейронки, ИИ и прочие «электронные болваны» вот-вот нас заменят, отняв работу. Это возмутительно! Хотя...
...если они нас действительно заменят, то может, и пусть? Из каждой микроволновки доносятся вопли, что человек не должен заниматься рутинной монотонной работой, которая убивает в нас всё человеческое. Справедливо? Возможно.
А что если...
...позволить ИИ сделать свою работу полного цикла? От и до. Ну, почти, так как что-то полезно для себя всё же надо почерпнуть. Вот я и решил провести мини-эксперимент, который перерос в 9 месяцев разработки.
Решено! Делаем игру!
Насмотревшись предложек о том, как за 15 минут люди на коленке собирают игры на Unity и Unreal я вопарил в фантазиях о творчестве без преград. Но как только я понял, что такое нормали, вектора, ретопология, ноды и матрицы, меня отпустило.
Хорошо, тогда сделаю такую игру, которую я мог бы сделать, как свой первый микро-проект!
А какую игру проще всего сделать технически? - Визуальную Новеллу! (нарисовал мне мой мозг практически мгновенно в тот момент). Нет, серьёзно, что может быть технически проще расстановки спрайтов и фонов вкупе с обычным текстом? Да? Правда же? 🥺
Как по маслу
Начало разработки действительно шло отлично. Для разработчиков доступен, без шуток, великолепный движок для создания визуальных новелл RenPy с очень простым синтаксисом и массой возможностей. Только пиши текст, да подставляй картинки. Казалось, что кейс идеален для того, чтобы проверить возможности ИИ: сейчас я загружу в него задачу, опишу что мне надо и он и картинки мне сгенерирует и историю увлекательную напишет!
Первые бутылки по голове
Сердце любой визуальной новеллы (VN, для краткости) составляет сюжет. Поэтому я и начал работу с него. И тут же наткнулся на первые проблемы.
ChatGPT упорно не мог различить связи между персонажами и отношениями, которые сам же и создал. У него попросту не хватало контекста, чтобы понять, что если персонаж N не любит персонажа F, то из этого следуют определенные выводы и модели поведения. У него все персонажи получались «серыми мышами» с дефолтным уважительным (важно!) поведением. И внешностью, кстати говоря.
У Grok же, персонажи постоянно скатывались к одному и тому же поведению после буквально нескольких сообщений в чате. Они то и делают что спрашивают друг друга «N, что дальше?» или «Как отреагируешь, N?» что превращало любой экшн в двух персонажей, которые бесконечно спрашивали друг друга пустые риторические вопросы и ничего не делали.
Deepseek вообще боится что-то сказать не так и тем более вжиться в роль. Боюсь предположить с чем это связано.
Не говоря уже про то, что все они галлюцинируют так, что фильмы вроде Твин Пикс и Малхолланд Драйв нервно курят в сторонке. Посреди сюжета без проблем может появиться новый персонаж из ниоткуда и совершить какую-то дичь, которая перепишет весь остальной сюжет.
Создание персонажей тоже оказалось сложной задачей для ИИ. Мне сложно сказать из-за чего, но в итоге получалась очень интересная картина, когда ИИ наделял разных персонажей одинаковыми чертами характера просто переименовав суть.
Так, Аня могла "закатывать глаза во время несогласия с главным героем", а Элина "уводила взгляд вверх, когда герой говорил что-то, что ей не нравится". В итоге, все персонажи начинали становиться похожими друг на друга в диалогах и по своему поведению.
В итоге - весь сюжет, персонажей, нарратив, ЛОР, символику, стремления, нужду и всё всё всё пришлось писать вручную.
Всё это заняло полтора месяца - обучение тому как делается более-менее осмысленный сюжет, персонажи, конфликты, стремления и противостояния.
Ну да ничего, сейчас я всё чётко пропишу, ИИ поймёт что я хочу и начнёт щёлкать контент в рамках моих чётких запросов...
Причём тут аниме?
Не то, чтобы я был фанатом аниме, но в моём случае это просто удобно. Аниме - понятный визуальный язык, который ясен практически всем, легко считывается и органично смотрится в жанре VN...
... но самое главное, что важно было для моего проекта - у аниме гораздо ниже вариативность и его легко править. Все глюки, несостыковки можно исправить в редакторе вручную. Это не всегда работает, но по сравнению с исправлениями реалистичных изображений, это значительно проще. Поэтому и был выбран аниме-стиль, исключительно из прагматичных соображений. Технически, можно было сделать и в фото-реализме.
Да рисуй ты уже нормально!
Даже крупный промт для описания внешности персонажа с трудом удерживается ИИ "с ходу", а каждая редакция или смена позы или одежды вызывает проблемы, которые приходится обрабатывать вручную. Я приведу пример:
Если первая генерация строго по промту работает сносно, то уже вторая сильно видоизменяется - в данном случае у девушки отросли волосы, изменились пропорции. На третьей генерации появился серый фон, приборы освещения, другие рукава и снова другие волосы, а на четвертой генерации она и вовсе решила снять колготки. Жарко, наверное.
Локально же, можно справится лучше, даже на моём дешёвом ноутбуке. Причём, не обязательно даже ударяться в стиль аниме:
В случае с аниме, иногда кажется, что время, потраченное на написание страниц промтов можно было потратить на обучение рисованию на планшете и получилось бы эффективнее.
В реальности же, пришлось каждое изображение генерировать отдельно, с разным промтом, но даже это так или иначе приводит к разбросу по стилю и мелким деталям. Надо ли говорить насколько это затянулось по времени?
Я уже не говорю про типичные нерешённые проблемы вроде нестандартных поз, сильного наклона головы или обожемой стояние на голове.
Ложка мёда
И всё же я не зря прошёл через этот ад. Потому что кое-где ИИ действительно блестяще справился.
Идея о том, что ИИ сможет создать цельный логичный сценарий утонула. Вместе со всеми надеждами на беспроблемную отрисовку спрайтов. Но было бы нечестно умолчать о реальной пользе ИИ.
Код. Всё что касается кода, в 80% случаев решается быстро и беспроблемно. Остальные 20% - глюки, которые превращаются в циклическое исправление.
Редактура и перевод. ИИ неплохо редактирует вручную написанный текст и недурно переводит его на английский. Это действительно экономит время.
И немного неожиданного.
Меня удивило, что при небольшом опыте можно реально разыгрывать историю... без сценария! Достаточно наделить несколько LLM подробным описанием персонажей и позволить истории течь настолько естественно и рандомно, насколько это происходило бы в жизни.
Диалоги получаются действительно живыми и интересными. В такой манере я сделал один из дополнительных ответвлений сюжета и каждый раз, когда перечитываю его, удивляюсь как это могло произойти само собой.
Так же, ИИ очень сильно помогает, чтобы персонажи не окрашивались мировоззрением автора. В одном из необязательных ответвлений сюжета, где главный герой ведёт внутренний диалог у себя в голове, я провёл эксперимент, в котором ИИ писал каждое второе предложение, чтобы получился монолог. Как по мне, этот хаос и галлюцинации ИИ как раз пришлись кстати в таких сценах.
Повесточка и этика
Увы, но это - правда.
Если где-то сюжет будет идти вразрез с ценностями западного гуманистического общества, то тем хуже для сюжета. И неважно какая это тема - равенство полов или культурные предубеждения. Если нарратив игры идёт в разрез с ними - придётся всё делать вручную.
Про особо чувствительные сцены даже говорить не хочется. Работать над аналогом DOOM/Postal/Manhunt просто невозможно. А с недавних пор, ИИ обязан донести на пользователя в случае с "проблемными запросами".
В итоге
Изготовление обычной визуальной новеллы у меня заняло девять месяцев. И это демо с 35% сюжета (80к слов, 3-4 часа геймплея). Да-да, той самой игры где «просто картинки на фоне картинок и текст».
Никто не любит контент нейронок.
Но, если хотите увидеть, к чему приводит дружба человека и нейросети демку всё же можно скачать с официального сайта.