50 минут на игру. Мой пайплайн разработки без художника и программиста

Привет. Я делаю визуальные новеллы для RuStore. Жанры — хоррор, эротика, мистика, детектив. Обычно инди-разработчик тратит на одну игру от 3 месяцев до года. У меня — 50 минут. Нет, я не кликбейтю. И нет, я не продаю курсы. Я просто выстроил конвейер, в котором нейросети делают 90% работы, а я только направляю. В этой статье я честно покажу весь процесс — от идеи до публикации в магазине.

Оглавление 1. Почему Ren'Py 2. Проблема: бутылочные горлышки 3. Архитектура: что меняется, что заморожено 4. Файловая структура проекта 5. Как работает генерация кода 6. Генерация картинок (спрайты и фоны) 7. Полный тайминг одной игры 8. Сборка APK и публикация 9. Цифры и доход 10. Что можно улучшить 11. Выводы и советы

1. Почему Ren'Py Ren'Py — это движок для визуальных новелл. Он простой, быстрый и работает на Android «из коробки». Почему именно он: · Язык сценария похож на Python — нейросети его отлично понимают · Готовые шаблоны GUI и screens · Лёгкая сборка APK без танцев с бубном · Поддержка рекламы через Java-мосты Если вы никогда не писали на Ren'Py — не страшно. Всё, что нужно, я покажу на примерах. --- 2. Проблема: бутылочные горлышки Когда я только начинал, процесс выглядел так: Этап Время Больно? Придумать сюжет пара часов нет Написать сценарий 2-3 дня ДА Нарисовать/заказать спрайты и фоны 2-4 недели ОЧЕНЬ ДА Собрать APK, протестировать час нет Залить в магазин 15 минут нет Две главные боли — это написание кода и графика. Решение: нейросеть пишет код, нейросеть рисует картинки. Я только собираю и публикую. Спойлер: работает.

3. Архитектура: что меняется, что заморожено Я проанализировал, что нейросеть ломает чаще всего, и вынес всё изменяемое в один файл. Замороженные файлы (не трогать никогда): ``` config.rpy — технические настройки Ren'Py options.rpy — системные настройки screens.rpy — экраны (меню, диалоги, выборы) gui.rpy — стили и интерфейс dynamic_chars.rpy — создание персонажей из данных images.rpy — динамическая загрузка графики ads_manager.rpy — реклама (Yandex Ads) yandex_ads.py — библиотека для Android ``` Единственный файл, который меняет нейросеть: ``` game_defines.rpy — ВСЁ: название, персонажи, переменные, фоны, спрайты, сценарий ``` Это ключевое решение. Нейросеть получает чёткий «забор» — не вылезай. И она не вылезает. Ошибок стало в 10 раз меньше. --- 4. Файловая структура проекта Вот как выглядит папка game моего проекта: ``` game/ ├── game_defines.rpy # ЕДИНСТВЕННЫЙ ФАЙЛ, КОТОРЫЙ МЕНЯЕТ НЕЙРОСЕТЬ ├── config.rpy # заморожен ├── options.rpy # заморожен ├── screens.rpy # заморожен ├── gui.rpy # заморожен ├── images.rpy # заморожен ├── dynamic_chars.rpy # заморожен ├── ads_manager.rpy # заморожен ├── yndex_ads.py # заморожен └── images/ ├── bg/ # фоны (отдельные файлы PNG/JPG) └── characters/ ├── alisa/ # спрайты персонажа Алиса └── lera/ # спрайты персонажа Лера ``` Всё гениальное — просто. Замороженные файлы написаны один раз и работают как часы. --- 5. Как работает генерация кода Я написал промт, в который вставляю: · Название игры · Сюжет (2-3 абзаца) · Количество персонажей и их эмоций · Количество фонов · Количество глав Нейросеть (я использую GPT-4 и DeepSeek) выдаёт готовый game_defines.rpy. Что внутри game_defines.rpy: ```renpy init -10 python: # Основные настройки GAME_DATA = { "title": "Сёстры: Хоррор эротика в санатории", "author": "Zyk918", "version": "1.0", } # Персонажи: имя, отображаемое имя, цвет текста, тег спрайта CHARACTERS = { "alisa": ["Алиса", "#ffaaaa", "alisa"], "lera": ["Лера", "#aaaaff", "lera"], } # Переменные игры (отношения, предметы, выборы) GAME_VARS = { "chapter": 1, "trust_alisa": 50, "has_amulet": False, } # Фоны BACKGROUNDS = { "bg_entrance": "images/bg/entrance.jpg", "bg_lobby": "images/bg/lobby.jpg", } # Спрайты SPRITES = { "alisa standard": "images/characters/alisa/alisa_standard.png", "alisa kneeling": "images/characters/alisa/alisa_kneeling.png", } ``` А дальше идёт сам сценарий: ```renpy label start: scene bg_entrance show alisa standard at center alisa "Ты пришёл..." menu: "Кто ты?": hero "Ты кто?" "Что здесь происходит?": hero "Что за место?" # ... и так далее ``` Нейросеть сама расставляет show, scene, menu, переходы по главам и рекламные вставки.

Результат: · Код готов через 5-10 минут · Ни одной синтаксической ошибки (почти) · Можно сразу тестировать --- 6. Генерация картинок (спрайты и фоны) Тут всё просто: · Фоны: генерирую в Midjourney / DALL-E / Kandinsky. Промт на русском понимают все. Размер — 1080×1920. Время — 1-2 минуты на фон. · Спрайты: персонажи на прозрачном фоне. Разные позы и эмоции. Время — 2-3 минуты на спрайт. Сколько картинок нужно на игру: Тип Количество Время Фоны 6-10 10-15 мин Спрайты (4-5 эмоций × 2-3 персонажа) 8-15 20-30 мин Самый долгий этап — спрайты. Я сейчас тестирую локальный Stable Diffusion + ControlNet, чтобы генерировать все позы персонажа за один раз. Пока получается ускорить до 10-15 минут на персонажа. --- 7. Полный тайминг одной игры Давайте по шагам, от момента «хочу игру» до «опубликована в RuStore». Этап Инструмент Время 1. Нейросеть генерирует 10 идей (название + сюжет) GPT/DeepSeek 2 минуты 2. Выбираю лучшую, уточняю детали — 30 секунд 3. Нейросеть пишет game_defines.rpy GPT/DeepSeek 5-10 минут 4. Быстрая отладка (проверить переходы, переменные) Ren'Py 3-5 минут 5. Генерация промтов для картинок Я/нейросеть 2 минуты 6. Генерация фонов Midjourney/DALL-E 8-12 минут 7. Генерация спрайтов Midjourney/DALL-E 15-20 минут 8. Копирование файлов в проект Вручную/скрипт 3-5 минут 9. Вставка ID рекламного блока Ручная правка 20 секунд 10. Сборка APK + тест на телефоне Ren'Py SDK 5 минут 11. Скриншоты (играем пару минут) — 2 минуты 12. Публикация в RuStore (описание, иконки, скрины) RuStore 5 минут Итого: ≈ 50 минут — от идеи до релиза

8. Сборка APK и публикация Сборка APK: 1. В Ren'Py выбираю Android → Build Package 2. Жду 3-5 минут 3. Получаю APK-файл Публикация в RuStore: 1. Заполняю форму 2. Загружаю APK 3. Иконка (генерирую отдельно) 4. 5 скриншотов (делаю внутри игры) 5. Описание (тоже нейросеть) Всё. Через 1-2 дня модерация, и игра в магазине. --- 9. Цифры и доход Данные с одной из моих игр: Метрика Значение Установок за месяц 1000 Рекламных вставок 5 на игрока Показов рекламы 5000 eCPM (цена за 1000 показов) ≈400 руб Доход с одной игры в месяц ≈2000 руб Если у меня 60 таких игр: ``` 60 × 2000 = 120 000 руб/мес пассивно ``` Конечно, не все игры становятся хитами. Но даже 10-20% хитов дают очень комфортный доход. --- 10. Что можно улучшить Бутылочные горлышки сейчас: 1. Генерация спрайтов — 15-20 минут на игру 2. Отладка кода — нейросеть иногда ошибается в переходах 3. Ручное копирование картинок — пока не автоматизировал Что я тестирую: · Локальный Stable Diffusion + ControlNet для быстрой смены поз персонажа · Скрипты на Python для авто-копирования файлов по именам · Шаблоны персонажей с микродеталями (повязка, шрам, цвет волос) Потенциальный результат: Этап Сейчас Цель Генерация спрайтов 20 мин 8-10 мин Отладка 5 мин 2 мин Копирование файлов 5 мин 1 мин Итого 50 мин 30-35 мин --- 11. Выводы и советы Что я понял за это время: 1. Не нужно давать нейросети много файлов. Чем меньше она трогает, тем меньше ошибок. Один файл на всё — идеально. 2. Замороженный каркас — это база. Потратьте день на то, чтобы написать стабильные config, screens, gui и не меняйте их больше никогда. 3. Реклама на Ren'Py под Android работает. Yandex Ads подключается через Python-Java-мост. На ПК — заглушка, чтобы не падало. 4. Генерация картинок — главное узкое место. Но даже оно решается: библиотека сквозных персонажей или локальный SD. 5. RuStore — отличная площадка для экспериментов. Модерация быстрая, комиссии низкие, аудитория платёжеспособная. Мой главный совет: Не пытайтесь автоматизировать всё сразу. Автоматизируйте самое больное место. Потом следующее. Итеративно. Я начинал с того, что просто копипастил старые проекты и менял текст. Потом добавил нейросеть. Потом заморозил каркас. Потом подключил рекламу. Каждая итерация ускоряла процесс на 10-20%. Суммарно за полгода я вышел на 50 минут на игру. --- 12. Что дальше Сейчас мой портфель — 5 игр в RuStore. В планах: · 60 игр в течение 2 месяцев · Тестирование разных жанров (детектив, романтика, хоррор) · A/B-тесты обложек и скриншотов · Автоматизация публикации через API RuStore Если будет интересно — напишу продолжение. Как настраивал рекламу, как переезжал на Stable Diffusion, какие жанры залетают лучше. --- P.S. Исходники Я не продаю курсы и не прячу код. Всё, что я показал, — это открытые технологии. Ren'Py бесплатен, нейросети доступны всем, RuStore — бесплатная публикация. Если хотите повторить — дерзайте. Если нужен совет — пишите в комментариях. А если просто интересно посмотреть на результат — вот мои игры в RuStore (поиск по автору Zyk918). --- Одна игра — 50 минут. Сотня игр — 50 часов. Тысяча игр — 20 дней. Масштабируется линейно. А доход — экспоненциально.

Пример одного из проекта