Два года назад GPT-4 с трудом справлялся с генерацией ASCII-карт, а Stable Diffusion не мог выдать консистентную игровую графику. Разработчик из России решил создать генератор RPG, где пользователь вводит промпт и получает готовую игру с геймплеем — не просто role-play чат, а полноценный игровой опыт с правилами и ограничениями. Теперь, спустя два года и с появлением финансирования, команда публикует подробный отчёт о том, что получилось.
Первым делом встал вопрос тайлов — базовых графических блоков, из которых собирается карта мира. Для 2D top-down игры тайлы должны быть бесшовными и выглядеть корректно с высоты птичьего полёта. Stable Diffusion в режиме бесшовной генерации давал неудовлетворительное качество, и команда перешла на gpt-image-1. Стоимость оказалась приемлемой: 4 цента за тайл и 1 цент за переходные тайлы между биомами. Переходы — отдельная техническая задача: чтобы граница между травой и водой не выглядела резкой, разработчики применили img2img по маске в Stable Diffusion. Схема выглядит так: вокруг целевого тайла выкладывается сетка 3×3 из базового типа, затем по маске запускается диффузия границы. Второй проход с более сложной маской даёт полный набор из 16 переходных вариантов — стандарт для тайловых карт в игровой разработке.
С персонажами оказалось сложнее. Команда хотела покадровые анимации — бег, удар, стойка. Для этого использовали связку ControlNet + Pixelization + IPAdapter: портрет NPC служил референсом образа, ControlNet управлял позой через скелет, а IPAdapter переносил внешность на анимированную фигурку. Метод работал, но с двумя системными проблемами. Во-первых, SD иногда генерировал персонажа спиной к камере, хотя скелет был выставлен правильно — артефакт обучения самого ControlNet. Во-вторых, SD не поддерживает прозрачный фон нативно: белый фон приходилось вырезать алгоритмически, что оставляло белую обводку на тёмных спрайтах и уничтожало полупрозрачные элементы вроде теней. Главная же проблема оказалась концептуальной: кадры анимации, сгенерированные по отдельности, не создавали ощущения движения при воспроизведении — модель не понимала, что генерирует последовательность.
Бесшовные переходы между биомами получены через img2img по маске в Stable Diffusion по стандарту 16-тайловой карты.
Структуру мира собирали через шум Перлина — классический алгоритм процедурной генерации рельефа, дающий органично выглядящие горы, реки и равнины. Расстановку объектов поручили LLM: мир делился на зоны (населённый пункт, лагерь, равнина, заросли, свободная территория), для каждой типа зоны LLM заполняла аргументы — какие здания, декорации, NPC и дороги разместить, — а алгоритм расставлял их по правилам зоны. Карта с городами и дорогами получилась, но вблизи картинка выглядела неудовлетворительно: стиль тайлов, объектов и персонажей не складывался в единое целое.
После этого команда собралась и пересмотрела концепцию целиком. Open-world RPG с процедурным миром заменили на пошаговый 2.5D narrative RPG, сосредоточенный на повествовании. Отказались от анимаций, от открытого мира, от генерации кода скиллов на JavaScript через LLM-интерфейс — хотя последняя идея, по словам разработчика, была технически интересной. Пошаговость и разбивка мира на небольшие локации существенно упростили пайплайн и сделали генерацию более управляемой. Следующие части серии обещают показать итоговый прототип и примеры сгенерированных миров.


