Files
SoundGame/web/hunt/README.md
T
xsl 005851d01a feat(hunt): 《围猎》2-4人实时联机纯音频协作守卫——纯音频MMORPG第一阶段切片
- 设计:docs/design/23-hunt.md + voice-ids(84 id,166条)+ 13号断言登记,§15记录10+1条设计裁决
- 服务器:零依赖WebSocket(ws.js)+ 房间管理/服务端权威战斗/bot AI(hunt-room.js),断线30s宽限resume回槽、超时转bot;修复package.json模块类型误判的既有破坏
- 客户端:web/hunt/ 全套(教学T0-T4/听觉视野裁剪R1-R8/结算排行榜/guide接入),playtest 211断言
- 引擎:audio.js 后向兼容 opts.pan(StereoPannerNode),web-engine-api.md 同步
- 资产:166条TTS语音(QC无离群)+ 13件合成sfx(真峰值≤-3dBFS)+ 2首Mureka BGM,终检全绿
- 平衡:bot调参至挂机局71%失守/C、3bot局71% A/B(hunt-balance-scan.mjs 24种子扫描)
- 接线:大厅卡片、profiles.js hunt桶、README/roadmap MMO路线条目

验证:hunt-sim 16/16 + api-smoke 12/12 + hunt playtest 211/211 + 既有10游戏与引擎回归零回退 + 真服务器WS端到端冒烟通过
2026-09-13 11:08:01 +08:00

59 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 围猎(HUNT · Night Hunt)
2-4 人实时联机纯音频协作守卫。夜幕降临,野兽从四面八方围上来——你和队友
背背守住营地篝火,**听声音的方向滑过去就是一刀**,撑过五波,天亮就赢。
> 本作是"纯音频 MMORPG"路线的第一阶段最小验证切片:实时同步(零依赖
> WebSocket + 服务端权威)、音频信道拥挤控制(R1-R8)、空间音频协作
> (方位=声像 pan + 防区分工)。设计全文见 docs/design/23-hunt.md。
## 玩法
- 圆形猎场,猎人位于营地中心篝火旁。野兽从 **8 个罗盘方位**的边缘逼近
(全程 8-12 秒):**声像就是小地图**——狼的碎步、熊的重步从它所在的
方向传来,越近越响;后半平面(身后)的声音会发闷(音量 ×0.6)。
- **突入中心 = 营地耐久受损**(饿狼 -1,暴熊 -2;初始 10,全队共享)。
耐久归零 = 营地失守(立即终局);撑过 5 波 = 胜利结算(评级 S~C)。
- 同刻最多只有**最近的 3 只**野兽的脚步可闻(听觉视野裁剪);6 秒外的
野兽只有生成时的一声呼啸。**威胁播报只说近处有几只,不报方位**——
方位永远靠耳朵听声像。
- 空位由 bot 猎手补齐(开局至少 3 猎人):阿岩(憨厚男声)、小筝(轻快
女声)、老周(沙哑老年男声)。bot 的喊话从它防区的方向传来;断线 30 秒
内重连可回槽,超时由老猎手(bot)顶上。
## 手势
| 手势 | 战斗态(WAVE) |
|---|---|
| 四向滑 | **出击**:滑向映射 90° 弧(上→北弧、右→东弧、下→南弧、左→西弧),击杀弧内贴近(≤4 秒)最近一只;冷却 2.5 秒。**上/下滑弧内无可打怪时**:上滑=状态链、下滑=菜单(三件套保留的语境折中) |
| 单击 | **呼喊支援**:队友收到你防区方位的空间化喊话 + 警告震动,空闲 bot 朝你侧补位 10 秒;节流 5 秒 |
| 双击 | 旋风斩**就绪** → 放出(清全场内圈,冷却 8 秒,冷却完成有语音提示);**冷却中** → 重新听威胁播报 |
| 上滑 | 状态链:营地耐久档 → 波次档 → 在场猎人数 → 自己击杀档 |
| 下滑 | 菜单(**不暂停**——联机实时,菜单开着怪物照走) |
| 长按 | 旁白快进(引擎内置) |
标题/大厅/结算遵循全局约定:单击=快速匹配/立即开局/再来一局,双击=重听,
上滑=个人最佳/在场猎人/最佳段,下滑=菜单。菜单固定 3 项:回到猎场 /
重新听帮助 / 退出房间回大厅(单击循环、双击确认、下滑关闭)。
## 教学(首局)
首次进入自动开**教学房**(单人 + 2 bot,教学波零惩罚):T0 规则总述 →
T1 朝声音方向滑杀教学狼 → T2 单击呼喊听 bot 应答 → T3 双击旋风斩 →
T4 上滑状态链;任意时刻下滑跳过。教学完同场直接接续第 1 波。
## 运行
```bash
bash web/serve.sh # Node 零依赖服务器(静态 + REST + /ws/hunt 同端口)
# 浏览器打开 http://<局域网地址>:8000/hunt/ ,2-4 人同 WiFi 各开一页即同局
```
## 测试
```bash
tools/node/bin/node web/hunt/test/playtest.mjs
# 无头试玩:虚拟时钟 + mock 浏览器环境 + 内存回路 WS mock(按 23 §6 协议
# 注入 joined/ev/snap/err),覆盖 13 号文档 §24 客户端侧全部断言
```