Files
SoundGame/research/new8/dungeon/round2/live-player.md
T
xsl f7509ad5d8 feat(new8/R3): 双游戏收口修复轮 + 验证档案(radio G1-G6 / dungeon E0-1..E1-2)
- radio:帮助链去重(同等待点二次=beat震+earcon,全量口令38→20)/rep_low警告震/空点轻震/状态链重排(状态在前)/「首播必完整、复播可即掐」显式规则登记/G3核查为设计使然转断言;221→246断言
- dungeon:看门狗双轨制(无操作轨+无进展轨,30/60/90s三级升级到导航接管)/跳教学90s自动滚出(2403s→95s内)/踩楼梯到达即报贴身铁器/band1新词「带回来一点,不多」全管线重录/逃跑长按900ms+提示句;1610→1642断言
- R3 验证(进行中已入库部分):全量回归 9/9 全绿;R3 转写×4;P2/P3/P4 终审×6份(radio 满分档首评/三审,dungeon 4/4.5/3-4 全票愿意玩,无P0);两处独立定址同一残余=漫游型迷路刷不响无进展轨(R4 第一条)
- 8套件+guide全绿;Mureka 累计 $0.87/$2.00
2026-09-02 23:08:35 +08:00

116 lines
17 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.
# 《回声地窟》R2 全拟真复测报告 — 老陈(细心的盲盒 Roguelike 老手)+ 急躁压力局
## 基本信息
- 身份:老陈,34 岁,Roguelike 玩家,认真跟教学、脉冲探路;另一局换急性子表弟小飞(1.7x 语速、乱按狂点)代打压力局。R1 同款人设,目标是逐条验收 R2 结构修复。
- 设置:
- 局 A(新手完整弧线):`voice=male, speed=normal, bgm=normal, guide=full`,主会话 `dungeon-20260902103332`(约 2.3 小时真实时间,247 段语音 100% 纯净可析),另加一个短补测会话 `dungeon-20260902131022`(教学跳过→带路→楼梯格交互补测)。
- 局 B(急躁压力):`voice=female, speed=1.7, bgm=normal, guide=standard`,会话 `dungeon-20260902125330`(乱按 400 秒 / 273+ 手势;**未 /stop 落盘,仅 events+mix partial**——收尾时被主管催停,事件流已现场导出)。
- 手势统计:局 A 约 400+ 次(tap/longpress/swipe×4/doubletap 全用上);局 B 随机乱按 400 秒。
- 最深层:**第 3 层**(局 A,死于 L3 窟主石甲蟹 tel_heavy_r;L1/L2 完整走完,教学 D0-D9 全步骤)。
- 结局:局 A 走完 **教学→探索→L2→L3→Boss 战死亡→归因链→元进度→新周目(跳教学)→再下 1 层(L2)→再死一次(全链完整收听)→TITLE 元进度复核** 全闭环,两场死亡、零死锁。
- 报错:全程无 fetch 失败、无资产 404、无页面崩溃;**全会话 `vend reason=preempt` = 0 次**(R1:71 分钟 35,611 次)。
- 证据落盘:`web/harness/live/out/dungeon-20260902103332/`(全量)、`out/dungeon-20260902125330/`(partial)、`out/dungeon-20260902131022/`(全量);事件流全量副本 `/tmp/sessionA_events.json`(5865 条)、`/tmp/sessionB_events.json`(1030 条)。收尾已 `POST /stop` + `fuser -k 8124/tcp`。
## 局 A 体验叙述(第一人称,验收视角)
**0:00–4:00 教学开场:每句都是完整的。** 解锁单击后 TITLE 正常;单击开局,`sys_new_run`→`intro_1`(4.8s)→`intro_2`(3.9s)→`tut_d0`(5.0s) 全长串行。D0 单击确认震干净。
**t=195 D1 引爆点(R1 灾难起点)——这次什么都没炸。** 脉冲照常(pulse+回声组),**且两侧第一次就报了开口**(side_open_l/r 同至,R1 全程 0 次)。`tut_echo_come` 完整播 2.24s、`tut_front_rule` 完整 2.8s,一句接一句,没有抢占。此后 D2-D9 每一步旁白、每次纠错、每条规则句全部完整入耳——我第一次「听着教学」打完了教学。
**4:00–5:30 D7 状态链与菜单,第一次真正听清。** 上滑状态链五段(st_floor_1→st_hp_1→st_gold_1→st_face_e→st_threat_none)逐段全长播完(R1 全是 0.2 秒渣渣)。下滑开菜单:menu 音+BGM 切换+`sys_menu`+**菜单首项名播报**(`sys_menu_resume`——复核代码确认这就是「打开即报首项」,R1 报告把它误判成「菜单被系统自动收掉」,此桩旧案当场平反);再下滑,菜单一次就关、BGM 立即切回 explore(D1-1 ✓)。教学蝠随后主动撞脸接战(脚步渐强+心跳预警),格挡练习失败两次(我手慢)、miss 句照播、ATK=0 无伤,第三刀杀之——**BGM 立即切回 explore**(D1-4 胜利路径 ✓)。D9 找楼梯时故意静置:**恰 +30.1s 播 `stair_hint_a`**(D1-2 升级兜底 ✓;8s 纯 nudge 是 earcon,探针不记事件,无法证伪)。
**5:30–25:00 L1→L2:靠耳朵真的能走。** 脉冲-移动循环:前方距离四档+材质尾音、左右侧墙/开口(side_open/wall 全程 76 次),撞墙 bump 与回声距离始终一致。拾金币有 `evt_coin_3` 档句。两次下潜演出全套:`stairs_down`+`evt_descend`(3.12s)+`st_floor_2`。L2 落地即被窟鼠贴脸(脚步渐强+心跳),第一次格挡成功就在这场:tel_small 后 0.7 秒双击——**parry 音+`btl_parried` 播报(R1 是死资产,R2 已接线)+减伤入账**,两格挡一击杀,`btl_loot_1`+BGM 回 explore。战斗中静置 15 秒,**turn_tick+gd_turn 恰 15.0s 到场**(D1-6③ ✓,三场战斗三次全中)。
**25:00–40:00 L2 全清与一次意外验证。** DFS 扫图途中把 L2 三只鼠全引了出来——**全是它们主动扑上来的**(R1 的「贴身绕圈就是不开战」彻底绝迹)。中途长按走位撞上接战瞬间变成逃跑(btl_flee+hurt),**BGM 立刻切回 explore**(D1-4 逃跑路径也验了)。菜单在探索态开/关各一次,一次即关(D1-1 主诉直证)。静默 20 秒后 `amb_cave` 垫入;L1 楼梯上静置时 **2769.0/2789.0 两次 amb_cave 严格 20s 间隔**(D0-3② ✓)。
**40:00–55:00 L3:蘑菇会扑了,Boss 会绕了,我死了。** L3 卡关链全 tier 实测:静置 60s→`stair_hint_b`(窟主未清的正确变体句)→120s→`stair_dir_n/w`(直线方位+警告震)→180s→**nav 带路**(最短路首步,**每走一步重报下一步**,s→s→w→n 逐步自校正,R1 的「咬死北边指墙」不复现;L2 明示说北、带路首步说南——两者坐标系不同但各自为真)。蘑菇贴身即扑(3229.1、3597.1),三只全被我正面打掉(btl_loot_2 档句+btl_lvup 升档)。HP 被放低时**自动喝药实锤**:warning 震+potion 音+`st_hp_2` 档播报(3270.6)。最后踩上 Boss 战:长按被 **`btl_flee_boss`+纠错震** 拒绝三次(Boss 禁逃 ✓),换位脚步 mob_step_heavy_r+派生前摇 tel_heavy_r、半血 `btl_half_crab` 全部到位,然后被两刀放倒——**die_intro→die_cause_2(Boss 重击,真话)**。(我脚本的手滑在 die_cause_2 播到一半点了 SETTLE=立刻重开——意外验证了「重开入口 ≤2 秒」和死后重开直接 EXPLORE 不再进教学。)
**55:00–75:00 第二次死亡:把归因链一个字不落听完。** 新周目一路下到 L2,用「逃跑-挨打」循环主动送死(7 次 btl_flee,鼠 ATK=1 真实放血),倒地后**全链一字不差**:die_intro→**die_cause_1**(「你被小怪拖垮了」——真话,确实是鼠群逃跑反击放死的)→**die_adv_1**(「下次前摇声响时就双击」——真话,本局 0 格挡)→st_floor_2(真死于 L2)→**meta_gold_1**→settle_stronger→settle_again。单击回 TITLE,上滑元进度:**meta_gold_1(与 SETTLE 同档!D1-5 ✓)**→st_best_2(到过 L3=中层档,正确)→**unlock_potion**(遗产购置播报,账本自洽)。元进度闭环成立。
**补测会话(131022)**:专程回去验「楼梯铁器回声」,结果收获一条重要边界:**站上楼梯格时单击=下潜(模态优先),脉冲永远发不出去**(t=1288.7 现场演示,直接把我送下了 L2)——详见 P1-1。
## 局 B 体验叙述(急躁压力:female / 1.7x / standard)
小飞乱按 400 秒:**136 段语音(其中 dungeon 53 段)、零死锁(无 25s+ 事件空窗)、零抢占**。乱点打死了开场蝙蝠(btl_bat→btl_kill→btl_loot_1),乱滑被 `btl_no_turn` 正确拒绝,菜单被开 12 次每次都能下滑关掉,双击砸在「保存并回大厅」上一次→sys_saved 退到大厅→乱点又开了别的游戏(88 段他家台词)——**与 R1 局 B 的大厅层乱象同款,非本轮修复范围**。注意:本局事件流混入了同机并行 radio 测试的外来语音(探针通道未按会话隔离,详见 P3-4),dungeon 侧结论均按纯 dungeon 事件清洗后得出。1.7x 语速 ASR 盲区依旧(MISMATCH 34/153:`sys_menu_save`→「否则命为大师」0.17),按协议以 events 为准。
## R2 修复逐条现场验证
| # | R2 修复 | 结论 | 现场证据(t=会话内秒) |
|---|---|---|---|
| D0-1 | 语音抢占死循环 | **修好(铁证)** | A 局全程 preempt=**0**(R1:35,611);**教学后 10 分钟窗口语音 38 段=3.8 段/分钟**(中位间隔 5.7s、最短 1.3s、同 id<1s 重复 0 次;R1 同期 >2000 段/分钟且 99.7% 被掐)。D1 引爆点 t=195.3:tut_echo_come 完整 2.24s→tut_front_rule 完整 2.8s,严格串行;全部 247 段语音逐句可听 |
| D0-2 | 回声信息真实性 | **side_open 修好;mat_stair 现场仍未兑现(P1-1 挂账)** | side_open 全程 **76 次**(R1 两局 0 次),首个脉冲即双侧开口;但 **mat_stair 全程 0 次**:站楼梯格 tap 被下潜模态优先截走(补测会话 t=1288.7 实演),「楼梯前一格正对脉冲」路径被会话收尾截断未走完。铁器回声 live 缺一环 |
| D0-3① | 主路径遭遇密度 | **修好** | L2 三鼠落地后 40-70s 内全部主动扑击(1300.5/1607.9/1849.0);L1 蝠进探索数秒即扑(281.2);探索期无 >20s 无内容体感 |
| D0-3② | 探索呼吸层 amb_cave | **修好** | A 局静默 ~20s 垫入(2514.5);严格 20s 节奏复现(2769.0→2789.0;补测 2619.9/2639.9/2659.9);有人声时不垫 |
| D0-3③ | 下潜演出 | **修好(本就有,转写伪影已除)** | 三次下潜全套 stairs_down→evt_descend(3.12s)→st_floor_N,无一缺失 |
| D0-3④ | 卡关计时器 | **修好(按设计口径)** | A 局 60/120/180s 三级精确触发:hint_b(3511.5=lastAct+63.5s)→stair_dir(3215.5=+120s,警告震)→nav(3936.6=+180s);「任何有效手势重置」口径确认(拾取金币=进展,重置全链) |
| D1-1 | 探索态菜单可关+关闭回执 | **修好** | 2526.5 探索态下滑一次即关,BGM menu→explore 立即回切;关闭签名 earcon 为引擎音、探针不单记(如实注记)。B 局菜单开 12 次全部可关 |
| D1-2 | D9 看门狗兜底 | **修好(30s 级实锤)** | stair_hint_a 恰 lastAct+30.1s(956.5/1307.4/956.5 三次);8s 纯 nudge 为 earcon 无法从事件证实(仪器局限) |
| D1-3① | 导航指墙 | **修好** | 带路=最短路首步且逐步自校正(nav s,s→e,e→n;1264.1/1267.4 每步重报);同向节流(全会话 nav_* 仅 14 次、最小间隔 3.21s,R1 是亚秒互掐);「L2 明示北、带路首步南」系两种坐标语义(直线 vs 路径),各自为真 |
| D1-3② | 蘑菇/游走怪相邻即接战 | **修好** | L1 蝠秒扑(281.2)、L2 鼠全主动(1300.5/1607.9/1849.0)、L3 蘑菇扑(3229.1/3597.1);R1「35 分钟软封锁」不复现,两场 L3 战均为怪主动开 |
| D1-4 | 战斗结束 BGM 回探索曲 | **修好(双路径)** | 胜利路径 4 次(547.0/2626.8/4040.7/7068.9 敌死即 explore)+逃跑路径 1 次(1206.4 flee 后即 explore) |
| D1-5 | SETTLE/TITLE 金币档一致 | **修好** | SETTLE meta_gold_1(8199.3) = TITLE meta_gold_1(8257.7),同账本;后随 st_best_2+unlock_potion(购置后 meta 计提)自洽(R1 是 3 vs 2 互相打架) |
| D1-6① | 长按 boost 闪跳 | **修好** | A 局事件流 0 次 boost on/off 窗口事件(R1 每次长按闪一对) |
| D1-6② | D7 菜单自动收 | **结案(非 bug)** | 复核:sys_menu_resume=菜单首项名播报(MENU_ITEMS[0],openMenu 固定播),R1 误听为自动执行 |
| D1-6③ | 回合 15s 防呆 tick | **修好** | turn_tick+gd_turn 恰 15.0s ×3 实测(477.5/2396.3/3247.9+541.6/2941.5),standard 档也有音 |
| 整体 | 一命全弧线无死锁 | **通过** | 教学→3 层→Boss 死→结算→新周目→再下 1 层→再死→全链→TITLE,全程零死锁;B 局乱按 400s 零死锁 |
## 问题清单
### P0(破坏核心体验的系统性缺陷)
无。R1 的失聪循环没有复现,本轮没有任何「不听人话就玩不下去」级别的缺陷。
### P1(功能失效/设计违约)
1. **「铁器=楼梯」的贴身铁器回声在输入层不可达,mat_stair live 仍为 0 兑现**
- 站上楼梯格时,单击被「下潜」模态优先(补测会话 t=1288.7:tap→stairs_down,脉冲根本发不出),「站楼梯格→贴身(dist1)铁器回声」这条 R2 新接的回声路径,玩家用正常手势永远听不到;
- 唯一可听路径是楼梯恰在正前方射线(echo 距离+mat_stair),本局两次到站都因「踩格即播 tut_stairs_on→顺手单击下潜」错过,补测的「到站退一格转身脉冲」实验被收尾截断;
- 后果:教学 D9「听到铁器回声再走过去」对新手仍是碰运气(本局老陈是靠 tut_stairs_on 踏格句而非铁器音找到楼梯的)。playtest 断言层面已全绿,但 live 端承诺未闭环。
### P2(不适/可疑)
1. **看门狗 8s 纯 nudge(earcon)仪器不可验证**:earcon 不产生独立事件,live 只能证实 30s 升级句;建议给 earcon 加轻量探针(本条是仪器欠账,不是游戏缺陷)。
2. **连续战斗时救援链会饿着**:拾取/击杀=进展事件重置卡关链(§10.3 口径),叠加怪主动扑击后,L2 三连战期间玩家永远攒不满 60s 空闲,带路全程沉默(实测 hint_a 被拖到 lastAct+90.6s)。战斗本身是内容所以体感不空,但「打完三只鼠还没头绪」的新手要再等一整轮 60/120/180s。
3. **教学跳过标志跨会话不一致**:B 局开局跳教学(meta.drillDone=true 生效),补测局却重进教学——同一 localStorage 键 `soundgame.progress.dungeon`、游戏内逻辑正确,根因指向 harness 会话上下文/并行测试互串(仪器侧),挂账复核。
4. **amb_cave 听感未验**:事件层节奏全对,但 ASR 对环境垫无评判能力(全落 SFX_BGM_ONLY 行),音量/辨识度是否「像洞里的空气」待人耳。
### P3(建议)
1. **长按三义在「相邻扑击」时代更危险**:走位中被扑→下一步长按=瞬间逃跑挨打(本局实录 flee×7+扫图误逃×3)。R1 P3 原样存在且触发率变高;建议逃跑加前摇音或改绑手势。
2. **大厅层老问题原样**:乱按双击「保存并回大厅」无确认退局(B 局 ×1),退局后无「你在大厅」定位句、乱点直接开别的游戏——dungeon 侧无责,但它是被 dungeon 菜单送进去的。
3. **st_best 播报语义**:死于 L2 时 TITLE 播「你到过中层」(bestFloor=3 是前世纪录),句面对新玩家易误读为「本局到过」,建议加「最远」二字级别的措辞。
4. **仪器三件**:① longpress 定长 600ms≈1 格,教学「按住走≥2 格」只能靠撞墙兜底通过(撞墙也算过,本轮实走通了这条兜底);② 1.7x+短句 ASR 盲区依旧(MISMATCH 34/153);③ /session 探针通道未按会话隔离,同机并行测试(radio-103345/110919/112548)语音互串进 B 局事件流(88 段外来),且 B 局因被催停未 /stop 仅存 partial。
## 做得好的地方(实话实说)
- **死亡归因真话律两场全对**:Boss tel_heavy_r 放倒→die_cause_2;鼠群 flee 反击放血→die_cause_1;0 格挡→die_adv_1。全游戏最严苛的承诺继续满分。
- **格挡系统第一次完整可玩**:0.7 秒时机双击→parry+btl_parried 播报+减伤(R1 死资产已接线);格挡失败有 miss 教学句兜着。
- **Boss 战规格全兑现**:换位脚步报位(mob_step_heavy_r)、派生前摇(tel_heavy_r)、半血句(btl_half_crab)、禁逃回执(btl_flee_boss+纠错震)。
- **自动喝药**:HP≤25% 一瞬间 warning 震+potion 音+血量档播报(3270.6),一次不落。
- **btl_lvup 击杀升档 ×2**、loot/coin 全部分档句正确; Economy 账本跨死亡、跨购置全部对得上。
- **靠耳朵真的能通关 3 层**:回声距离+材质+侧向开口+怪物脚步三套信息全程零矛盾(R1 的 L3 漂移未复现);卡关三级链是真能把人带到楼梯的。
- **节奏**:教学后每分钟都有事发生(战斗/拾取/氛围垫轮转),R1 的「350 秒真空」体感彻底消失。
## 玩家情绪时间线
- 0:00 开场四句完整清晰:「等下,这次每句都听完了?」
- 3:15 D1 脉冲,教学句没被掐:「风暴真死了,服」
- 6:00 状态链五段完整入耳:「原来这游戏是这么告诉状态的」
- 20:00 菜单一次就关:「口袋终于有出口了」
- 30:00 格挡成功叮一声+播报:「parried!这词我等了一轮」
- 45:00 带路每步重报方向:「这导航成精了,指哪走哪」
- 55:00 被 Boss 两刀放倒:「输得明白,死得服气」
- 70:00 第二次死亡全链听完:「两场死法两句真话,这游戏说话算话」
- 75:00 TITLE 上滑金币档一致:「账目都对,行,冲这个我愿意三周目」
## 如果只能改 3 件事
1. **让玩家真的听到铁器**:楼梯格上的单击下潜保留,但把「贴身铁器回声」改挂到踏格瞬间或下潜确认前播,或允许「楼梯上双击=重发脉冲」——别让唯一的新回声路径在输入层死锁(P1-1)。
2. **战斗中的救援链别饿着**:扑击接战计入「有内容的证据」,或战斗胜利后把卡关计时从「上次手势」改从「上次进展+战斗时长折算」。
3. **逃跑加前摇**:长按三义在主动扑击时代太容易误逃挨打,一拍前摇音就能把「撤退」变成玩家的选择而不是事故。
## 一句话裁决
**R1 那个捂着我耳朵 71 分钟的死循环真的死了——风暴 0 抢占、菜单能关、账目分毫不差、两场死亡句句真话,这游戏第一次从头到尾「说着人话」陪我走完了三层地窟;只剩「铁器回声」这一句教学承诺还差最后一口气,修掉它我就敢把「立刻再来一局」说满。**