Как мы с ИИ делали игру

Никто не любит контент нейронок.

Да и как его любить? Нейронки, ИИ и прочие «электронные болваны» вот-вот нас заменят, отняв работу. Это возмутительно! Хотя...

...если они нас действительно заменят, то может, и пусть? Из каждой микроволновки доносятся вопли, что человек не должен заниматься рутинной монотонной работой, которая убивает в нас всё человеческое. Справедливо? Возможно.

А что если...

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

Решено! Делаем игру!

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

Хорошо, тогда сделаю такую игру, которую я мог бы сделать, как свой первый микро-проект!

А какую игру проще всего сделать технически? - Визуальную Новеллу! (нарисовал мне мой мозг практически мгновенно в тот момент). Нет, серьёзно, что может быть технически проще расстановки спрайтов и фонов вкупе с обычным текстом? Да? Правда же? 🥺

Как по маслу

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

Первые бутылки по голове

Один из листов разработки персонажей и сюжета. Нет, это всё пришлось делать мне, а не ИИ.
Один из листов разработки персонажей и сюжета. Нет, это всё пришлось делать мне, а не ИИ.

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

ChatGPT упорно не мог различить связи между персонажами и отношениями, которые сам же и создал. У него попросту не хватало контекста, чтобы понять, что если персонаж N не любит персонажа F, то из этого следуют определенные выводы и модели поведения. У него все персонажи получались «серыми мышами» с дефолтным уважительным (важно!) поведением. И внешностью, кстати говоря.

У Grok же, персонажи постоянно скатывались к одному и тому же поведению после буквально нескольких сообщений в чате. Они то и делают что спрашивают друг друга «N, что дальше?» или «Как отреагируешь, N?» что превращало любой экшн в двух персонажей, которые бесконечно спрашивали друг друга пустые риторические вопросы и ничего не делали.

Deepseek вообще боится что-то сказать не так и тем более вжиться в роль. Боюсь предположить с чем это связано.

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

Таблица привычек, характеров и особенностей основных персонажей. ИИ? Сидел в стороне. Снова.
Таблица привычек, характеров и особенностей основных персонажей. ИИ? Сидел в стороне. Снова.

Создание персонажей тоже оказалось сложной задачей для ИИ. Мне сложно сказать из-за чего, но в итоге получалась очень интересная картина, когда ИИ наделял разных персонажей одинаковыми чертами характера просто переименовав суть.

- Опять этот ИИ заставляет всех нас смотреть наверх...
- Опять этот ИИ заставляет всех нас смотреть наверх...

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

В итоге - весь сюжет, персонажей, нарратив, ЛОР, символику, стремления, нужду и всё всё всё пришлось писать вручную.

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

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

Причём тут аниме?

Вездесущее лицо у ChatGPT/DALLE, убер-HDR у Грока, расовое разнообразие у Reve и обычный локальный SD1.5 с узнаваемым образом.
Вездесущее лицо у ChatGPT/DALLE, убер-HDR у Грока, расовое разнообразие у Reve и обычный локальный SD1.5 с узнаваемым образом.

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

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

Да рисуй ты уже нормально!

Удержать образ несуществующего персонажа? Да мы с существующими объектами пока справиться не можем!
Удержать образ несуществующего персонажа? Да мы с существующими объектами пока справиться не можем!

Даже крупный промт для описания внешности персонажа с трудом удерживается ИИ "с ходу", а каждая редакция или смена позы или одежды вызывает проблемы, которые приходится обрабатывать вручную. Я приведу пример:

Редактирование персонажа через DALLE
Редактирование персонажа через DALLE

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

Результаты Grok'а по тому же(!) промту. Можно я не буду это коментировать?
Результаты Grok'а по тому же(!) промту. Можно я не буду это коментировать?

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

Однако, даже тут надо прибегать к коррекции.
Однако, даже тут надо прибегать к коррекции.

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

Как мы с ИИ делали игру

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

Носите шлем.
Носите шлем.

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

Ложка мёда

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

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

Код. Всё что касается кода, в 80% случаев решается быстро и беспроблемно. Остальные 20% - глюки, которые превращаются в циклическое исправление.

Редактура и перевод. ИИ неплохо редактирует вручную написанный текст и недурно переводит его на английский. Это действительно экономит время.

И немного неожиданного.

История без сценария
История без сценария

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

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

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

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

Повесточка и этика

Увы, но это - правда.

Насилие недопустимо. Но если в сторону мужского пола - тогда ок.
Насилие недопустимо. Но если в сторону мужского пола - тогда ок.

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

Бедная Лида. Доживёт ли она до чего-то большего?
Бедная Лида. Доживёт ли она до чего-то большего?

Про особо чувствительные сцены даже говорить не хочется. Работать над аналогом DOOM/Postal/Manhunt просто невозможно. А с недавних пор, ИИ обязан донести на пользователя в случае с "проблемными запросами".

В итоге

Изготовление обычной визуальной новеллы у меня заняло девять месяцев. И это демо с 35% сюжета (80к слов, 3-4 часа геймплея). Да-да, той самой игры где «просто картинки на фоне картинок и текст».

Никто не любит контент нейронок.

Но, если хотите увидеть, к чему приводит дружба человека и нейросети демку всё же можно скачать с официального сайта.

16
4
4
1
18 комментариев