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

17 KiB
Raw Blame History

《回声地窟》全拟真试玩报告 — 老陈(细心的盲盒 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 分钟的语音抢占死循环之后,我愿意立刻再来一局——地窟的骨头(战斗、回声、元进度、归因真话)是真的好,但现在它一边给我引路一边捂着我的耳朵。