Files
SoundGame/README.md
T
SoundGame Dev cc0f8c008d HTML5 重写:6 款游戏 + 用户系统 + 全局设置 + 5 轮迭代重构
- 新增 web/ 纯音频 HTML5 平台:共享引擎(手势/WebAudio 三层/设置/震动)、
  Node 零依赖服务器(静态 + 注册登录 + 进度存档 API)
- 游戏:剑与声(RPG 新作)、声命线、暗室(重设计)、音序回响(重设计)、
  节拍行者(跟随领奏重构)、盲航(同向闪避重构);声东击西删除
- 全局功能:男声/女声双套 TTS 资产、三档语速、BGM 音量三档、
  震动反馈语言(10 种震型)、服务器进度同步
- 资产:899 ogg + 899 m4a(Qwen3-TTS 双性别语音、Stable Audio 3 音效、
  Mureka BGM 4+3 首),终检零缺失
- 文档:docs/design/ 13 篇设计审查文档、docs/audio/ 资产管线、
  web/server/README.md API 文档
2026-08-29 21:55:44 +08:00

133 lines
6.8 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 — 纯音频手机游戏
6 款纯音频游戏(HTML5 为主,3 款另有 Android 版):屏幕只有一张封面图,全部操作只有 6 种手势
(上滑 / 下滑 / 左滑 / 右滑 / 单击 / 双击),所有内容靠音频呈现。
对白由本地 Qwen3-TTS 生成(男声/女声双套资产),音效用 Stable Audio 3 + 程序合成,
BGM 用 Mureka API 生成 + 程序合成。
## HTML5 版(推荐,浏览器即玩)
无需安装 App,手机浏览器打开即玩(Android Chrome / iOS Safari / 鸿蒙 ArkWeb 均支持,
音频提供 ogg + m4a 双格式)。
```bash
./web/serve.sh # 启动 Node 服务器(静态 + 用户系统 API,默认端口 8000)
```
打开后进入游戏大厅。大厅提供:
- **用户系统**:用户名 + PIN 注册/登录,游戏进度保存在服务器(`web/server/`)
- **全局设置**:旁白音色(男声/女声)、语速(正常/快/特快)、背景音乐(正常/小/关闭)
- 所有游戏用**震动反馈**交互(确认/错误/成功/警告各有震型;iOS 不支持震动,静默降级)
6 款游戏:
- **《剑与声》** `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/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/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
不精确会破坏玩法机制
- **真机听测**:三款游戏均只验证到构建层面,手感参数(反应窗口、
响度平衡、立体声分离度)需要实机试听调整