Делаю RPG, где нейросеть пишет уникальный сюжет под каждого игрока
Всем привет! Меня зовут Евгений. По образованию - культуролог, по профессии аффилейт/креативщик. Много лет активно играю в CRPG, старую классику, в основном, по типу BG, Невервинтеров, Спеллфорсов и подобных.
Раньше была мечта создать свою собственную изометрическую игру: активно изучал движки, софт для создания анимации, моделлинга. Увы, в жизни произошло множество перемен, поэтому надолго эту идею забросил. Да и сделать вменяемую игру в одиночку на тот момент было крайне сложно. Но мысль о создании игры так и осталась:)
Полгода назад погрузился в с головой в изучение LLM, их возможностей и ограничений. Начал конечно же с gpt и дипсика. Тестировал их возможности писать вменяемые тексты и кодить. И тот и другое на тот момент было на достаточно низком уровне. Потом появился claude sonnet 3.7, который неплохо кодил и создавал читабельные тексты.
Практическая часть началась с создания ботов для тг, которые использовали LLM генерацию как основу функционала. Сделал несколько ботов, в том числе и первую итерацию рпг-проекта, о котором ещё расскажу.
Код создавал с помощью Claude Sonnet 3.7, потом 4. Тестировал, конечно же, остальные LLM, но на тот момент Claude был самым функциональным и с неплохим объёмом контекста.
Дальше началось знакомство с агентскими системами для написания кода. Первым протестировал Replit, но написать даже простого телеграм бота он оказался неспособен. Поэтому на нём моё тестирование агентских систем на некоторое время закончилось.
Сам принцип создания тг бота был достаточно примитивный: составлял подробное ТЗ, дорабатывал с помощью LLM, отправлял Claude + добавлял строгие правила. Получал готовый код для py, устанавливал на сервер, проверял, фиксил баги с помощью LLM и дорабатывал функционал. Такой подход позволял быстро собрать и протестировать готовое решение с минимальным фиксом багов. Самый главный минус такого подхода - невозможность масштабироваться. Код растёт - контекст LLM заканчивается и всё сложнее становится дорабатывать функционал и исправлять баги.
Поняв как LLM работает с кодом и потренировавшись на простых ботах, перешёл к разработке RPG-бота с LLM интеграцией. Изначально идея была такая: РПГ-истории, где игрок читает текст, делает выбор, LLM генерирует продолжение, проходит определённое число актов - финал. Быстро собрал прототип в связке py + aiogram + интеграция с openrouter через openai, но сразу же столкнулся с серьёзной проблемой - новые сцены не учитывали предыдущие. Решил, создав систему работы с контекстом, что в рамках ТГ бота было ещё той задачей:)
Следующим этапом было усложнение функционала: здоровье, характеристики, классы, статистика, уровни, NPC, единый сюжет истории. Новой серьёзной проблемой стала генерация действий с помощью LLM. Нейронка плохо слушалась строгих требований формата вывода и часто генерировала нелогичные действия и их последствия. Плюс накладывались технические ограничения апи телеграма. Решение - создал сложную систему парсинга ответов и расширил промты для LLM.
Но это по-прежнему был генератор рандомных историй. Нужно было связать истории единым миром и лором. А также добавить инвентарь, смерть героя, социальные взаимодействия, и влияние на глобальный сюжет. Получилось так: в начале истории LLM генерировал 3 типа предмета с описанием, которые потом игрок мог задействоать в истории. Герой мог умереть, если попадал в смертельно опасную ситуацию или уровень здоровья из-за неудач опускался до нуля. Для социальных взаимодействий получилоась создать систему влияния на NPC, которая открывала дружеские или любовные линии. Чтобы игрок мог влиять на глобальный сбжет, создал систему летописи: в конце истории LLM подводила итоги действий игрок и их последствий и генерировала короткий саммари, текст которого попадал в летопись. После каждого действия срабатывало автосохранение прогресса. Если что-то пошло не так, можно было перегенерировать сцену.
Система работала, но очень криво. В основном из-за ограниченний api и интерфейса телеграма, а также капризов LLM. Интерфейс получался слишком сложным и громоздким, генерация действий часто сбоила. И самое главное - тексты были очень плохими как в плане стиля, так и в плане сюжетов. Это был набор клишированных сцен, действий и последствий, которые слабо дружили с логикой.
Пришла пора глубокой работы с промтами:) В них я добавил множество правил, переменных, которые должны учитываться при каждой генерации и текст историй стал намного лучше и логичнее. Промты выросли аж до 15-20 тыс. символов, плюс 50 тыс. символов промт мира. Итого примерно 30 тыс. токенов в каждом исходящем запросе. Система контекста тоже работала неплохо: сюжеты стали цельными, персонажи не пропадали в следующей сцене, ситуации стали интереснее и разнообразнее.
Получался неплохой LLM генератор RPG историй с простой ролевой системой и нелинейным повествованием и казуальной прогрессией. Но по мере появления новых версий LLM, которые становились функциональнее, решил сделать сразу конструктор миров для игроков. Однако во время разработки пришло понимание, что интерфейс и функционал телеграма - не лучшее решение даже для простого конструктора.
Для следующей и на данный момент разрабатываемой итерации принял решение создавать полноценный игровой веб сервис. Кор геймплеем по-прежнему стали нелинейные LLM истории, которые развивались в зависимости от действий игроков. Сверху добавились: усложнённая ролевая система, полноценный инвентарь, магазин, многоуровневая прогрессия, социальные элементы и летопись.
Геймплей LLM историй стал насыщенней. Для генераций действий и развития историй ИИ использует многоуровневый динамический контекст и все параметры героя для генераций действий, что создаёт уникальные игровые ситуаций с уникальными исходами и концовками.
Бэкенд состоит из админки, где расположены настройки всех разделов, полноценный шаблонизатор и конструктор миров. В конструкторе миров помимо настроек каждого элемента геймплея есть конструктор промтов.
Ядро гемплея затачивается под Gemini, но есть опции использовать несколько LLM для генерации различных действий.
На данный момент проект готов примерно на 70%. Осталось доделать визуал, внедрить ещё несколько геймплейных элементов и интегрировать монетизацию. Разработка ведётся локально.
Первые паблик тесты запланированы на май 2026.
Спасибо за внимание, в следующих постах подробнее расскажу про технические нюансы различных элементов сервиса, софте и сложностях, с которыми столкнулся при разработке с помощью ИИ.
Вопрос к олдам CRPG: какая фича из старых игр вам больше всего не хватает в современных? Хочу понять, что ещё можно реализовать в рамках текущего формата.


















