- 01-identity:推荐自动匿名档案(首访 0 交互)+ Netflix 式切换器 + 配对码跨设备;passkey 因 LAN HTTP 不可用否决;审计出 7/8 游戏跨设备只 PUT 不 GET、大厅零 aria、玩家名不可朗读三个存量问题 - 02-input-parity:方向键/WASD+空格+回车(双击即时)键位(audiogames 社区惯例同构);语音双套资产路线(153 句含操作词,306 TTS/37min);MVP ~200 行 1-2 人日 - 03-data-sync:设备 token 即档案、localStorage 按 profileId 分桶(修同设备串档)、桶级 LWW + baseUpdatedAt 守卫、claim 可选认领 + PIN scrypt;公网前 8 条清单 - 00-synthesis:需求映射 + 架构收敛 + P0/P1 分期 + 3 个待拍板决策点
52 lines
3.3 KiB
Markdown
52 lines
3.3 KiB
Markdown
# 平台能力调研汇总 — 无感用户系统 + PC/手机双端一致
|
||
|
||
> 三路并行调研的汇总与实施方案建议(2026-09-08)。分报告:[01-identity](01-identity.md) 身份方案 | [02-input-parity](02-input-parity.md) 键盘与双端 | [03-data-sync](03-data-sync.md) 数据架构。
|
||
|
||
## 1. 用户需求 → 方案映射
|
||
|
||
| 需求(用户原话) | 方案 |
|
||
|---|---|
|
||
| 支持多玩家访问,不想影响体验 | 自动匿名档案:首访 0 输入 0 点击,服务器静默建档发 token |
|
||
| 不让用户注册 | 注册降级为可选「认领」(给档案起名 + 设 PIN),永不弹窗 |
|
||
| 能区分用户、保留状态 | 设备 token 即档案;localStorage 按 profileId 分桶(修掉现状同设备串档 bug);进度按游戏分桶 LWW 同步 |
|
||
| PC 键盘操作 | 方向键/WASD=滑动、空格=单击、回车=双击(即时)、按住空格=长按;游戏代码零改动 |
|
||
| PC 画面提示 | 输入模式自动检测 + 手动覆盖;HTML 文案随模式切换 |
|
||
|
||
## 2. 推荐架构(三报告收敛)
|
||
|
||
```
|
||
首访浏览器 ──POST /api/device──> 匿名档案 {profileId, token}(0 交互)
|
||
本地:localStorage 按 profileId 分桶(进度主存 + 异步上传)
|
||
同设备多人:大厅「切换玩家」档案切换器(倒灌/回灌 localStorage,游戏零改动)
|
||
跨设备:旧设备出示 6 位配对码(语音逐位播报)→ 新设备输入 → 合并
|
||
认领(可选):给档案命名 + 设 PIN(scrypt 哈希);旧数据按桶 LWW 合并
|
||
键盘:gesture.js 键盘通道喂现有状态机(~120 行)+ 启动遮罩键盘解锁 + settings.input
|
||
语音:双套资产 voice/<gender>/key/(153 句 ×2 性别,TTS 306 生成/37 分钟音频)
|
||
```
|
||
|
||
**关键否决/发现**:
|
||
- passkey 否决为主方案:WebAuthn 在局域网 HTTP 私有 IP 下不可用(W3C secure context)
|
||
- 存量 bug 三连:① 7/8 游戏跨设备只 PUT 不 GET(换设备进度不回拉);② localStorage 单桶(同设备换人登录会串档污染);③ 大厅零 aria、玩家名不可朗读
|
||
- 语音路线 c(不动语音只改文字)不能作终态:AppleVis 社区明确批评过无键盘等价命令的音频游戏
|
||
|
||
## 3. 分期实施
|
||
|
||
### P0 最小可用(约 3-4 人日,无 TTS)
|
||
1. gesture.js 键盘通道 + 遮罩解锁 + settings.input(自动检测+手动覆盖)+ 大厅/遮罩文案适配
|
||
2. `/api/device` 匿名档案 + localStorage 分桶 + PUT baseUpdatedAt 守卫 + GET 回拉(修存量三 bug)
|
||
3. PIN scrypt 哈希(十行级)
|
||
4. 大厅档案切换器(自动命名「玩家一」,earcon 签名 + 编号音可听化)
|
||
5. playtest/guide 回归 + engine-voice + live 键盘通道
|
||
|
||
### P1 完整版(+1 GPU 晚 + 1-2 人日)
|
||
6. 153 句键盘措辞 ×2 性别 TTS 双套资产 + 引擎 input 资产路由
|
||
7. 6 位配对码跨设备(含逐位播报的「数字单音」拼接豁免裁定)
|
||
8. 可选认领(命名+PIN+旧档案 LWW 合并)
|
||
|
||
### 公网前(03 报告 §6 的 8 条,另计)
|
||
|
||
## 4. 待产品拍板
|
||
- D1 首访命名:全静默(自动「玩家一」,事后可改名)vs 首次轻量起名
|
||
- D2 找回底线:仅配对码(旧设备必须在手)vs 配对码 + 名/PIN 兜底(丢设备可救)
|
||
- D3 语音路线:双套资产(推荐,增量灰度、不动已验收资产)vs 通用措辞重录(一套通吃但全量重录)vs 先文字后补
|