Files
SoundGame/docs/design/roadmap.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

10 KiB
Raw Blame History

SoundGame 后续路线图(策划,最终轮)

范围:R5(RPG 收尾)之后的事。分五块:RPG 内容扩展、storyline 打磨、真机听测、商业化前置、纯音频 MMORPG 路线。 设计基准文档索引见 README.md;审查结论见 round1/round2/round3-4-review。


1. RPG《剑与声》第二/三章扩展计划

第一章模式已定型(场景图 JSON + 战斗状态机 + 台词表三件套),二三章是内容灌入而非新开发。

1.1 第二章《腐沼泽》(7 节点)

项 内容
场景 沼口村(商店:青钢剑 300/铁鳞甲 250)→ 腐叶径 → 浅滩(岔路:鳄巢宝箱)→ 瘴气林 → 蛊师祭坛(NPC 支线)→ 祭主殿门 → Boss 腐沼祭主
新机制 毒状态(中毒后每回合 -3 HP,金疮药可解;中毒播报走整句分档);蛊师敌方先攻(B_START → ENEMY_TELEGRAPH,状态机已支持)
敌人 沼泽鳄(HP30 ATK11 DEF2)、蛊师(HP22 ATK12 DEF1,先攻)+ 一章怪复用降档
Boss 腐沼祭主 HP70 ATK14 DEF3;半血二阶段召唤 2 毒蛛(连战队列插入,机制已有)
解锁 一章 Boss 胜后 chapters.2 = open;章首旁白承接 evt_ch1_end 字条

1.2 第三章《无瞳峰》(7 节点)

项 内容
场景 山道驿站(商店:听风剑 600,格挡窗口 1.0→1.3s)→ 风啸崖 → 断桥(岔路)→ 剑冢(机关战斗)→ 影廊(影卫首战,无声前摇教学)→ 峰顶 → Boss 白无瞳
新机制 无声前摇(震动协议见 05-rpg-addendum §2,影卫铺垫 → 白无瞳三阶段完全无声);iOS 兜底=防御指令
敌人 剑傀(HP38 ATK14 DEF3)、影卫(HP30 ATK16 DEF2,无声)
Boss 白无瞳 HP110 ATK18 DEF5,三阶段(≤50% / ≤25% 转换,三阶段进场播 npc_boss3_warn)
完结 终章结算用专属完结句(不复用"前往下一章",round5-notes §3 教训)

1.3 排期与资产

  • 台词表:ch2/ch3 各一份(沿用 05-rpg-ch1-voice-ids.md 格式,每章约 60-80 句;最小集见 05-rpg-addendum §5)。策划补发 → 音频总监录制(各 1 轮)。
  • BGM:复用现有 4 首 + 每章新增场景 amb(amb_swamp*、amb_peak*,05-rpg-chapter1 §7.2 已含)。
  • 建议节奏:内容扩展 A 轮(ch2 台词+灌入)→ B 轮(ch3 台词+灌入+终章完结句)→ 与真机听测并行。

2. storyline《声命线》打磨项(一直没重构,逐项跟进)

# 事项 现状 动作
1 菜单约定统一 现版 down=菜单(左滑重开/右滑单击返回/上滑帮助),是裁决②之前的私有约定 统一到 00 §5.2:下滑呼出 → 单击循环 → 双击确认 → 上滑帮助;菜单句 voice/menu 需按新口径重录(×2 性别)
2 knowTrap 死标记修复 game.js:229 只写不读:n09 右滑获得"北区陷阱情报"后无任何分支消费它 先读 docs/games/storyline.md 剧情树定接入点:在北区相关节点读取 knowTrap,解锁"绕开陷阱"分支或改变死亡结局判定;预计需补录 1-2 句分支台词(角色音:林晚 Serena / 旁白双性别)。若剧情树无合适节点,降级方案=删除该标记与台词里的伏笔句
3 角色音色在双性别目录的处理 R1 裁定:旁白双性别(male=Uncle_Fu/female=Vivian),角色台词单音色平铺靠引擎回退(round1-report §3),资产侧未复制 终案确认:维持平铺回退(引擎已支持,零成本);把"平铺回退是正式机制"写进 web-engine-api 的目录约定(开发顺手改)。试听确认点:female 旁白(Vivian)与小满/林晨/广播(同 Vivian 不同 instruct)的区分度
4 提示音替换排查 sfx/ui_confirm、sfx/ui_menu 仍在选择确认/菜单处使用 按反馈⑦替换:选择确认删 ui_confirm(引擎内置震动已覆盖),菜单打开删 ui_menu;剧情氛围 sfx(water/whistle/wind 等内容音)保留
5 进度 summary storyline 无存档(单局 5-7 分钟,一次性剧情) 轻量方案:记录"已达成结局 X/4",summary="已见 2/4 结局";结局解锁存 localStorage+服务器,大厅卡片有内容可显示
6 双性别 QC 36 id ×2 已生成 抽听 female 版旁白与角色音的衔接(旁白切角色时音色跳跃是否出戏)

3. 各游戏存量打磨小项(来自各轮审查遗留)

  • rhythm:结算右滑末位修正 + 补录 no_more_song;震动 200ms 去抖(round3-4-review §3 裁定①④)。
  • escape:PLAY 中双击兜底链末尾加"再双击一次回大厅"二级入口(补录 menu_hint ×2 性别,round2-review §5.1)。
  • simon:voice/wrong 冗余资产清理或启用(round2-review §5.2)。
  • 大厅:设置变更试听句(00 §1.2,一直未做)。
  • 全合集:平铺旧 voice 文件清理(storyline/rhythm/space 的残留,音频侧执行)。

4. 真机听测 checklist(用户拿手机逐项打钩)

通用前置:安卓 Chrome + iOS Safari 各过一遍;戴有线耳机测一轮、蓝牙耳机测一轮(延迟差异);iOS 项注意"无震动"是预期行为。

全游戏通用(2026-09 新增,来自真机人耳反馈):

  • 句尾完整性:随机抽 10 句长短不一的对白听到自然收尾,末字/语气词(了/吧/呀)不缺失、不被下一句或音效咬尾(引擎已固化排空机制 + web/harness/engine-voice.test.mjs 回归;本项验真机实际听感与打断时序)

声命线 storyline

  • 旁白切角色音时不出戏(重点:female 旁白 vs 小满/广播的 Vivian 家族)
  • 8 个抉择点左/右滑方向与选项播报一致
  • 4 结局至少打通 2 条,结局后单击重开正常
  • (打磨后)菜单单击循环/双击确认,无误触发重开

暗室 escape

  • 引导 G0-G7 全流程不卡(含故意做错 3 次触发直白重述)
  • 9 个房间听环境音能区分储物间/铁柜/电箱/大门(闭眼走一遍)
  • 卡关提示计时手感:60s/120s/180s 出现时机不烦人(真机挂一次 3 分钟)
  • 单击重听环境音:amb 与描述语音的 800ms 间隔自然
  • 用时 4 段播报与实际耗时匹配

音序回响 simon

  • 无 BGM 的静默不尴尬(开场 0.5s + 轮次间隙)
  • 播放序列的 beat 轻震与音色对齐(安卓机能感到节拍锚点)
  • 双击主动重听:期望输入是 doubletap 时按答题处理(裁定①场景实测)
  • 第 10 轮后的速度(420ms 下限)可跟
  • 成绩分档句与实际轮数匹配

节拍行者 rhythm

  • Perfect ±120ms 窗口:有线耳机能稳定 Perfect,蓝牙耳机 Good 为主(不挫败)
  • tap 补偿:底鼓音(1/3 拍)判定不冤
  • 下滑菜单折中:演奏中误开菜单 / 想开开不了 各试 5 次
  • 菜单暂停后 BGM 断点续播节拍不漂
  • 三首 BGM 与乐器音调性协和、响度平衡(乐器音不被 BGM 淹没)

盲航 space

  • 同向闪避直觉性:不测老玩家,找一个没玩过的人 30 秒内能否理解
  • 演练 D1-D4 每步"语音先、whoosh 后"不叠放
  • 保护期 60s 内被撞不掉血且归因句听清
  • 满级段(存活 90s+)密度:过密则把 spawn 下限 1.2→1.35(round3-4 裁定③旋钮)
  • 警报两档渐强 + danger 震动的时间感(撞击前 1s/0.5s)

剑与声 rpg(R5 完成后)

  • 格挡窗口:8 种敌人前摇音都能听出并双击成功(重点:头目重甲 vs 野狼低吼的区分)
  • 无声敌人(若 ch3 已做):danger+heartbeat 震动节奏可格挡;iOS 上确认防御指令兜底
  • 战斗 BGM 与场景 amb 切换不突兀;bgm=0 设置下 amb 照播
  • 商店购买/缺钱/已购播报语境正确
  • 存档继续:杀进程重进,summary 与落点正确

5. 商业化前要做的事

  1. Stable Audio 3 许可确认:核对当前账号/模型的商用授权条款(训练数据与生成物的商用权利、署名要求);所有 SA3 生成 sfx 的资产清单(id → 生成日期 → prompt)落盘存档(docs/audio/asset-manifest.md 扩展)。
  2. Mureka 曲目版权落盘:确认 API 生成音乐的商用授权范围与归属条款;把 tools/mureka_log.md 整理为正式曲目登记表(曲目 → 生成时间 → 授权凭证/订单号);离线保存原始生成文件与凭证截图。
  3. Qwen3-TTS 许可:核对模型协议(Apache 2.0 系/通义许可)对生成语音商用的要求;在 About/致谢页列模型名。
  4. 字体许可:封面生成用 NotoSansSC(OFL),保留 OFL 许可证副本,允许商用但需随附声明。
  5. 隐私政策:用户系统当前是局域网玩具级(PIN 明文、token 不过期——web/server/README 已自声明)。公网化前必须:PIN 加盐哈希、token 过期机制、HTTPS、最小化收集声明、账号删除入口;写隐私政策页(收集:用户名+游戏进度;不收集:设备信息/位置)。
  6. 付费墙设计预留(如需):进度 API 加 entitlements 字段的位置先留好;不要在现有 data 自由格式里埋付费标记。
  7. 合规扫尾:无年龄分级素材问题(武侠战斗无血腥音效——atk_hit prompt 已注明 not gory,保持);商店/内购若上 iOS 需走 IAP 不能用网页支付(届时再议)。

6. 纯音频 MMORPG 路线(第一阶段切片已落地)

  • 第一阶段(已落地):《围猎》hunt(23-hunt.md)——2-4 人实时联机协作守卫, 验证三个切片命题:零依赖 WS 实时同步 + 服务端权威战斗、音频信道拥挤控制 R1-R8、 pan 空间音频协作(呼喊-补位闭环)。
  • 后续步骤(切片纪律外事项,先列 research/ 方向调研,不在本 roadmap 排期): 持久世界与跨房聊天、跨玩家排行榜、房码音频录入 UX(协议 join.room 已留,客户端 v1 只做快速匹配)、 更大规模同图协作的拥挤模型扩展。真机听测时按 23-hunt §8.4 口径补一轮"三源分辨"听测项。

7. 建议顺序

  1. R5 收尾(RPG 第一章上线)→ 2. §3 存量打磨小项(半天级)→ 3. 真机听测 §4(用户执行,反馈回来后定参数旋钮)→ 4. storyline §2(与听测并行)→ 5. RPG ch2/ch3 §1 → 6. 商业化 §5(决定公网化时再启动)。