Об этом проекте

Dungeon — это локальная однопользовательская текстовая приключенческая RPG, работающая на Node.js-приложении. Требуется Node.js 22.13 или новее, установка пакетов не нужна; после копирования .env.example в .env и заполнения ключа провайдера команда npm start запускает игру по адресу http://127.0.0.1:4317. Язык интерфейса и текст кампании можно независимо переключить на английский или русский. Игроки начинают новую кампанию из встроенных или пользовательских шаблонов приключений, которые содержат отдельно сеттинг, сценарий, персонажа и необязательный секретный контент, видимый только ведущему. Пользовательские шаблоны хранятся в data/adventure-templates.json, их можно редактировать или копировать, не раскрывая скрытых инструкций, а встроенные шаблоны можно сбросить. Тестовый просмотрщик может показать авторские секреты ведущего и установленные скрытые факты мира только после подтверждения спойлера, не изменяя кампанию. Конфигурация моделей доступна на странице Settings. Поддерживаются подключения к провайдерам Gemini, OpenRouter, OpenAI, Anthropic, DeepSeek и xAI, пользовательские идентификаторы моделей и списки моделей, получаемые из официальных API провайдеров без платного инференса; списки кэшируются на один час. Запрашиваемая по умолчанию модель — Gemini gemini-3.8-flash. Необязательный ключ Artificial Analysis API включает ценовые ориентиры, кэшируемые на шесть часов, с резервным обращением к OpenRouter. Все вызовы моделей используют общий локальный журнал расходов, и приложение лишь оценивает локальные расходы, а не является общим счётом провайдера по всему аккаунту. Геймплей использует одного игрового персонажа. Ведущий придумывает детали в рамках сеттинга и установленной истории. Значимые проверки показывают базовую сложность, подписанные модификаторы, итог до ограничения, шанс успеха и реальный результат d100; действия с расчётным шансом 0 или 100 процентов гарантированы и не используют кубик. Игроки могут задавать внеигровые вопросы, оспаривать решения или запрашивать исправления/отмены, изучать исходные знания о персонаже и мире, а также искать по журналу. Сохранение и перезагрузка происходят автоматически. Данные кампании хранятся в data/campaigns.sqlite, расходы — в data/spend-ledger.json, а приватные результаты провайдеров — в data/provider-results. Репозиторий включает проверки npm test и npm run check с использованием mock-провайдеров, а также опциональные браузерные тесты Playwright при заданной переменной DUNGEON_PLAYWRIGHT_PATH. Документация описывает правила пилотного запуска и выводы плейтеста. В ней отмечается, что оставшаяся сложная проблема — семантическое суждение, и не гарантируется идеальное поведение ведущего или качество игрового процесса у провайдера.