Files
SoundGame/README.md
T
xsl 4b39ae2e49 feat(new8/batch3-4): cipher/teahouse/keeper/bridge 全套交付——new8 八款全部可交付收官
四泳道并行全流水线(资产→开发→测试→玩家迭代闭环),双双 R1-R2 连续达标裁定可交付:
- cipher《暗码》223 断言:摩尔斯解码嵌叙事/四结局矩阵/暴露度逐NIGHT验算/三层兜底;R2 三修(链首标记音/预警震/结局计数句+4句补录)4/4 全满分档
- teahouse《深夜茶馆》205 断言:泡茶时机窗/经济逐晚对账/多晚弧线;连续 2 轮 4/4 愿意玩 P0=0
- keeper《守塔人》257 断言:时空签名教学-兑现/插叙触发回返/trust×truth 档位/4结局;R2 F1/F2 坐实(震型豁免/首播跳句锁)4/4
- bridge《星环舰长》336 断言:巡检节奏逐毫秒/危机×系统态矩阵/仲裁7场景/忠诚差分/评级验算;R1 当场修F1-F4、R2 F5 菜单顺延保护 4/4 上行

公共:index.html 四卡片+profiles.js 四桶+check_all_assets 登记(预接线)、00-program 八款进度账收账、
gen_voice_dual 四游戏段、README/HANDOVER 阵容更新(11 款)、voice_text.json 四游戏键、mureka 台账(累计$1.26/$2.00)

验证:四游戏 playtest 223/205/257/336 全绿 + guide 122/122 + 全项目 15 游戏资产终检绿
遗留:keeper 三代人声滤波人耳试听(最高优先,ASR 对滤波句失明)、bridge 音频 32MB 超软指引 2MB(压缩候选)
2026-09-14 05:48:13 +08:00

148 lines
8.2 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.
# SoundGame — 纯音频手机游戏
11 款纯音频游戏(HTML5,另 3 款有停迭代的旧 Android 版):屏幕只有一张封面图,全部操作只有 6 种手势
(上滑 / 下滑 / 左滑 / 右滑 / 单击 / 双击),所有内容靠音频呈现。
对白由本地 Qwen3-TTS 生成(男声/女声双套资产),音效用 Stable Audio 3 + 程序合成,
BGM 用 Mureka API 生成 + 程序合成。
## HTML5 版(推荐,浏览器即玩)
无需安装 App,手机浏览器打开即玩(Android Chrome / iOS Safari / 鸿蒙 ArkWeb 均支持,
音频提供 ogg + m4a 双格式)。
线上:<https://game.xiangsilian.com/>(Nginx 静态托管,无用户 API;部署见 `docs/deploy.md`)。
```bash
./web/serve.sh # 启动 Node 服务器(静态 + 用户系统 API,默认端口 8000)
```
打开后进入游戏大厅。大厅提供:
- **用户系统**:用户名 + PIN 注册/登录,游戏进度保存在服务器(`web/server/`)
- **全局设置**:旁白音色(男声/女声)、语速(正常/快/特快)、背景音乐(正常/小/关闭)
- 所有游戏用**震动反馈**交互(确认/错误/成功/警告各有震型;iOS 不支持震动,静默降级)
11 款游戏:
- **《暗码》** `web/cipher/` — 1940 密战叙事 RPG(new8 批次 3):双重间谍报务员,
摩尔斯电文解码嵌叙事,身份暴露度=隐藏资源,4 结局
- **《深夜茶馆》** `web/teahouse/` — 经营养成 RPG(new8 批次 3):多晚连续剧,
泡茶时机窗 + 服务抉择,攒口碑升级店铺
- **《守塔人》** `web/keeper/` — 孤岛灯塔叙事 RPG(new8 批次 4):风暴夜时间轴 +
回忆插叙(音色区分三代人声),trust×truth 档位,4 结局
- **《星环舰长》** `web/bridge/` — 舰桥指挥 RPG(new8 批次 4):四象限系统方位音管理 +
危机事件卡 + 船员忠诚 + 巡逻评级
- **《围猎》** `web/hunt/` — 2-4 人实时联机协作守卫(纯音频 MMORPG 路线第一阶段切片):
夜幕下野兽从八方逼近营地,听声辨向滑出出击、单击呼喊队友补位、双击旋风斩,
撑过 5 波天亮就赢。**联机必须用 `./web/serve.sh` 启动的 Node 服务器**
(WebSocket 服务端权威;公网纯静态托管只可进大厅,不能开局)
- **《剑与声》** `web/rpg/` — 纯音频回合制 RPG(新作):盲剑客题材,节点式场景探索 +
回合制战斗(听前摇音双击格挡)+ 升级/装备/金币 + 服务器存档,第一章完整可玩
- **《声命线》** `web/storyline/` — 末世互动广播剧:3 幕 8 抉择 4 结局,
左右滑做抉择,单局 5-7 分钟
- **《暗室》** `web/escape/` — 密室逃脱解谜(已重设计):手把手开场引导 +
卡关分级提示(60s 暗示 / 120s 明示 / 180s 带路),3x3 房间 4 步谜题链
- **《音序回响》** `web/simon/` — 音频记忆游戏(已重设计):无 BGM 纯交互音,
交互式教学、重听机会机制、轮次整句播报
- **《节拍行者》** `web/rhythm/` — 跟随领奏节奏游戏(已重构):系统奏一小节节奏型、
玩家跟打复现,手势触发同调性打击乐器音,3 首曲目(90/105/120 BPM)解锁制 + S~C 评级
- **《盲航》** `web/space/` — 太空盲飞躲避(已重构):同向闪避(左来左滑)、
交互式演练教学、60 秒保护期、单击加速双击护盾
Web 引擎文档见 `docs/web-engine-api.md`;服务器 API 见 `web/server/README.md`;
公网部署见 `docs/deploy.md`;设计文档在 `docs/design/`;资产管线文档在 `docs/audio/`。
## 三款游戏(Android 版,已停止迭代)
注意:Android 版停留在初版,所有重设计/新功能(双音色、设置、震动、用户系统)
只在 HTML5 版。鸿蒙(HarmonyOS NEXT)无法安装 APK,请用 HTML5 版。
### 1. 《声命线》(storyline) — 末世互动广播剧
大停电后第 30 天,前急救员林晚靠一台旧收音机寻找妹妹,对抗抢掠者"猎狗"。
3 幕、8 个抉择点、4 种结局,单局 5-7 分钟。
- 单击:继续剧情 / 结局后重开
- 双击:重听当前节点
- 左/右滑:关键抉择
- 上滑:帮助 + 当前幕进度
- 下滑:菜单(重新开始)
### 2. 《声东击西》(reflex) — 听声辨位反应
敌人从四方位来袭:左右 = 立体声声像,上 = 高音琶音,下 = 低音轰击。
教学 → 12 波战斗(节奏递增、BGM 三档变速)→ 结算播报得分。
- 四向滑动:击杀对应方位敌人
- 单击:格挡正面攻击(警报音提示)
- 双击:全屏技能(12 秒冷却)
### 3. 《暗室》(escape) — 密室逃脱解谜
3x3 黑暗房间网格探索,环境音线索(滴水/风声/机器嗡鸣)烘焙了方位感。
解谜链:钥匙 → 铁柜 → 保险丝 → 电箱 → 最终大门。
- 四向滑动:在房间间移动(撞墙有反馈)
- 单击:检查房间 / 拾取物品
- 双击:使用物品(无目标时播报背包+提示)
## 构建
```bash
source env.d/android.sh # JDK 17 / Android SDK / ffmpeg
./gradlew assembleStorylineDebug assembleReflexDebug assembleEscapeDebug
```
APK 输出在 `app/build/outputs/apk/<flavor>/debug/`:
| 游戏 | APK | 包名 | 大小 |
|---|---|---|---|
| 声命线 | app-storyline-debug.apk | com.soundgame.storyline | ~19.6MB |
| 声东击西 | app-reflex-debug.apk | com.soundgame.reflex | ~14.2MB |
| 暗室 | app-escape-debug.apk | com.soundgame.escape | ~15.4MB |
安装:`adb install app/build/outputs/apk/storyline/debug/app-storyline-debug.apk`
(真机调试优先无线调试:`adb pair` + `adb connect`,详见 `env.d/android.md`)
## 文档
- `docs/setup.md` — 从零环境搭建手册(WSL2 用户态安装、AI 环境、镜像速查、故障排查)
- `docs/deploy.md` — 公网部署(`game.xiangsilian.com`,Nginx 静态,与简历站共存)
- `docs/architecture.md` — 引擎架构(模块划分、音频三层时序、手势参数、已知限制)
- `docs/engine-api.md` — 引擎 API(如何开发一款新游戏)
- `docs/asset-pipeline.md` — 资产生产流水线(TTS / 音效 / BGM 生成与规格)
- `docs/games/storyline.md` — 《声命线》设计文档(剧情树、音色分配)
- `docs/games/reflex.md` — 《声东击西》设计文档(波次表、难度曲线)
- `docs/games/escape.md` — 《暗室》设计文档(房间地图、谜题链)
- `env.d/` — 环境与使用说明(android / tts / sfx)
## 工程结构
- `app/src/main/` — 共享引擎:GestureEngine(6 手势识别)、
AudioEngine(ExoPlayer BGM/对白分层 + ducking,SoundPool 低延迟音效)、
Game/GameEngine 状态机接口、MainActivity(全屏封面 + TalkBack)
- `app/src/<flavor>/` — 各游戏:Game 实现、assets/audio/{bgm,voice,sfx}、
封面图、`gen/`(音频资产生成脚本,可复现)
- `docs/` — 项目文档(见上方"文档"一节)
- `env.d/` — 环境与使用说明(android / tts / sfx)
- `tools/`、`models/` — 本机 AI 环境(Qwen3-TTS、Stable Audio 3、ffmpeg)
## 音频资产再生成
```bash
source env.d/tts.sh # HF_HOME、镜像
# 例:重新生成《声命线》全部语音(flock 串行保护 GPU)
flock .gpu.lock .venv-tts/bin/python app/src/storyline/gen/gen_voice.py
```
## 待办(需要账号操作)
- **Stable Audio 3 音效**:环境已就绪(token 已配、模型已下载、CLI 冒烟通过,
见 `env.d/sfx.md`)。程序合成音效可按 `docs/asset-pipeline.md` 逐步升级替换
(同名同目录替换,游戏代码零改动)
- **Mureka 歌曲/配乐**:已完成。《声命线》(dark_drone.ogg) 与《暗室》(drone.ogg)
的 BGM 已用 Mureka instrumental API 生成并无缝循环化处理后替换(生成/调用记录见
`tools/mureka_log.md`,脚本 `tools/mureka_gen.py`,原合成版备份在
`tools/bgm_backup/`)。《声东击西》的 3 个 BGM 保留程序合成版:
其玩法要求 100/128/152 BPM 三档脉冲随波次精确切换,AI 生成曲目 BPM
不精确会破坏玩法机制
- **真机听测**:三款游戏均只验证到构建层面,手感参数(反应窗口、
响度平衡、立体声分离度)需要实机试听调整