Files
2026-10-01 23:26:47 +08:00

12 KiB
Raw Permalink Blame History

16 · 《回声地窟》(dungeon / Echo Cavern)

给开发者的实现要点摘要

  1. 交互权威:26-audio-interaction-playbook.md。空间范式对齐 26-apply-escape.md 与 00 §5.3:四向滑动是玩法 → 帮助一律长按。
  2. 核心动词:单击=声波脉冲(听回声看地形)。四向滑动=按面朝相对移动(前/左/右/后)。废除长按=前进、双击=重发脉冲。
  3. 听声辨位 Roguelike:网格 + 面朝。回声=静态地形,脚步=动态怪物,播报=绝对方位——三套信息单源 grid。
  4. 一命一局,7 层满通约 24 分钟;金币进元进度(5 项遗产)。L1 ATK=0、L2 ATK=1,学期不可能死。
  5. 台词 16-dungeon-voice-ids.md(127 句 ×2 性别,无 NPC)。随机性 mulberry32,opts.seed 可注入。
  6. 规模:bgm 4 + sfx ~36 + voice 127×2。回声用预生成资产 + setTimeout + volume,不用引擎外实时节点。

附录 C · 设计单

1. 一句话核心动作

朝四个方向滑动在洞窟里走,单击发出声波脉冲听地形,按住屏幕问路。

2. 玩家能感知的状态(3 个)

状态 听感 Floor
探索 洞穴环境 loop(amb_cave)常响;脚步/回声是内容 ACTION
听讲 教学/房间/战斗报名语音,BGM 整链压低 SPEAKING
危险 battle BGM 或 danger earcon + 心跳震(血量≤25% / 敌前摇) ACTION + danger 签名

探索期撞墙=闷响 + invalid,不算第四态(一次性教)。

3. 新手手势与解锁(四向滑动是玩法)

手势 含义 说明
四向滑动 面朝相对移动:上=前进一格;左=向左侧走一格并转向该向;右=向右侧走一格并转向;下=后退一格(面朝不变) 阶段 0 即核心,不按阶梯锁
单击 脉冲(探索);战斗玩家回合=挥击;敌方前摇窗内=格挡 核心动词
长按 我在哪(层/血/面朝/一个动作,≤20 字) 帮助入口,全空间游戏同一条
双击 新手期按单击处理。阶段 3=重听最近回声编码(冷却外再脉冲,不扣资源) 禁止「双击=立刻免冷却重播」绑死连点
下滑 对局中=后退(玩法占用)。菜单仅阶段 2 且 SETTLE/TITLE 开放 00 §5.3

对局期关闭长按旁白加速(帮助占用长按)。

4. 状态 × 手势矩阵(新手期)

状态 \ 手势 单击 四向滑动 长按 双击(未解锁) 连点/乱滑
教学作答 按步骤(脉冲/确认) 按步骤走/转向 帮助 按单击 计入迷茫
探索 ACTION 脉冲 + 回声组(冷却中 invalid) 移动=脚步 silent-ok;撞墙=闷响+invalid+归因一次 帮助 按单击(冷却后再脉冲=合法「再听」) 乱滑计入迷茫;冷却连点只 busy/invalid
描述在播 跳过这句 + ok 打断并移动 打断,帮助 按单击 第一下有效
战斗·我的回合 挥击(面前才中) 左/右转面对敌人;下=尝试逃跑(普通怪必成挨一下;Boss 拒绝) 帮助(血量+敌方位) 按单击 计入迷茫
战斗·敌前摇 格挡(面对来源减伤 80%) 转身(窗口内来得及则下一击面对) 帮助 按单击=格挡 只处理第一下
结算 再来一局 + ok invalid + 解释一次 重听结算一句 按单击 只处理第一下
菜单 确认当前项 右=下一项 / 左=上一项 重听菜单说明 按单击 busy

脉冲已有明显内容音时可 silent-ok。invalid/busy 永远出声。

5. 等待点配置

教学(6s/15s)

步 期待 指令
D0 单击 「黑暗。点一下,听回声。」
D1 再单击 回声演示(前方保证有墙)
D2 上滑(前进) 「朝前,滑一下。」
D3 左滑或右滑 「向左滑,转身走。」
D4 单击 拾到本房金币(首胜)
D5 长按 「迷路了,按住屏幕。」
D6 走向教学怪:单击挥击 ATK=0,乱打不死

探索期无固定等待点。迷茫:静默 40s 起 / 乱滑 / 连续无效。L1 短目标句(「向右滑。」)→ L2 只放行导航方向 → L3 游戏朝楼梯走一步。卡关带路并入迷茫,不再 60/120/180 独立轰炸。

战斗回合:turn + 等待声;8s short「点一下,打。」15s earcon。

6. 首 3 分钟逐秒脚本

时间 游戏说 / 播 期待 没做 做错
0~3s amb_cave →「黑暗。点一下,听回声。」(critical) 单击脉冲 「点一下。」 滑动:invalid +「先点一下。」
3~8s pulse + echo + 材质 →「对。回声越快,墙越近。」 再点(巩固) 短句 冷却内连点:busy
8~10s 奖励音(听懂回声=第一次成功) —
10~25s 「朝前,滑一下。」 上滑前进 「滑一下。」 撞墙:闷响 +「那边是墙。」
25~40s 「向左滑。」→ 脚步 左移 短句 纠错一次
40~60s 「按住屏幕,听自己在哪。」 长按 「按住。」 其他:invalid
60~90s 自由探索;保证房内金币 走+脉冲 迷茫接管 撞墙无伤
90~180s 教学蝠 ATK=0:脚步 → 前摇窗单击格挡 → 单击挥击至击杀 战斗 L3 演示格挡 学期不掉血

节奏:3s 内脉冲 ✓;10s 内第一次听懂回声 ✓;每 30s 新房间/金币/击杀 ✓。

7. 失败表

失败类型 判定 归因 回到 新手期
撞墙 越界 「那边是墙。」每方向整局一次,之后只闷响+invalid 原地 无伤
挥空 怪不在面前 「它不在正面。左右滑。」 本回合 无
格挡失败 前摇内未点或未面对 「慢了。听到就点。」/「在身后。」 下回合 L1–2 怪打不死你
死亡 HP≤0 die_cause_* 按 lastHit;die_adv_* 按真实格挡数 TITLE,金币入 meta 学期不可能
迷路 迷茫信号 L1→L3 带路 原地 无

8. 台词类别

  • critical:开场「点一下,听回声」;结算承诺句
  • content:intro、层/血/金/面朝/威胁档、btl_start_、tut_(改词后)、unlock_*
  • hint:lp_* 长按帮助、nav_、stair_hint_、sys_continue_ask、gd_pulse 短句
  • feedback:wall、btl_swish、btl_behind、btl_no_turn、die_cause_*、tut_parry_miss
  • 停用旧句(须重录或下架):tut_walk「按住屏幕不放,你就往前走。」tut_replay「双击,再发一次脉冲」tut_parry「双击格挡」tut_status「上滑听状态」tut_menu「下滑打开菜单」tut_flee_hold「想逃跑,按住别松手」

资产账:127 句 ×2 性别(含 gold_some)。新教学句替换上列,总数可持平或 +3(tut_move / tut_help_hold / tut_parry_tap),上限 130。

9. 断点复述

  • 保存:拾取/战斗/下潜/菜单保存/死亡。data 含 meta + run(seed/floor/pos/face/hp…)。
  • 回来:sys_continue_ask;单击恢复 + 长按帮助句作复述(位置。目标。滑一下。);右滑新周目(meta 保留)。
  • summary:第{floor}层 · {血量档} · 金币{meta.gold} · 遗产{n}/5。

10. 测试记录

  • web/dungeon/test/playtest.mjs。改口径:D0 3s 内脉冲;移动断言改四向滑;长按=帮助不位移;战斗前摇单击=格挡;下滑动=后退不打开菜单;双击不重发免冷却。无声操作 0。真人冷启动待测。

1. 概述

盲眼探窟者用脉冲「看」每次不同的地窟,听脚步辨怪,逐层下潜。死了金币留在遗产里,越死越强。黑暗是设定不是妥协。方位降维 ≤4。与 escape 同为空间探索,战斗回合承接 rpg,元进度为本作增量。

2. 状态机

TITLE / DRILL / EXPLORE / BATTLE / MENU / DESCEND / SETTLE。MENU 仅 TITLE/SETTLE(及阶段 2)。

TITLE ──单击(无档)──> DRILL(仅首次)──完成──> EXPLORE(L1)
     ──单击(有档)──> EXPLORE 恢复+复述
EXPLORE ⇄ BATTLE(走进怪格)
EXPLORE ──楼梯格+单击──> DESCEND ──> 下层
HP≤0 或 L7 通关 ──> SETTLE ──单击──> TITLE

DESCEND:stairs_down + evt_descend + st_floor_N,约 5s。

3. 声波脉冲

维度 编码
正前距离 4 档,延迟 0.25/0.50/0.80/1.10s,volume 0.9/0.7/0.5/0.35,echo_1..4
正前材质 +120ms mat_stone/door/stair/water
左右侧 +0.35s 预 pan:side_wall_l/r 或 side_open_l/r(第一格地板=开口)
身后 不报;转身即查

冷却 1.2s。冷却内单击=invalid(无第二次回声)。需要再听:冷却后再单击,或长按问路。站楼梯格踏入即自动贴身铁器回声(到达即报,不占单击——单击仍是下潜确认)。

三套信息单源 grid:回声不报怪,脚步不报地形。威胁播报只报左右。

频带:脚步 100–300Hz,脉冲中频,BGM 垫底。并发前景 ≤2。

4. 地窟生成

rng(floor) = mulberry32((seed ^ (floor * 0x9E3779B9)) >>> 0)。房间矩形 + L 走廊 MST;楼梯=BFS 最远房;怪距起点 ≥3(教学局非门怪 ≥4);主路径每 ≤12 格必有内容。

层 尺寸 怪物 宝物 目标分
1 7×7 盲眼蝠×2 ATK0 金币×1 3.0
2 7×7 窟鼠×3 金+药 3.0
3 9×9 菇×3 + 石甲蟹 金+短刃 3.5
4 9×9 绕行者×2+洞蛛×2 金+皮甲 3.5
5 11×11 洞蛛×3+绕行者×2 金+药 3.5
6 11×11 洞蛛×2+绕行者×2+腐沼蟒 金+阔刃 3.5
7 11×11 石像卫×3+窟中之王 金 4.0

窟主守楼梯;未击败踏格播 evt_stairs_lock。

5. 战斗

明雷:脚步持续可闻。遭遇自动面对。

玩家回合 → 单击挥击 / 下滑逃跑 / 左右转
怪行动(绕位先报脚步)→ 前摇 1.2s tel_*
前摇内单击=格挡(面对 ×0.2 / 未面对 ×1.0)
HP≤25% 且有药 → 自动喝
HP≤0 → 死亡链

缠斗怪左右滑:btl_no_turn 每场解释一次后只 invalid。绕位怪每 2 回合换左/右/后。Boss 半血 ATK+1,拒绝逃跑。逃跑必成、挨一下、怪留原格。每 4 杀 atkLv+1。

格挡改绑单击(敌前摇窗):新手无双击;窗外单击若在玩家回合才是挥击,前摇期单击只判格挡。

6. 数值与遗产

maxHp=20(+vigor 6);atk=2+atkLv+武器。L1–2 学期零惩罚。

敌 HP ATK 行为 金
蝠 4 0 缠斗 3
鼠 6 1 缠斗 5
菇 8 2 缠斗 8
石甲蟹 20 3 Boss 绕位 50
绕行者 10 2 绕位 10
洞蛛 12 3 缠斗 12
腐沼蟒 26 4 Boss 80
石像卫 16 4 绕位 15
窟中之王 36 5→6 Boss 通关

遗产(meta.gold,死亡不清):药 90 / 体魄 150 / 护符 220 / 回声强化 300 / 武器 450。金币档 0=空手句;0<金<50 播 gold_some「带回来一点,不多。」

7. 音频

BGM:menu / explore / battle / boss。SFX:pulse、echo_1..4、mat_、side_、step_own/turn、bump、coin/potion/gear、stairs_down、mob_step_{small,bug,heavy}{l,c,r}、tel*、atk_swing/hit、parry、hurt、enemy_die、levelup、amb_cave、turn_tick。侧向能量只在单声道。

Voice 127×2,数字全分档整句。

8. Floor 与迷茫

状态 earcon
TITLE/MENU menu
DRILL/EXPLORE/DESCEND explore
BATTLE battle
SETTLE settle
血≤25% / Boss 半血 danger

choice 不用。对局中下滑=后退,不播 menu。等待声:探索环境 loop 已承担;战斗 turn 后 400ms 合成等待声。纠错每个状态×手势一次,之后只回执;连续 3 次无效进迷茫。

9. 存档

{
  "schema": 1, "game": "dungeon",
  "summary": "第3层 · 伤势不轻 · 金币268 · 遗产2/5",
  "meta": { "gold": 268, "unlocks": ["potion", "vigor"], "bestFloor": 5, "runs": 7, "kills": 23 },
  "run": { "seed": 42, "floor": 3, "pos": [5, 2], "face": "E", "hp": 11 }
}

SETTLE 进态 800ms 手势死窗(吞死亡瞬间在途单击,防结算链被截进 TITLE)。

10. playtest 指针

seed 复现、回声===grid、学习期 ATK、死亡归因真话、到达即报铁器、gold_some 档位:保留。删除:长按位移、双击免冷却重发、下滑开战斗菜单、双击格挡。新增:3s 内脉冲、长按播帮助且 pos 不变、前摇单击减伤 ×0.2、下滑动 pos 后退。