本页目录

Questionably Brave:AI 担任地下城主的 D&D 文字冒险(JavaScript)

questionably_brave · newrealmco/questionably_brave

这是一个单人高奇幻风格、受 D&D 5e 启发的文字冒险游戏:玩家操控四人小队中的一名英雄,其余三名队友由 AI 扮演;AI 同时担任地下城主,负责叙述世界与剧情,并响应玩家行动,还会跨回合维护一份持续更新的故事文件来保留记忆。游戏采...

RPG 文字冒险 无明确引擎 JavaScript 程序化生成 对话系统 存档系统 游戏状态管理 中级
★ Stars 0 Forks 2 License MIT 更新 2026-10-16

国内开发环境适配

Windows
未知
Linux
未知
macOS
未知
引擎 / 框架:无明确引擎 暂无中文教程标记 未标记站长实测
需自备 Anthropic/OpenAI/Google/xAI 的 API Key,游戏在浏览器中直接调用这些供应商的 API;国内访问与网络连通性待核验。

中文项目介绍

Questionably Brave 是一款单人高奇幻风格的文字冒险游戏,灵感来自 D&D 5e。它最特别的地方在于:地下城主(DM)由 AI 担任。玩家操控四人小队中的一名英雄,其余三名队友由 AI 扮演;DM 负责叙述世界、推动剧情,并对玩家的每一次行动作出回应。

为了让冒险具有连续性,游戏会在回合之间维护一份持续更新的「故事文件」,使 DM 对玩家此前的经历保有记忆。整个项目以 JavaScript 编写,属于纯静态文件,无需构建步骤。

玩法指南

在输入栏中输入任意行动并按 Enter(或点击发送),即可推进剧情。DM 回复下方会提供快捷行动按钮,供玩家选择建议动作。输入栏上方的骰子托盘可用于掷骰,DM 会在需要时提示玩家掷骰。DM 以叙事散文回应,并自动更新生命值、物品栏与任务。

点击顶栏的 ? 可阅读完整的游戏内手册。

战斗

当敌人出现时,叙事区上方会出现红色战斗条,显示敌人生命值。DM 会提示玩家进行攻击检定与伤害掷骰。

地图

点击顶栏的 World Map(或按 M)可查看队伍位置与已访问地点;下方中央面板的地点地图会在旅行时更新。

键盘快捷键

按键 功能
Enter 提交行动
Shift+Enter 输入换行
Escape 关闭弹窗
M 打开地图
J 任务日志标签
L 战利品标签
K 传说标签

核心功能

多供应商 AI 地下城主

支持 Anthropic Claude、OpenAI GPT、Google Gemini 与 xAI Grok,玩家可自备对应 API Key。

按供应商选择模型

可依据预算与风格,在不同供应商下挑选合适的模型。

程序化生成的 SVG 地图

每次游玩都会生成独一无二的世界地图与地点地图。

动画骰子

d4 至 d20 的骰子被整合进游戏循环。

战斗追踪

显示敌人血条与回合计数。

右侧面板标签页

包含任务日志、物品栏与传说笔记。

完整存档与读档

自动保存到浏览器存储,并支持存档文件的导出与导入。

技术架构分析

构建与运行

项目无需构建步骤,是纯 HTML/CSS/原生 JavaScript(ES 模块)的静态文件集合,也没有 npm 或打包器依赖。

  1. 从受支持的供应商获取 API Key(Anthropic、OpenAI、Google 或 xAI)。
  2. 在项目目录启动本地静态文件服务器,例如 npx serve .,或 python3 -m http.server 3000。
  3. 在浏览器打开 http://localhost:3000,首次启动时点击 Begin Your Legend,创建角色并在提示时输入 API Key。

注意:ES 模块需要服务器环境,直接以 file:// 打开无法运行。

技术要点

  • 纯 HTML/CSS/原生 JavaScript(ES 模块),无构建步骤、无依赖。
  • API Key 按供应商分别存储在 localStorage 中(例如 chronicles_apikey_anthropic)。
  • 游戏通过 fetch() 在浏览器中直接调用供应商 API。
  • 程序化生成 SVG 地图,配合动画骰子与战斗追踪构成游戏循环。

补充说明

存档与隐私

游戏每回合都会自动保存到浏览器的 localStorage。点击顶栏的 Save Game 可下载包含完整游戏状态的 .json 存档文件,便于在本地保留多份存档;Export Story 可将叙事日志导出为 .md 文件,作为冒险的可读纪念。在标题界面可加载此前导出的 .json 存档,或点击 Resume Saved Journey 继续最近一次自动存档。

所有 API Key 与游戏数据仅存储在浏览器本地存储中,不会上传到任何托管服务器;API Key 仅在生成回复时发送给所选 AI 供应商的 API 端点。

嵌入与部署

游戏是一组无构建步骤的静态文件,可复制到站点目录(如 /static/game/),通过 <iframe> 嵌入现有网站。数据存储在托管域名作用域下的 localStorage 中,同一域名的用户共享同一命名空间。若将游戏迁移到其他域名,存档与 API Key 不会随之迁移,用户可先导出 .json 存档再在新域名导入。

许可

项目采用 MIT License,详见仓库中的 LICENSE 文件。

开源许可证与版权说明

许可证标识:MIT。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目