无尽太空(Endless Sky):2D 沙盒太空探索与贸易战斗游戏
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
bemuse · bemusic/bemuse
Bemuse 是一款开源的网页端在线节奏动作游戏,基于 HTML5 技术,使用 TypeScript、React、Redux 与 Pixi.js 构建;仓库 topics 标注涉及 BMS、BMSON 曲谱格式,工程侧采用 RushJS 管理仓库、SCSS 编写样式,文档站基于 Docusaurus。READM...
Questionably Brave 是一个运行在浏览器里的单人高奇幻文字冒险项目,README 将其定位为“受 D&D 5e 启发”的 AI 跑团体验。它与常见文字游戏的区别在于,玩家只控制四人小队中的一名英雄,另外三名队友由 AI 扮演;同时,地下城主也由大语言模型担任。玩家在输入栏里输入任意行动,DM 以叙事散文回应,并推动世界、剧情和战斗发展。项目不要求安装大型游戏引擎,也没有传统客户端,而是把角色创建、对话、骰子、战斗追踪、任务与物品记录、地图和存档整合进一个静态网页。
AI 地下城主是核心机制。项目支持四类提供商:Anthropic Claude、OpenAI GPT、Google Gemini 和 xAI Grok,并允许按 provider 选择模型,以便在预算和文风之间取舍。玩家首次启动时需要创建角色,并在提示处填入自己的 API Key。README 强调,API Key 与游戏数据只保存在浏览器 localStorage 中,不会上传到托管服务器;只有在生成回复时,Key 才会被发送到所选提供商的 API 端点。游戏通过浏览器 fetch() 直接调用 provider API,因此没有后端代理,也没有账号系统。
交互层面,玩家除了自由输入,还可以点击 DM 回复下方的快捷行动按钮;输入框上方有骰子盘,支持 d4 到 d20 的动画骰子,DM 会在需要判定时提示掷骰。战斗出现时,叙事区上方会出现红色战斗条,显示敌人血量和回合计数,DM 会要求攻击检定与伤害骰。DM 的回复不仅生成文字,还会同步更新 HP、背包和任务;右侧面板提供任务日志、物品栏和传说笔记三个标签页,帮助玩家回看冒险线索。README 还列出键盘快捷键:Enter 提交行动,Shift+Enter 换行,Escape 关闭弹窗,M 打开地图,J 切到任务,L 切到战利品,K 切到传说。
为了保持跨回合连贯,项目维护一份“living story file”(持续更新的故事文件),让 DM 对之前的冒险保有持久记忆。地图系统也值得注意:每次游玩都会程序化生成 SVG 世界地图与地点地图,世界地图显示队伍位置和已访问地点,下方中央的地点地图会随旅行更新。这种程序化 SVG 方案不依赖外部地图素材,适合在纯前端环境里快速构造奇幻世界视觉。UI 还包括标题页、游戏内手册和多个弹窗,整体围绕单人跑团流程组织。
存档与导出是其完整度的重要体现。游戏每回合自动保存到浏览器 localStorage;顶栏的 Save Game 可下载包含完整游戏状态的 .json 存档,玩家可以在电脑上保留多份进度;Export Story 则把叙事日志导出为 .md 文件,作为可阅读的冒险记录。标题页支持 Load Save File 导入此前导出的 .json,也可以点击 Resume Saved Journey 继续最近一次自动存档。README 特别说明,嵌入网站时 localStorage 按域名隔离;如果把游戏迁移到新域名,旧存档和 API Key 不会自动带过去,需要先导出 .json 再在新域名导入。
技术实现上,项目没有构建步骤,使用纯 HTML、CSS 和原生 JavaScript(ES Modules),没有 npm、打包器或第三方依赖,因此部署时只需要一个静态文件服务器。README 给出 npx serve . 与 python3 -m http.server 3000 两种启动方式;由于 ES Modules 的限制,直接以 file:// 打开不会工作。项目还给出嵌入现有站点的示例:把游戏文件放进目录,用 iframe 指向 index.html 即可。API Key 按 provider 分别存入 localStorage,例如 chronicles_apikey_anthropic;游戏在浏览器端直接请求各提供商接口。许可证为 MIT。
对学习者而言,这个项目展示了如何把大模型接入一个完整的前端游戏循环:角色与队伍状态、DM 叙事、骰子判定、战斗回合、任务/背包/传说面板、程序化 SVG 地图、自动存档与导入导出,都在没有后端的情况下组织起来。它适合研究 AI 叙事游戏的 prompt 组织、跨回合记忆、前端状态管理和 localStorage 持久化,也适合作为静态站点嵌入的示例。需要注意,实际游玩必须自备可用 API Key,并依赖对应 provider 的网络连通性与配额;README 没有承诺离线可玩。国内访问 Anthropic、OpenAI、Google、xAI 等接口的连通性、延迟与费用均待核验,浏览器清理数据或更换域名也可能导致本地存档不可用,建议定期导出 .json 备份。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
micropolisJS 是把 Micropolis(开源版《模拟城市》类城市模拟游戏)移植到 J...
《Dead Ascend》是一款手绘风格的 2D 点击式(point-and-click)冒险解谜游戏...