- 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
17 KiB
《回声地窟》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(新手完整弧线):
- 手势统计:局 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(功能失效/设计违约)
- 「铁器=楼梯」的贴身铁器回声在输入层不可达,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(不适/可疑)
- 看门狗 8s 纯 nudge(earcon)仪器不可验证:earcon 不产生独立事件,live 只能证实 30s 升级句;建议给 earcon 加轻量探针(本条是仪器欠账,不是游戏缺陷)。
- 连续战斗时救援链会饿着:拾取/击杀=进展事件重置卡关链(§10.3 口径),叠加怪主动扑击后,L2 三连战期间玩家永远攒不满 60s 空闲,带路全程沉默(实测 hint_a 被拖到 lastAct+90.6s)。战斗本身是内容所以体感不空,但「打完三只鼠还没头绪」的新手要再等一整轮 60/120/180s。
- 教学跳过标志跨会话不一致:B 局开局跳教学(meta.drillDone=true 生效),补测局却重进教学——同一 localStorage 键
soundgame.progress.dungeon、游戏内逻辑正确,根因指向 harness 会话上下文/并行测试互串(仪器侧),挂账复核。 - amb_cave 听感未验:事件层节奏全对,但 ASR 对环境垫无评判能力(全落 SFX_BGM_ONLY 行),音量/辨识度是否「像洞里的空气」待人耳。
P3(建议)
- 长按三义在「相邻扑击」时代更危险:走位中被扑→下一步长按=瞬间逃跑挨打(本局实录 flee×7+扫图误逃×3)。R1 P3 原样存在且触发率变高;建议逃跑加前摇音或改绑手势。
- 大厅层老问题原样:乱按双击「保存并回大厅」无确认退局(B 局 ×1),退局后无「你在大厅」定位句、乱点直接开别的游戏——dungeon 侧无责,但它是被 dungeon 菜单送进去的。
- st_best 播报语义:死于 L2 时 TITLE 播「你到过中层」(bestFloor=3 是前世纪录),句面对新玩家易误读为「本局到过」,建议加「最远」二字级别的措辞。
- 仪器三件:① 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 件事
- 让玩家真的听到铁器:楼梯格上的单击下潜保留,但把「贴身铁器回声」改挂到踏格瞬间或下潜确认前播,或允许「楼梯上双击=重发脉冲」——别让唯一的新回声路径在输入层死锁(P1-1)。
- 战斗中的救援链别饿着:扑击接战计入「有内容的证据」,或战斗胜利后把卡关计时从「上次手势」改从「上次进展+战斗时长折算」。
- 逃跑加前摇:长按三义在主动扑击时代太容易误逃挨打,一拍前摇音就能把「撤退」变成玩家的选择而不是事故。
一句话裁决
R1 那个捂着我耳朵 71 分钟的死循环真的死了——风暴 0 抢占、菜单能关、账目分毫不差、两场死亡句句真话,这游戏第一次从头到尾「说着人话」陪我走完了三层地窟;只剩「铁器回声」这一句教学承诺还差最后一口气,修掉它我就敢把「立刻再来一局」说满。