このプロジェクトについて

Dungeonは、Node.jsアプリケーションから配信されるローカル向けシングルプレイヤーのテキストアドベンチャーRPGです。Node.js 22.13以降が必要で、パッケージのインストールは不要です。.env.exampleを.envにコピーしてプロバイダーキーを入力すると、npm startでゲームがhttp://127.0.0.1:4317で提供されます。インターフェースとキャンペーンテキストは、それぞれ英語またはロシア語に独立して設定できます。 プレイヤーは、組み込みまたはカスタムのアドベンチャーテンプレートから新しいキャンペーンを開始します。テンプレートには、設定、シナリオ、キャラクター、および任意のDM専用シークレットコンテンツが分かれています。カスタムテンプレートはdata/adventure-templates.jsonに保存され、隠された指示を明かすことなく編集またはコピーでき、組み込みテンプレートはリセットできます。テスト用ビューアーは、スポイラー確認の後でのみ、作成されたDMシークレットと確立された隠された世界の事実を、キャンペーンを変更せずに表示できます。 モデル設定はSettingsページから行えます。Gemini、OpenRouter、OpenAI、Anthropic、DeepSeek、xAIのプロバイダー接続、カスタムモデルID、有料推論なしで公式プロバイダーAPIから取得したモデル一覧に対応しており、一覧は1時間キャッシュされます。要求されるデフォルトはGemini gemini-3.8-flashです。オプションのArtificial Analysis APIキーを設定すると価格リファレンスが有効になり、6時間キャッシュされ、OpenRouterへのフォールバックがあります。すべてのモデル呼び出しはローカル支出台帳を共有し、アプリはアカウント全体のプロバイダー請求書として機能するのではなく、ローカル支出の推定のみを行います。 ゲームプレイでは単一のプレイヤーキャラクターを使用します。DMは、設定と確立された履歴の範囲内で詳細を考案します。意味のある判定では、基本難易度、ラベル付き修正値、クランプ前の合計、成功率、実際のd100結果が提示されます。計算上の成功率が0%または100%の行動は保証され、ダイスを使用しません。プレイヤーはゲーム外の質問、判定への異議申し立て、修正/取り消しの要求、情報源付きのキャラクターおよび世界知識の確認、ジャーナルの検索ができます。保存と再読み込みは自動です。キャンペーンデータはdata/campaigns.sqlite、支出はdata/spend-ledger.json、プライベートなプロバイダー結果はdata/provider-resultsに保存されます。 リポジトリには、モックプロバイダーを使用するnpm testおよびnpm run checkの検証が含まれており、DUNGEON_PLAYWRIGHT_PATHが設定されている場合はオプションでPlaywrightブラウザーテストも利用できます。ドキュメントには、パイロットルールとプレイテストの結果が記載されています。そこでは、残る難しい問題は意味的判断であり、完璧なDMの振る舞いやプロバイダーのゲームプレイ品質を保証するものではないと述べられています。