一款运行在浏览器里的 2D 俯视战术撤离射击(top-down tactical extraction shooter) roguelite —— 由四维 AI 驱动。
一句话定位:空降程序化生成的战场,完成目标、对抗具备战术行为的 AI 敌人,在被歼灭前抵达撤离点带走战利品。撤离成功才保留战利品 —— 高风险高回报的 roguelite 张力。
设计支柱(Design Pillars)
| 支柱 | 含义 |
|---|---|
| 🧠 AI 即玩法 | AI 不是点缀,而是贯穿玩法四个维度:敌人战术、关卡生成、叙事、难度。 |
| ⏱️ 短局高张力 | 单局 3–6 分钟,撤离前的每一步都是抉择:贪战利品,还是保命撤离? |
| 🔁 零安装、永远可玩 | 纯前端、零三方依赖;联网调 LLM,断网自动降级到模板,体验不中断。 |
| 🎯 手感优先 | 固定 60Hz 逻辑步、对象池、视锥裁剪 —— 中端笔记本稳 60 FPS。 |
目标用户:喜欢《三角洲行动 / 逃离塔科夫》撤离玩法、又想"开浏览器即玩"的玩家;以及想研究游戏 AI / 程序化生成 / LLM 叙事的开发者(MIT 开源,自由取用)。
核心循环
主菜单 → 装备/解锁 → [AI] 任务简报 → [AI] 程序化生成战场 → 部署
→ 作战(智能敌人 + 实时自适应难度)
→ 完成目标 → 撤离点激活 → 撤离成功结算 ┐
→ 或 干员阵亡 / 超时 → 失败(损失本局战利品)┘→ [AI] 战后复盘 → 哈夫币 → 解锁升级 → 回到主菜单

作战画面:俯视战场、智能敌人与其视野锥、小地图、完整 HUD(生命/护甲/体力、武器弹药、投掷物、目标与计时)。
俯视视角下移动、瞄准、射击、换弹、冲刺、翻滚(无敌帧)。6 种敌人各有战术侧重:步兵找掩体、突击兵贴脸绕侧、射手远程点射保持距离、重装压制推进、无人机 360° 侦察报点、HVT 高价值目标。敌人拥有视觉(FOV 锥 + 视线遮挡)+ 听觉 + 记忆,会巡逻、警觉、搜索、交战、找掩体、包抄、压制、低血撤退,并通过小队共享"最后已知位置"。
BSP 房间切分 + 走廊连接 + 掩体散布 + 连通性校验,保证出生点→目标→撤离点必可达;接受种子,同种子同地图(便于测试与回放)。按 M 展开大地图查看全局布局、敌人位置与撤离点。
任务前生成战场简报,任务后生成复盘战报,战斗中触发电台喊话 —— 接入 Claude(claude-haiku-4-5),API Key 仅存于服务端;离线 / 无密钥 / 超时自动降级到内置模板库,叙事永不缺席。
实时采集命中率、击杀节奏、受伤量,平滑计算表现分,动态调整敌人数量 / 血量 / 激进度 / 刷新节奏;设硬边界与新手保护,调整渐进、不突变 —— 高手越打越紧张,新手不至于劝退。
6 把武器(手枪 / 突击步枪 / 冲锋枪 / 霰弹 / 狙击 / 机枪)数据驱动;💣 破片手雷与 🌫️ 烟雾弹,按住 Q/G 预瞄抛物落点与影响半径、松开投掷,烟雾会真实遮挡 AI 视线。撤离结算转化为哈夫币,用于解锁武器与 5 类强化升级。
6 类目标:清除 HVT、拾取情报、占领标记点、入侵终端、摧毁设施(可被子弹/手雷打掉)、解救人质。解救后人质会跟随护送至撤离点;途中会被敌方流弹与你自己的手雷误伤 —— 护送幸存有奖励,阵亡则扣分。
行动模式(目标→撤离)与歼灭模式(波次生存冲分)。战绩提交服务端排行榜,结算界面展示榜单并高亮自己;可自定义呼号。

结算界面:战绩统计、AI 战后复盘、在线排行榜(图中已实时收录本局呼号)。
- "四维 AI"统一框架 —— 把 AI 落到玩法的四个正交维度(敌人战术 / 关卡生成 / 叙事 / 难度),而非单点堆砌,形成可独立验证、又彼此增强的系统。
- LLM 叙事的"安全降级"工程 —— LLM 只产叙事、绝不影响数值判定;输出经净化(去标签/控制符/限长)再渲染;代理侧限流/限长/超时/不外泄堆栈;断网无缝回退模板,在线增色、离线不残。
- 烟雾真正改变 AI 感知 —— 烟雾弹不是视觉特效,而是接入敌人
canSee的视线遮挡,催生"扔烟突进/拉视野"的真实战术,无人机也受影响。 - 可预测的投掷物 —— 抛物落点预瞄用与运行时一致的物理模型纯函数计算(含撞墙截断),可单测、所见即所得。
- 护送张力的涌现式设计 —— 人质可被"己方流弹/手雷"误伤,让护送从"走过去"变成"用走位与身体为友军挡枪"。
- 务实的反作弊 —— 单机客户端权威下,用"HMAC 一次性票据 + 绑定 IP + 分数合理性上限"挡住裸刷/重放/盗用,并在文档中诚实声明其边界。
- 零依赖、可单测、可无头集成验证 —— 纯原生 JS;DOM 无关逻辑全单测,并用桩出的 DOM/Canvas 做"真跑上千帧"的无头集成冒烟,CI 全绿。
| 输入 | 行为 | 输入 | 行为 |
|---|---|---|---|
W A S D |
移动 | 1 / 2 / 3 |
切换武器槽 |
| 鼠标 | 瞄准 | E / F |
交互 / 拾取 |
| 左键 | 射击 | Q |
破片手雷(按住预瞄,松开投掷) |
R |
换弹 | G |
烟雾弹(按住预瞄,松开投掷) |
Shift |
冲刺 | M |
放大地图 |
Space |
翻滚(无敌帧) | Esc |
暂停 |
Tab |
目标面板 | F3 |
性能面板 |
ES Modules 不能用 file:// 直接打开,需经 HTTP 提供。任选其一:
# A. 纯静态(离线模板叙事)
python -m http.server 5173 # 或:npx serve .
# 浏览器打开 http://localhost:5173
# B. 带 Node 代理(启用在线 LLM + 排行榜,零三方依赖,Node ≥ 18)
cd server
cp .env.example .env # 填 ANTHROPIC_API_KEY(留空也能跑,自动用模板)
node server.js # http://localhost:8787npm test # 逻辑单测 (66) + 无头集成冒烟 (20)tests/run.js:地图连通/可达/可重现、A*、DDA 边界、配置一致性、存档/LLM 净化、投掷物落点预测、烟雾遮挡、目标类型、人质护送结算、排行榜净化 —— 66 项。tests/smoke.js:桩出 DOM/Canvas,真实构造 App 并跑完整流程 + 上千帧作战循环 + 投掷/烟雾/解救/排行榜降级 —— 20 项。
src/
├─ main.js # App / 顶层状态机(菜单→简报→作战→结算)
├─ match.js # 一局会话:装配 ctx、目标/撤离/经济/胜负/人质
├─ config/ # game / weapons / enemies / balance —— 数值基线(单一事实源)
├─ core/ # loop(固定步) / input / math / rng(可重现) / events / pool(对象池) / storage / state
├─ world/ # mapgen(BSP) / tilemap+LOS / cover / spawn / camera
├─ entities/ # player / enemy / bullet / pickup / particle / throwable
├─ ai/ # fsm(行为) / states / perception(FOV+听觉+烟雾) / pathfinding(A*) / squad / dda
├─ systems/ # combat / collision / render(离屏缓存+裁剪) / particles / audio(合成) / spawnDirector
├─ ui/ # hud / minimap / menu / loadout / briefing / result / widgets
├─ llm/ # client(代理+降级) / fallback(模板) / prompts(模板化防注入)
└─ services/ # leaderboard(取票→提交)
server/ # 零依赖 Node:静态托管 + /api/llm 代理 + /api/leaderboard(票据/限流/校验)
docs/ # 8 份设计与测试文档
| 模块 | 职责亮点 |
|---|---|
core/loop |
固定时间步 60Hz + 渲染插值 + 防螺旋死亡 |
core/pool |
定长对象池(敌 64 / 弹 512 / 粒 1024),零 GC 抖动目标 |
world/mapgen |
BSP+走廊+掩体+flood-fill 连通校验,种子可重现 |
ai/fsm + perception + pathfinding |
10 态 FSM、FOV/视线/听觉/烟雾感知、A*(octile+缓存+分帧预算)、小队 LKP |
ai/dda |
表现分(EMA)→四旋钮(硬边界+限幅+新手保护) |
systems/render |
6 层分层、离屏地面缓存、视锥裁剪、相机震屏/前瞻 |
llm/* + server |
代理化 LLM(密钥仅服务端)+ 净化 + 全链路降级 |
| 文档 | 说明 |
|---|---|
| docs/00-game-concept.md | 设计纲要(单一事实源) |
| docs/01-PRD.md | 产品需求文档 |
| docs/02-tech-design.md | 技术方案实现 |
| docs/03-ui-design.md | UI 设计 |
| docs/04-security-test.md | 安全测试 |
| docs/05-performance-test.md | 性能测试 |
| docs/06-functional-test.md | 功能测试 |
| docs/07-deployment.md | 部署指南 |
- v1.3.1 —— 开源协议由 The Unlicense 改为 MIT。
- v1.3 —— 人质护送张力(误伤/护送奖励);排行榜启发式反作弊(票据绑定 IP + 分数合理性上限)。
- v1.2 —— 手雷落点预瞄;解救人质目标;排行榜 HMAC 一次性签名票据防重放/裸刷。
- v1.1 —— 投掷物(破片/烟雾);扩展关卡目标(hack/destroy);在线排行榜后端。
- v1.0 —— 首个可玩版本:四维 AI、两种模式、完整循环、7 份文档。
本项目采用 MIT License —— 可自由复制、修改、商用、再发布,仅需保留版权与许可声明。
本项目为原创玩法实现,与艺电(EA)《三角洲行动 / Delta Force》商标无关联,仅为同类玩法的 AI 技术演示。



