Я сделал текстовую RPG с ИИ-мастером, который помнит всё, что ты делал . Год разработки, 8 игровых миров, DeepSeek под капотом и мультиплеер без живого GM — рассказываю, как это работает и что получилось
Мы с друзьями хотели играть в D&D. Обычную настолку за столом с живым мастером, костями и характерниками. Проблема в том, что собрать четырёх взрослых людей в одно время в одном месте — это квест со сложностью «легендарный». Кто-то работает, кто-то уехал, кто-то устал и хочет просто полежать.
Я подумал: а что если мастер будет ИИ? Не тот ИИ, который через три хода забывает, что дракон мёртв, и воскрешает его посреди таверны. А настоящий мастер — с памятью, правилами и характером.
Год спустя это выросло в AI Whisp — браузерную текстовую RPG, где нейросеть ведёт историю в реальном времени. Мир, где рождаются приключения. Расскажу честно: что вышло, что не вышло и почему я считаю, что текстовые RPG с ИИ — жанр, который ещё даже не начал раскрываться.
Ладно, а что это вообще такое
По сути — интерактивная история, где ты пишешь действия свободным текстом, а ИИ отвечает миром. Не выбираешь из трёх вариантов, а именно пишешь что хочешь. Хочешь подкупить стражника — подкупай. Хочешь съесть свиток заклинания — ешь. ИИ разберётся.
В каждый момент игры у тебя четыре режима:
Do — физическое действие. «Достаю меч», «ломаю дверь», «прыгаю в колодец».
Say — диалог. «Говорю трактирщику, что я гонец из столицы».
See — осмотр и визуализация. «Изучаю символы на стене», «заглядываю в карманы мертвеца». А ещё See генерирует изображение сцены прямо в игре — через Stable Diffusion Flux. Написал «осматриваю тронный зал» — и получил не только текстовое описание, но и картинку того, что видит твой персонаж.
Story — ты сам дописываешь нарратив. «Неожиданно начинается буря» — и начинается буря. Ты соавтор истории, не только её участник.
ИИ получает ввод, весь контекст, память о прошлых событиях — и генерирует продолжение. Ответ приходит за 5–10 секунд — достаточно быстро, чтобы не терять темп, и достаточно долго, чтобы налить чаю между ходами.
Восемь миров, и каждый — отдельная вселенная
Когда я начинал, был один мир — стандартное фэнтези. Потом я подумал: если ИИ умеет вести историю, почему только фэнтези? Сейчас их восемь, и каждый с собственным характером.
Elderspire — тёмное фэнтези. Разрушенные башни над морем тумана, монастыри на железных мостах, гнёзда драконов. Чистый D&D.
Machine Hegemony — мир, где процессоры научились мечтать, а дефектные единицы учатся лгать. Сай-фай с философским привкусом.
Neon Undertow — купольные города на дне океана, неон и тени. Корпорации-боги и Живая Сеть. Киберпанк-нуар.
Hollowbriar — тёмный лес, где тропы помнят каждый шаг, а фонари врут. Деревья хранят имена всех, кто вошёл. Чистый хоррор.
Crownfall Marches — политические интриги. Слово весит больше меча. Придворные заговоры, предательства, альянсы.
Astra Pioneers — колонизация астероидов, солнечный ветер, выживание на краю Системы. Твёрдая научная фантастика.
Arcanum Lyceum — академия магии. Коридоры двигаются, библиотека запоминает, наказания вне времени. Гарри Поттер, только страшнее.
Antagonist Protocol — супергерои и суперзлодеи. Маски скрывают настоящие мотивы. Моральные дилеммы на каждом шагу.
Каждый сеттинг — не просто текстурка поверх одного движка. У каждого мира свой тон повествования, свои правила и атмосфера, которую ИИ поддерживает на протяжении всей сессии.
Главное, ради чего всё затевалось: ИИ помнит
Любой, кто пробовал играть в текстовые RPG на нейросетях, знает главную боль. Через двадцать ходов ИИ не помнит, что было на первом. Ты убил дракона — а через полчаса он снова жив. Ты подружился с NPC — а ИИ забыл его имя. Ты поклялся в верности королю — а мастер ведёт себя так, будто этого не было.
Это убивает всё. Какой смысл вкладываться в историю, если она забудется?
В AI Whisp я построил систему долгосрочной памяти. Каждое значимое событие сохраняется с типом и важностью: диалог, локация, квест, отношения с NPC. Старые воспоминания автоматически сжимаются, чтобы контекст не разрастался до бесконечности. Но при этом ИИ умеет семантически искать нужное — вспоминает не «всё подряд», а то, что уместно прямо сейчас.
На практике: если ты подружился с кузнецом в первой сессии, а через пять сессий вернулся в тот же город — ИИ об этом знает. Кузнец тебя узнает. Он вспомнит, что ты ему помог. Или что ты его ограбил.
Это не магия. Это инженерия. И это заняло больше времени, чем весь остальной проект вместе взятый.
Мультиплеер: до восьми человек, без живого мастера
Помните, с чего я начинал? Собрать людей на D&D — невозможно. Поэтому мультиплеер был не бонусной фичей, а причиной, ради которой всё делалось.
До восьми игроков. Один — хост, остальные заходят по коду из восьми символов.
Режим по умолчанию — одновременный. Каждый пишет своё действие, не видя чужих. Пока все не отправили — ИИ молчит. Когда последний игрок нажимает кнопку, система объединяет все ходы и генерирует одну общую сцену: что случилось с каждым и как действия переплелись. Счётчик «2/4 готовы» виден всем.
Если нужна другая динамика — строгая очерёдность, ротация по кругу или полная свобода (ходи когда хочешь).
И вот что мне нравится больше всего: если кто-то выходит из сессии, он не теряет прогресс. Каждый получает полную копию приключения со всей историей и воспоминаниями — и продолжает соло. Сюжет разветвляется, как в книгах с развилками. Совместная история становится точкой, из которой расходятся индивидуальные.
Discover: чужие миры, чужие истории
Это, пожалуй, самая живая часть проекта.
Любой может создать собственный сценарий: задать мир, персонажей, завязку, тон ИИ, добавить триггеры сюжета. Опубликовать — и получить рейтинги, комментарии и форки от других игроков. По сути, UGC-платформа поверх игрового движка.
Все сценарии попадают в Discover — ленту с фильтрами по 24 жанрам (от классического фэнтези до аниме и хоррора), с возрастным рейтингом и сортировкой по популярности.
Есть отдельная вкладка Readable. Это не сценарии для игры, а готовые истории. Их создали ИИ вместе с реальными игроками в ходе сессий, а потом сохранили как текст. Открываешь и читаешь, как книгу — никакого ввода не нужно. Архив живых партий.
Что не работало. Честно
Было бы нечестно рассказывать только про успехи. Вот что ломалось, бесило и заставляло переделывать.
ИИ воскрешал мертвецов. Это была первая и самая болезненная проблема. Ты убиваешь босса, идёшь дальше — а через десять ходов он снова разговаривает с тобой как ни в чём не бывало. Пришлось строить отдельную систему трекинга критических событий: смерть NPC, разрушение локации, завершение квеста. Такие факты записываются с максимальным приоритетом и никогда не вытесняются из контекста.
ИИ не умел говорить «нет». Ранние версии соглашались на всё. Хочешь перелететь через гору силой мысли, будучи обычным крестьянином? Пожалуйста. Пришлось вводить систему проверок: характеристики, модификаторы, вероятности успеха. Теперь персонаж может провалить действие. И может умереть. Это оказалось критически важным — без риска нет истории.
Контекст разрастался до безумия. Первая версия памяти просто копила всё подряд. К тридцатому ходу контекст занимал столько, что модель начинала галлюцинировать. Решение — многослойная система: горячий контекст (текущая сцена), тёплый (недавние события), холодный (суммаризированная память). Что-то вроде того, как работает человеческая память, только детерминированно.
Мультиплеер ломал нарратив. Когда четыре человека одновременно делают четыре разных вещи — один торгуется, другой дерётся, третий крадёт лошадь, четвёртый спит — собрать это в связную сцену оказалось нетривиальной задачей. Несколько итераций промпт-инжиниринга и отдельный модуль сведения действий.
Каждая из этих проблем отъедала недели. Но без их решения проект был бы очередной «ChatGPT-обёрткой». А мне хотелось сделать настоящего мастера.
Под капотом
Раз DTF читают и разработчики — вот что внутри.
Backend — Fastify + TypeScript, PostgreSQL. DeepSeek API с потоковой отдачей текста (SSE). Авторизация через JWT + Google OAuth.
Frontend — React 18 + Vite + Zustand + TailwindCSS. Framer Motion для анимаций. Socket.io для реального времени. Capacitor для мобильных приложений (iOS/Android).
Внутри ИИ-пайплайна — несколько независимых модулей. Один отвечает за нарратив. Другой следит за драматическим напряжением — чтобы история не провисала и не скатывалась в монотонность. Третий сжимает старую память. Четвёртый строит финальный контекст для запроса. Всё это скрыто за одним игровым действием — игрок просто пишет, что хочет сделать, и получает историю.
Цены
Есть бесплатный тариф — 7 ходов в день, базовый контекст. Для того чтобы попробовать и понять, заходит или нет — хватает.
Платные тарифы открывают безлимитные ходы, расширенный контекст, больше памяти, генерацию изображений к сценам и приоритетную поддержку.
Что дальше
Сейчас работаю над:
Улучшенной системой управления приключениями — чтобы было проще возвращаться к старым сессиям и продолжать с нужного момента.
Более умными триггерами сюжета — story cards. Элементы, которые автор сценария закладывает в мир, а ИИ активирует в нужный момент. Ружьё на стене, которое выстрелит в третьем акте — только теперь этим управляет автор сценария.
Расширением Discover — лучше находить чужие миры и сценарии, больше инструментов для авторов.
Если интересно попробовать — ai-whisp.ru .Есть Discord (ссылка на сайте).
Вопросы, фидбэк, баг-репорты и рассказы про самые безумные приключения — пишите в комментарии, читаю всё.