Files
SoundGame/research/new8/dungeon/round1/live-player.md
T
xsl d870a75a26 feat(new8/batch1): 两款新 RPG《不眠频率》radio +《回声地窟》dungeon 全套(多agent流水线:策划→资产→开发→测试→玩家R1→修复→R2)
- 程序章程 research/new8/00-program.md(8款概念/回合协议/验收门/进度账)
- 设计:docs/design/15-radio.md+voice-ids(132句,6状态9抉择4结局,电话滤波资产侧带通)/16-dungeon.md+voice-ids(125句,脉冲回声/7层seed生成/三档战斗/元进度遗产)
- 资产:TTS 970文件(GPU flock串行)+ Mureka BGM 8首 $0.24(台账 mureka_log.md)+ 程序合成 sfx(含预pan侧墙/开口、phone_ring铃声、amb_cave呼吸层、turn_tick)+ 终检 check_all_assets 8游戏全绿
- radio:game.js+playtest 221断言(4结局矩阵/pendingChoice盲玩公平/RING两级看门狗/菜单循环/存档schema)
- dungeon:game.js+playtest 1610断言(seed全网格回声一致性/学期零死/格挡80%/死亡归因真话/元进度/菜单冻结/上滑5段状态链)
- 引擎修复:audio.js _playVoice 加载竞态补杀 token(R1真机71分钟语音风暴根因)+ 同id 3s窗口≥5次熔断保险丝 + gesture.js 长按boost事件门(+66行,9套件回归全绿)
- 大厅:新增 radio/dungeon 卡片 + GAMES 数组
- harness:sessions/radio.mjs+dungeon.mjs(主线+压力双剧本)+ transcribe 注册 + voice_text.json 刷新(8游戏704句)+ 13号文档 §20 登记
- R1 存档:4人设评审×2游戏 + 真机试玩报告×2(radio 5/5愿意玩;dungeon 0/4→确诊风暴)+ synthesis×2 + 转写8份
- R2 修复:radio F1-F5(看门狗补挂/rep_low改词重录/真铃声/ASK续玩语义/链末跳过保护)+ dungeon D0-1..D1-6(风暴根治/回声真实性/密度下限+呼吸层/导航最短路/菜单关闭反馈/金币档同账本)+ 实现核对登记
2026-09-02 18:52:37 +08:00

126 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.
# 《回声地窟》全拟真试玩报告 — 老陈(细心的盲盒 Roguelike 老手)+ 急躁压力局
## 基本信息
- 身份:老陈,34 岁,Roguelike 玩家,认真跟教学、脉冲探路、爱听完整句旁白;另一局换急性子表弟小飞(1.7x 语速、乱按狂点、菜单开了就乱按)代打压力局。
- 设置:
- 局 A(新手主线):`voice=male, speed=normal, bgm=normal, guide=full`,两个会话(主会话 + 死亡结算续会话),共约 84 分钟真实时间。
- 局 B(急躁压力):`voice=female, speed=1.7, bgm=normal, guide=standard`,三段会话共约 7 分钟乱按。
- 手势统计:
- 局 A 共 424 次(tap 89 / longpress 261 / 双向 swipes 59 / doubletap 9 / swipeup 9 / swipedown 3,另 1 次 longpressend 被控制台拒收);局 B 共 273 次随机乱按。
- 最深层:**第 3 层**(局 A,死于 L3 蘑菇怪之手;L1 教学层 + L2 完整走完)。
- 结局:局 A 走完 教学→探索→战斗→下潜→**死亡归因三问→元进度入账→SETTLE→TITLE** 全闭环;局 B 未死亡(HP 1 满血乱按),两次误触「保存并回大厅」退到大厅、一次误启动了别的游戏。
- 报错:全程无 fetch 失败、无资产 404、无页面崩溃;但局 A 主会话的语音引擎被一个抢占死循环污染到**全程 35745 次语音播放里 35611 次被掐死(99.7%)**(详见 P0)。
## 局 A 体验叙述(第一人称,新手主线)
**0:00–1:20 教学开场,一切正常。** 解锁单击后 TITLE 播 `sys_new_run`「新的探窟,开始了。」、`intro_1`「你在黑暗中醒来。这里是回声地窟。」、`intro_2`「伸手不见五指,声音就是你的眼睛。」、`tut_d0`「先学会用耳朵看。单击,发出声波脉冲。」——四句全部完整、清晰。我单击作答 D0,confirm 震动干净利落。这是我全场唯一听到完整句子的 30 秒。
**1:20 D1 脉冲演示 = 灾难开始。** t=130.0s 我按下教学要求的单击:脉冲 `pulse` 正常、回声组正常(echo_2 近墙 0.5s 后到、mat_stone 材质尾音、side_wall 左右预 pan 都在),但紧接着 `tut_echo_come`(「听,回声回来了。」)和下一步旁白 `tut_front_rule`(「回声回来越快,墙就越近。」)开始**互相掐架**——事件流里 `vend reason=preempt` 连环爆发,最密时 0.09 秒一轮,ASR 听到的是两句话交错的碎渣:「越生回来越快」「大了就」。从这一秒起,直到 71 分钟后我关掉页面,**这个循环再也没有真正停止过**。
**1:20–12:00 教学步进全靠猜。** D2 到 D9 每一步的旁白(tut_side_rule / tut_walk / tut_turn / tut_replay / tut_status / tut_menu / tut_mob / tut_parry / tut_attack / tut_stairs)全部在开播 0~0.3 秒内被 tut_echo_come 掐死,我只能靠设计文档和步骤反馈(震动音色、回声、脚步)猜该做什么。D4 长按走 2 格+撞墙、D5 左右滑转身、D6 双击免费重发、D7 上滑状态链——这些**动作反馈本身都正常**,但状态链五段播报(st_floor_1→st_hp_1→st_gold_1→st_face_e→威胁)每段只剩 0.2 秒渣音。D7 我按教学下滑开菜单,结果单击把菜单项切到了「保存并回大厅」,吓得我以为要退局——好在教学步骤完成时菜单被自动收掉了。
**12:00 教学战能打,但听不见教什么。** 教学蝠撞进我格子触发战斗(btl_bat + battle BGM + 心跳震动预警都到位),我挥击 2 刀杀死它(atk_swing/atk_hit/enemy_die/coin 清脆悦耳)。但 tut_parry「前摇声响时双击」的教学句我一句都没听成——第一次格挡练习直接失败(双击到晚了,好在 ATK=0 无伤)。
**12:00–25:00 D9 找楼梯:教学唯一有答案的一步,没有任何兜底。** 脉冲听到铁器回声(echo_3+mat_stair 的金属音色真的很好认)之前,我在 7×7 的 L1 里蛇形摸了半天。设计里 DRILL 每步 8 秒该有 nudge 震动——我静置 72 秒,**事件流一条都没有**。找到楼梯、单击下潜(stairs_down 轰隆+evt_descend+st_floor_2),全程语音照旧被碾碎,但我确认自己下到 L2 了。
**25:00–45:00 L2:真正的战斗体验(如果能听见的话)。** 三只窟鼠,全部主动撞进我格子(明雷脚步 mob_step_small + 距离音量 + ≤2 格心跳震动的威胁预警做得好)。我打死了三只(每只 3 刀),学会了:挥击命中 atk_hit 手感扎实;前摇 tel_small 1.2 秒窗口内双击=格挡——我的反应全靠手动计时,第一次成功卡进窗口是在 L3 才做到的。中途两次长按误触**逃跑**(设计:逃跑必成但挨一下),hurt 音+掉血真实入账。上滑查状态链确认面朝、金币档跳档(st_gold_1→st_gold_2),结构完全正确。
**45:00–58:00 L2 找楼梯:卡关救援系统在正常走表,但说的每句话都被杀。** 我故意静置测试:64 秒后 `stair_hint_a` 准时触发(带 [30,50,30,50,30] 警告震),再 60 秒 `stair_dir_e`(楼梯在东)准时升级——**计时和分级完全按设计工作**,但提示语音 14 次尝试全部 0~0.3 秒被掐死,作为盲人玩家我一个字都没收到。最后我靠读事件流里的 `stair_dir_e` 才知道方向——真人玩家在这里只能靠瞎撞。带路模式(180 秒)也触发了:nav_e→nav_n 每步报方向,同样全部碎成渣。
**58:00–75:00 L3:地图还在,我的耐心没了。** 下潜到 L3(evt_descend+st_floor_3)。三只蘑菇怪在左右踱步,我脉冲探路时发现三件事对不上:侧向回声永远说两侧是「墙」(side_open 整场一次没出现过,哪怕我明明能往"墙"的方向走成功);带路导航咬定北边(nav_n)而北边实测撞墙;出生点脉冲说前方墙在 5 格开外(echo_4)实际 1-2 步就撞。我在这张图上绕了半个多小时,后来复盘事件流才发现真相:**那 13 场蘑菇战全都发生了**(btl_mush ×13),但我每次长按走路都直接变成了「逃跑」——btl_flee ×9,其中一次挨了真实的 2 点伤害。我在不知情的情况下被放血到重伤档(st_hp_3),然后被蘑菇群「贴身绕圈、堵住格子、就是不进格开战」的走位软封锁在原地——我朝它走只 bump,它绕着我转永不接战。
**75:00–84:00 死亡与元进度:全场最完整的一段体验。** 我写了脚本接管操作,终于和蘑菇硬碰硬打了一场:挥击命中、它的前摇、我格挡失败挨刀(hurt+[80] 震),再两刀把它打死(enemy_die+coin+btl_kill+btl_loot_2)。第二只蘑菇接战,我血量只剩个位数,两回合后倒地——**死亡归因链一字不差地播完**(这一段因为页面重启过、抢占循环不在,所以全句清晰):
- `die_intro`(你倒下了……)
- `die_cause_1`「你被小怪拖垮了。」——**真话**,确实是蘑菇怪连续失血致死
- `die_adv_1`「下次,前摇声响时就双击。」——**真话**,我全程格挡成功数为 0
- `st_floor_3`(第 3 层)→ `meta_gold_3`「这趟满载而归。」→ `settle_stronger`「下个周目,你会更强。」→ `settle_again`「单击,再探一次。」
单击重开入口确实 ≤2 秒。回到 TITLE 上滑元进度播报:`meta_gold_2`(带回一些金币)→ `st_best_2`「你到过中层」(档2=3-5 层,我到过第 3 层,分档正确)→ `unlock_none`。金币入账、最深层数更新、遗产未达解锁线,全部如实播报。这一段的设计完成度是全场最高的。
## 局 B 体验叙述(急躁压力:female / 1.7x / standard)
小飞拿到残局(L3 重伤档存档)直接单击**开了新周目**(教学跳过标志生效,直接 EXPLORE L1,这点很顺)。然后开始乱按轰炸,三段会话共 273 次随机手势:
- **乱按打得死怪**:L1 教学蝠在纯粹乱点中被拍死(btl_bat→enemy_die→btl_kill→btl_loot_1),乱滑转身被 `btl_no_turn` 正确拒绝(+纠错震动)。
- **两次误退局**:菜单是下滑呼出的,呼出之后下滑**关不掉**(详见 P1-1),乱点循环菜单项时双击很容易砸在「保存并回大厅」上——两段会话各误退局一次(sys_saved→回大厅),其中一次退到大厅后随机点击**把别的游戏点开了**(事件流里出现 b_rain / z1_ring_in / n00_intro 等他家台词)。
- **1.7x 语速的转写惨案**(仪器侧记,不算游戏 bug):「你面朝南」→「一面长」sim 0.29、「保存并回大厅」→「保则命为大师」sim 0.33、「检测到探窟记录」→「检测的探污记录,救花出新看」0.55。
- **没有死锁、没有叠音**:乱按全程语音保持严格串行(二周目不进教学,抢占循环不在),BGM 切换、回合流转、菜单循环全部没卡死。局 B 最大的问题是那个菜单(P1-1),不是稳定性。
## 问题清单
### P0(破坏核心体验的系统性缺陷)
1. **教学 D1 通过后,`tut_echo_come` 与一切语音进入无限抢占循环,污染整个页面生命周期**
- 证据:局 A 主会话 events.jsonl:`vend reason=preempt` 共 **35,611 次**,占全部语音播放(35,745 次)的 **99.7%**;71 分钟里只有开场 4 句(sys_new_run / intro_1 / intro_2 / tut_d0)完整播完。
- 起点:t=130.2s(D1 首次脉冲通过、tut_echo_come 首播被抢那一刻)。此后教学旁白、上滑状态链五段、菜单项名、战斗报名(btl_bat/btl_mush/btl_rat)、卡关提示三级、带路导航、下潜旁白、死亡链——**每一条都被掐成 0~0.3 秒碎渣**,ASR 听到的是两句话的交错残片(「越生回来越快」「大了就」)。
- 主凶配对:nav_n ↔ tut_echo_come 互掐 **33,297 次**——带路模式的重复播报计时器与教学残留反馈互相触发,越滚越凶。
- 反证:同设置的二周目会话(教学跳过)**0 次抢占**,所有语音严格串行——污染源锁定在 DRILL。
- 玩家视角:这是一款纯音频游戏,而我在 71 分钟里实际上处于**失聪状态**,全靠震动、音效音色和文档预读通关。
### P1(功能失效/设计违约)
1. **探索态菜单下滑关不掉(违反设计 §2.4「下滑=关闭」)**
- 确定性复测:局 B 第三会话,swipedown 打开菜单(menu earcon)后,再发 3 次 swipedown 全部零响应(无语音、无音效、无关闭);期间左右滑还在轮流切菜单项(这部分符合设计)。
- 而教学 DRILL 态打开的菜单下滑能正常关(局 A D7 验证:bgm 切回 explore+返回音)——同一手势两种状态行为不一致。
- 后果:菜单唯一可靠出口是双击确认「返回探索」,但菜单项循环**没有任何位置播报**,盲手玩家不知道选择器在哪;局 B 两分钟内两次双击误落在「保存并回大厅」直接退局,退到大厅后乱点还会误开别的游戏。
2. **侧向回声恒报「墙」,side_open 全场从未出现**
- 证据:两局合计 40+ 次脉冲,`side_open_l/r` 出现次数为 **0**,`side_wall_l/r` 每次成对出现;两处行为级反证:L2 面朝北时左侧(西)报「墙」、向西行走成功;带路指示的北向开口沿途所有脉冲仍报「墙」。
- 设计承诺「回声编码===grid 真值」在侧向维度不成立——「伸手不见五指,声音就是眼睛」的眼睛撒谎了。
3. **教学 D9(找楼梯)无任何兜底,DRILL watchdog 缺失**
- 证据:D9 状态下静置 72 秒,事件流零输出(设计 §10.2 教学每步 [8s] 应有纯 nudge 震动,一个 vibrate 事件都没有)。D9 又恰好是唯一要求玩家自行寻路的步骤——找不到铁器回声的新手没有任何救援。
4. **L3 导航三重奏集体失真 + 蘑菇「堵格不开战」软封锁**
- nav_n 长时间指向实测撞墙的北向(带路模式可信度崩塌);L3 出生点脉冲 echo_4(5+ 格)实际 1-2 步撞墙;同一方向 1 分钟内先「通 2 格」后「即撞」。
- 蘑菇群贴身绕圈:我走过去只 bump(不触发战斗),它永不走进我格;13 场战斗全部由「我长按走路撞进它」无声开启,而我的下一步长按又立刻变成逃跑(btl_flee ×9)——在不知情中被「撤退挨一下」放血。L3 我耗了 35 分钟没找到 Boss,最终是靠脚本化战斗补完的死亡。
### P2(不适/可疑)
1. 卡关三级提示的**计时与分级完全正确**(64s→stair_hint_a、120s→stair_dir_e、180s→nav 带路,警告震 [30,50,30,50,30] 每级都到),但内容 100% 被 P0 掐死——救援体系形同虚设(P0 修复后此条大概率自动痊愈)。
2. 元进度播报语义疑点:SETTLE 链说 `meta_gold_3`「这趟满载而归」,随后 TITLE 上滑同一元进度段说 `meta_gold_2`「这趟带回一些金币」——两处「这趟」的档位不一致(st_best 分档经台词表核对无 bug)。
3. 每次长按都伴随 boost on→150ms→off(E3 豁免应在对局期禁用快进,实现变成每次长按闪一下,无害但可疑)。
4. 教学步进完成时 D7 的菜单被系统自动收掉(sys_menu_resume 未经我操作)——与「下滑手动关闭」的教学目标矛盾(玩家可能根本没学会关菜单,局 B 的乱象与此相关)。
5. 我方回合 15 秒无操作只震不说(standard 档 gd_turn 缺席是设计使然),配合 P0 留下的悬挂语音死寂,体感像死机。
### P3(建议)
1. 抢占战争平息后会留下悬挂语音(vstart 无 vend)+ 数分钟完全死寂——哪怕 P0 修了,也建议给引擎加"语音空转超时自愈"。
2. 长按在手势宪法里同时是「前进」「逃跑」「教学作答」三种语义,战斗边界模糊时(L3 静默接战)极易误逃;建议逃跑改为长按+明确音效前摇。
3. 局 B 大厅乱点会无确认启动其他游戏——虽是大厅层问题,dungeon 的「保存并回大厅」把玩家送进这个环境,建议回大厅后给一句「你在大厅」的定位。
4. harness 侧记:longpress 为固定 600ms(约 1 格/次)、无独立 longpressend 手势类型,长按行走在 live 测试里非常笨重;1.7x+短句是 ASR 盲区(「你面朝南」→「一面长」sim 0.29),自动化验收需人工复核。
## 做得好的地方(实话实说)
- **死亡归因真话律完美**:死因句(小怪拖垮)、建议句(0 格挡)与实际行为逐字对应——这是全游戏最严苛的承诺,兑现了。
- **回声定位本体(前向维度)是真的能玩**:echo_1..4 延迟/音量分档+材质尾音(mat_stair 金属回声一眼可辨)引导我在 L1/L2 正确找到楼梯与金币,撞墙 bump 与回声距离一致(L3 的漂移除外)。
- **战斗音效链全部清晰**:atk_swing/atk_hit/enemy_die/coin/tel_small/hurt/parry 各司其职;回合制状态机经历 100+ 回合、13+ 场战斗零死锁。
- **中断复述链与状态链结构满分**:继续存档后 st_floor→st_hp→st_face→st_threat 顺序与设计逐字吻合;上滑五段链(层/血/金/面朝/威胁)结构完整。
- **元进度闭环成立**:死亡→金币入账→最深层数更新→遗产解锁判定(unlock_none)→「下个周目你会更强」→单击 2 秒重开。
- **学习期零惩罚兑现**:L1 蝠 ATK=0(我 80+ 次乱按无伤)、L2 鼠 ATK=1,撞墙无伤,逃跑必成。
- **教学跳过标志生效**:二周目直接 EXPLORE 不再进 DRILL,且顺带避开了 P0(讽刺的是不教学反而听得见)。
- 双击免费重发脉冲、脉冲 1.2s 冷却防糊、怪物明雷脚步三档音量+心跳预警,全部按设计工作。
## 玩家情绪时间线
- 0:00 进场,开场四句完整清晰:「这游戏声音真舒服」
- 1:20 第一次脉冲,两句教学开始互相掐:「……它刚才说什么?」
- 2:00–12:00 靠震动猜教学:「我这简直是在玩盲文版」
- 12:00 杀死教学蝠,音效爽:「打是打得挺爽,就是没人告诉我怎么格挡」
- 15:00–25:00 L1 找楼梯,静置 72 秒毫无声息:「喂,说句话啊」
- 25:00–45:00 L2 三杀,战斗手感上头:「鼠鼠我呀今天全灭」
- 45:00 卡关提示触发但半句听不见:「求你了把话说完」
- 58:00–75:00 L3 导航指墙+侧向回声撒谎+蘑菇堵门:「这图是不是在跟我开玩笑」
- 75:00 硬碰硬杀掉第一只蘑菇:「终于像场正经战斗了!」
- 79:00 死亡归因三问一字不落:「……这是我今天听到的第一句完整的人话」
- 84:00 元进度入账,「下个周目你会更强」:「行,冲着这句我愿意再来」
## 如果只能改 3 件事
1. **杀掉 tut_echo_come 的无限重发(P0)**:D1 通过反馈播一次就该销毁;顺带给语音引擎加"同一 id 连续 N 次 preempt 强制静默"的自愈保险丝。这一个修复能让教学、状态链、卡关提示、带路、菜单播报全部复活。
2. **修探索态菜单的下滑关闭 + 给菜单项加位置播报**:现在的菜单对盲手玩家是个只能进不能出的口袋,出口全靠双击赌运气,赌输就退局。
3. **让侧向回声和带路导航说真话**:side_open 按设计触发、nav 方向与碰撞一致、L3 出生点前向距离校准——方位信息是这游戏的生命,三个子系统一起失信比任何单点 bug 都致命。
## 一句话裁决
**修好那个让游戏失聪 71 分钟的语音抢占死循环之后,我愿意立刻再来一局——地窟的骨头(战斗、回声、元进度、归因真话)是真的好,但现在它一边给我引路一边捂着我的耳朵。**