机制与规则:把设定推导成可断言的系统
机制与规则:把设定推导成可断言的系统
目录
- 0 地基:玩家说的不是不好玩,是不可信
- 1 准入闸:机制不是被发明的,是被推出的
- 2 连续状态:三态是一根轴上的三个刻度
- 3 连续量,不要二极管
- 4 每个机制的形状:独占收益与独占代价挂同一个变量
- 5 惩罚从等待改成风险
- 6 碰撞不等于即死:惊觉窗口
- 7 门的双重角色
- 8 演出事件默认非致命
- 9 压力导演:威胁计量表
- 10 规则怪谈的可玩化(自建框架)
- 11 信息锁优于钥匙锁
- 12 高潮必须由玩家动作触发
- 13 线索串行、只报过去
- 14 机制篇反例与边界情况速查
- 15 自查闸门清单
威胁体的感知与行为设计属于独立的一篇,见 threat-ai.md。
0 地基:玩家说的不是不好玩,是不可信
「太出戏」「这游戏没做完」「这地方很假」——这些判词的共同底层是宣称与呈现不符。玩家感知到的失真不是审美失败,是逻辑违约:物件上出现了不该有的东西、锁着的门报出钥匙在别处、文件里写的楼层和你脚下的楼层矛盾、镜子另一侧是透明的。一条原则从这条地基推出来:判据:任何「玩家能看出矛盾」的场合,矛盾要么被修掉,要么被明确写成设计(见 10.3)。不允许存在第三种状态——遗留物。留到文末的原因:前面各条原则在「系统层」成立,最后一条在「表达层」收口。
1 准入闸:机制不是被发明的,是被推出的
做法:先建一张「机制 ↔ 设定来处」的映射表,一行一条机制。每行必须有:机制名 / 机制描述 / 它对应角色的哪段身世或哪条世界规则 / 玩家会怎么用它。写不出这一行的机制,不进游戏。
为什么逐件「想点有意思的」必然失败:凭空发明的机制没有来处,玩家在第一次遇到时无法归因,只能读作「游戏规则」。而恐怖游戏的规则一旦读作「游戏规则」就会立刻失去恐吓力——恐怖只在玩家相信世界是一致的时候存在。反之,如果每个机制都能追溯到世界内的一个事实,玩家的第一反应是「原来如此」,而不是「这游戏要我这么干」。
抽象层面的落地例子(写模板,不要抄设定):
| 机制 | 设定来处 | 玩家怎么用它 |
|---|---|---|
| 黑暗中视觉更敏锐 | 角色多年夜生活训练出的适应 | 主动进入黑暗换取视野优势 |
| 畏光时眯眼 | 长期暗环境留下的生理残留 | 不是技巧而是身体反应,玩家会认领它 |
| 熄灯后能听清更远 | 那个年代养成的用耳朵替代眼睛的习惯 | 把「关灯」从照明问题变成信息手段 |
| 手上有光源 | 从那个地方带出来的东西 | 既是工具也是会暴露自己的风险 |
为什么这条对「新增内容」特别重要:映射表天然回答「新东西为什么存在」。项目做到中后期时最常见的失败是设计师为了填时长加一个机制,但说不清它为什么在世界里;映射表把这个提问变成流程的一部分。
判据:机制表与实现清单条数相等且逐条可双向映射;每一个机制都能用一句话回答「它对应角色的哪个事实」,答案里不许出现「纯粹好玩」;新增机制的提交流程里第一项必填「设定来处」,为空则不进 review。
2 连续状态:三态是一根轴上的三个刻度
做法:把「睁 / 眯 / 闭」实现成一根连续量(0..1),玩家按键设的是目标值,身体在此之上叠加一层生理修正项(光照、干涩、恐惧各自贡献一点,且修正后夹逼到 [0,1])。三个「态」只是判定阈值,不参与物理计算。
推导:把状态做成三个开关,玩家的体感是模式切换——「我刚才在 A 档,现在切到 B 档」。把意图与身体分离之后,玩家的体感是连续动作——「我试着睁眼,但只睁开了一半」。后者才是身体该有的质感。这条推论里最重要的两半:「想睁」和「睁得开」是两件事(眼睛的开度受身体限制:强光压、干涩压、恐惧压,三项叠加后还有硬上限,无论目标值多少都睁不到满);修正项必须可夹逼(不夹逼就会出现「睁眼反而更糟」这种反直觉漏洞,玩家一旦发现就再也无法信任这个系统)。
默认值是可玩性问题,不是实现问题。 这类默认值改过一次、往往还会再改一次,而两次改动里机制层一个字都没重写,只改了取值函数和三个常数。所以出现「这个默认值感觉不对」时,去改取值函数与常数;重写机制层是错误反应。
判据:状态由「连续量 + 修正项」两组数表达,代码里不存在三个并列的状态枚举被分发;「想睁但睁不到满」在运行时可达且可截图复现(不是理论分支);玩家输入只写目标值,任何写连续量本身的路径都不该存在;修正后夹逼有断言。
3 连续量,不要二极管
做法:底层用连续速率函数(指数或幂律)表达流失与回充。硬阈值只保留给真正突变的事件(例如直视光源瞬间清零),其余一律连续。
为什么阈值实现会毁掉设计:一个「超过某值才流失、回充分三档查表」的实现里,跨阈值速率差了一倍数量级,会同时产生两个后果:「直视光源清零」这种设计根本不存在——因为阈值之上速率高、之下速率为零,没有一个地方是「归零」;某个中间姿态成为永久最优解——玩家只要卡在阈值正下方就既不流失也不痛,机制退化成装饰。
UI 只露 1–3 档,不露数字:数字会把玩家从身体感受拽回优化视角;玩家一旦看到「当前流失速率 0.7」,玩法就变成了配平。可感知时间常数:任何数值变化必须能在 1.5–2 秒内出现在画面上——玩家感知不到的时间尺度上,数值等于不存在。
判据:核心数值的验收标准写在「秒」上而不是「参数变了」,典型验收形如「把流失速率调到目标值后,从满到零所需的可感知时长落在 1.5–2 秒区间内,且截图能看到画面已响应」;速率函数里没有「查表 + 档位」结构,跨阈值处的速率是连续的(可数值采样断言相邻采样点变化率有界);UI 上不存在裸露的连续量数字。
4 每个机制的形状:独占收益与独占代价挂同一个变量
做法:设计每条优化时同时给出两条通道,并让它们挂在同一个变量、同一个阈值上。收益通道:这个状态下你看得更清 / 听得更远 / 移动更快。代价通道:这个状态下你的余光里出现不该有的东西,并且恐惧值自然上涨。断言形式:阈值以下代价恒为 0;阈值以上代价随超出差值线性上升。
推导:只有收益 = 刷分漏洞,玩家最优解只有一个且不需要恐惧;只有代价 = 劝退墙,玩家最优解是「永远别用这个机制」,机制白做。挂同一变量上,玩家才会形成一个判断:我愿意用眼睛换这点清楚,但不想看太久。这个权衡本身就是恐惧的引擎——玩家该觉得自己变强,同时更不安。优先找「零新素材」的代价实现:代价优先用画面层、声音层、后期层做(画面出现不该有的东西、声音里多出一层),而不是新增模型与动画。原因是机制的数量会随迭代增长,而素材成本线性增长,两者叠加会让小团队在机制层破产。
每个优化都要主动想它会被怎么刷,这一步不能省。通则化的表述:
任何缓慢量必须问一句:玩家能不能永远停在这个值上?
反例(已踩过一次):某个中间姿态的回充被设计成「缓慢上升」。玩家因此可以永远保持那个姿态,得到最优解且不付代价。改成「缓慢下降」之后,最优解不复存在。
判据:每条优化都有收益与代价两行,且两行引用同一个变量名;代价函数在阈值以下严格为 0(有采样断言);存在一份「本机制可能的刷法」清单,每条要么被堵,要么被记为已知并接受。
5 惩罚从等待改成风险
做法:把「强制盲 / 强制静止」这类惩罚从时间成本改成暴露成本——惩罚期间世界继续运转,并且有一件确定会发生的事正朝你逼近。
推导:长的恢复期是一种等待,而等待是玩家最擅长消化的东西。玩家会站着不动把惩罚等完,然后世界恢复原样,惩罚的实际代价是「几秒钟没做事」。只有当这段时间里威胁确实朝你移动,等待才变成赌博。
反制手段给时间窗,不给豁免。正确形状是:定身时长有限 + 结束前一个可学习的信号(吸气声 / 布料摩擦)+ 一个距离阈值内的立即转场。不要给「无敌姿势」:豁免会被当作可用技能反复使用,玩家从此不再害怕。判断「我能不能跑掉」靠一个可测量的量:实测从被定身起手到被抓的总时长,测三次取一致结果;结果不稳定说明输入窗口设计有问题。
判据:
- 任何强制盲或强制静止时长 > 1 秒,都必须伴随一个位移压力,且该压力在窗口结束前确实发生(可断言,不只是意图)。
- 「位移压力确实发生」的判据形态:位移有起止位置可读(不是瞬移),起止位置之间的直线距离 > 0,且终点落在朝向惩罚源的一侧。「朝这个位置靠近」必须能被一个坐标断言独立验证,不能由「压力值上升了」代替。
- 重惩罚必须配秒级恢复路径与检查点。
- 死亡处理:只回本房间、已拾取保留、绝不在家具内部重生(重生点做一次胶囊与场景包围盒的相交断言)。
6 碰撞不等于即死:惊觉窗口
做法:接触的第一后果是信息,不是结束。给它 1–1.5 秒的惊觉窗口:威胁体退半步、面朝撞击点、进入「调查」状态;窗口内玩家在它眼里是「一个轮廓」而不是「一个人」;窗口内小幅涨警觉。升级到追击需要二次条件:连续接触,或站着不动贴脸。
推导:即时死亡会让「撞到」与「被看见」变成同一件事,玩家的所有操作空间瞬间清零:撞墙是失误也是死亡,慢一步是死亡,看不见它也是死亡。惊觉窗口把碰撞转成一次信息事件——玩家在那一秒里获得「它看见我了」这个知识,并且获得一个可练习的应对窗口。逃跑从此是技巧而不是运气。
判据:窗口内警觉增速显著低于正常视野增速,可断言「窗口内警戒增长不超过正常增速的某个比例」;窗口内允许的每一种脱身动作(退开、转身、静止、遮蔽)在代码里都有对应分支,不是靠通用逻辑碰巧生效;连撞、静立贴脸两种情况都能在若干次内升级到追击(各自有回归用例);存在接触冷却,防止一次冲撞连刷多条警觉(可断言冷却期内重复接触不涨警觉)。
7 门的双重角色
做法:关门是争取时间,不是脱战。追击中丢失视线时,寻路目标改为「最后目击点」而不是玩家实时位置,因此关门有真实收益:视线被切断后它会走去最后目击点。关着的门它会自己推开,开门声就是预警——这让关门从「封住它」变成「延后它的到来并暴露它的意图」。锁着的门它既不开也不穿。
推导:关门之所以能变成战术而不是无操作,是因为「视线」与「位置」是两条独立的通道——玩家能切断前者而只能暂时失去后者。只切位置不切视线时,关门等于宣告「我在门后」,关门的收益与它给出的信息同增同减,玩家没有取舍可做。
判据:追击丢失视线分支的寻路目标取自最后目击点(可用断言或日志核对);导航与视觉遮挡要用两个数据源(同一份数据必然在斜角穿帮),但目标格要豁免——目标格不参与「格心必须落在可行区域内」的检查,否则它会试图站到桌子上,或者卡在桌椅之间;随机 N 次寻路 + 追击过程中的直线位移,威胁体身体包络与场景家具/墙包围盒的相交数恒为 0。边界情况:导航可行性的判定按身体半径膨胀后的区域算,不要用「格心严格落在包围盒内」——后者在窄通道与家具缝隙处会判定出一堆实际不可站的格。
8 演出事件默认非致命
做法:环境事件提供不确定,不提供惩罚。事件库按威胁度分级,并给每级标注后果类型(纯氛围 / 引导 / 位置暴露)。
推导:不致命事件制造的是「刚才那是什么」的回想,而回想正是恐惧的原材料。致命事件制造的是「刚才我为什么那样做」的复盘,复盘会把注意力拉向机制而不是世界。恐怖要的是前者。
判据:致命后果只挂在规则违规路径上,环境事件表的每一条都标注为非致命;每级事件的音量/频率/位置权重都有显式参数,可单条调。
边界情况:不致命不等于无害。「身后脚步」即使不杀人也在消耗玩家的安全感,如果它在两分钟内出现五次,效果等同于惩罚。事件库的总预算(每分钟不致命事件的期望条数上限)需要单独设一个参数并在平衡检查里断言。
9 压力导演:威胁计量表
做法:用一个标量「紧张度」驱动全部演出;紧张度涨得快、落得慢。事件池按当前紧张度加权。四条核心约束:1)涨得快落得慢——急刹比缓涨吓人得多。2)连续高紧张到阈值后强制静默窗口,给玩家喘息与消化。3)事件池按紧张度加权,低紧张只发远处类,高紧张只发贴耳类。4)进度只调「不安分度」(事件密度、间隔、贴耳比例),不直接调强度(音量、屏幕效果)。
演出/倒计时窗口期间导演与屏息不计时。这是最容易被忽略的一条:如果演出进行中导演还在走,演出会被随机事件打断,玩家刚被引导到某个位置,一个环境音把他从状态里拽出来,那次高光的强度被白白浪费。
强制静默窗口必须静默到可观测:窗口内的静默不只表现为事件表为空,还要表现为环境音床本身被压掉(贴耳类音源的音量增益被置零)以及玩家自身的呼吸/心跳音被单独保留。否则玩家听到的仍是一段有内容的背景声,他会把这段时间读成「暂时没吓我」而不是「现在安全」。
判据(四条可断言):留白期内事件数 = 0;安静超过阈值后必发一次事件(没有「静到死」的区间);事件间隔随进度单调缩短(实测参考值:14.6 秒 → 5.9 秒,跨度约 2.5 倍;区间与倍数需按关卡长度重测,但单调性必须成立);低紧张段发出的事件全部属于远处类,高紧张段全部属于贴耳类(按事件类别字段断言)。
10 规则怪谈的可玩化(自建框架)
材料诚实声明:规则怪谈 / 网络规则文这类「以规则清单为叙事骨架」的设计,公开资料里没有可引用的成文方法论。本节框架是自建的,推导链条与断言形态参考了下列公开设计中可迁移的部分:规则类玩法与谜题设计的经验总结(In The Shadows 谜题设计、规则破坏复盘、谜题设计复盘),恐怖规则类与谜题与叙事边界的部分参考了 规则设计随笔、恐怖游戏设计页、利用恐惧制造恐怖 与 Horror Level Design 原则。请把本节当作工程约定而非引文。
10.1 守则 ↔ 机制 100% 覆盖,且双向可查
做法:清单条数 == 机制条数。每条规则对应一个可触发的机制;每个机制被至少一条规则覆盖。维护一张双向表。
推导:任一条规则是纯装饰,玩家就会切换成「整体怀疑」的视角审视整份清单——「这一条是不是在骗我?是不是还有没写出来的规则?」而一旦整份清单的可信度被怀疑,恐怖就转移到了「游戏会不会作弊」上,那是失望,不是恐惧。更锋利的表述:覆盖率一旦不到 100%,覆盖率本身就成了信息。玩家会推导出「有规则没写出来」,并且开始寻找隐藏规则——你得到的是猜谜游戏,不是恐怖游戏。
判据(可机器 lint):规则条数 == 机制条数;每条规则对应一条可断言的触发路径(存在测试能触发它);每条规则有唯一的实现位置引用,实现位置不存在的规则条数 = 0。
10.2 规则必须可破除,但不可僵死
玩家可以「感觉卡住」,但绝不能真的把状态锁死。 核心区分:「自己解不开」和「系统坏了」必须是玩家能区分的两件事。
推导:这是防挫败与防 bug 投诉的接缝所在。如果卡死状态没有出口,玩家唯一能做的推断是「游戏坏了」,这个推断会把整个世界的可信度一次性清零——包括那些本来完全成立的规则。反过来,如果状态始终可破,玩家最坏的推断只是「我笨」,而「我笨」是可接受的。
判据:每个可能进入的规则状态都有一条可复现的退出路径(有测试覆盖);不存在任何不可逆状态(玩家陷入后无法通过任何输入改变局势);超时保护——同一规则状态持续超过阈值时,游戏状态必须发生变化(提示、该物体被外部打断、或机制重置),不允许静默僵持。
10.3 误导必须是有意设计的,不是遗留物
做法:关卡里没有任何东西是偶然存在的。刻意维护「看起来明显的解法 → 试了发现不行」的层次。
推导:一次成功的误导告诉玩家「这个世界有逻辑,且逻辑可以推理」;一次遗留的错误告诉玩家「这个世界有 bug」。两者在体感上无法区分,但一个提升信任一个摧毁信任。
判据:记录「明显解法列表」——每一个玩家大概率会先试的做法,都有一个明确的、有记录的失败理由。列表外新增的显眼物证视为遗留物,清理。
10.4 谜题要有清晰边界
玩家必须能回答两个问题:规则从哪开始、在哪结束。能不能斜着走?能不能进已经打开的格子?边界不明确的谜题会让玩家把大量算力花在「试探系统」而不是「解决谜题」上。
判据:每个谜题有书面记录的合法操作集合;任何不在集合内的输入都不改变状态(可断言:越界输入前后的状态哈希一致)。
10.5 用规则反向筛选关卡
维护一张「疑似 bug 清单」:记录所有「看起来出错了」的关卡现象,逐条判定是设计好的破例还是真 bug,并写理由。推导:规则类内容最容易翻车的地方就是把不可破的破例当成谜题——玩家在数学上无解,他却在游戏里必须解开。反向筛选是唯一能防止这件事的流程。判据:每条可疑现象都有判定结论与理由,无结论条目 = 0。
10.6 反向设计:先有答案,再倒推挑战
顺序是:先确定答案 → 倒推「什么样的挑战强制只能这样解」→ 再构造关卡。反过来做(先搭关卡再找解法)会产出填充式劳动和红鲱鱼——玩家试错的空间被浪费在没有信息的分支上。判据:每个谜题有一行答案 + 一行「为什么其他解法被排除」,排除理由缺失的谜题重做。
10.7 恐怖向谜题的可执行检查表
- 谜题必须绑定到世界/诅咒的故事——纯逻辑谜题放在恐怖游戏里会切碎氛围。2. 有随机化或多解,保证重玩性。3. 必须推进剧情与探索,不能是纯技巧关。4. 可在合理时间内解开——卡关会毁掉整个体验,这是本清单里最贵的一条。5. 不能太简单;太简单不解渴。
10.8 新内容的正确姿势:让同一条规则的第二次使用产生新恐惧
做法:每件新内容回答一个问题——「它让哪条已有规则变得可玩?」答不上来的不进关卡。判据:新内容提交需要回答该问题;零新增机制期的新增内容额外满足「按键数不变、状态机分支数不变」(可 lint)。理由:新增按键或新增状态会让玩家被迫重建一次心智模型,而恐怖游戏里玩家只愿意为「新的恐惧」付这次成本,不为「新的操作」付。
10.9 规则的信息投递用倒金字塔
最重要的一条最先给;最好让玩家亲身经历而不是被告知;因果解释晚于体验。推导:先体验后解释,玩家会用自己的话复述规则,记忆牢固且带情绪;先解释后体验,玩家会带着「去验证刚才那句话」的心态进入,体验变成考试。
11 信息锁优于钥匙锁
做法:门禁要求玩家推出结论并做出对应身体动作,而不是交出钥匙。两个成立条件都要满足:玩家先读到能推翻误解的那份材料;解开方式是做某动作——以某种姿态通过、停留数到某个数、不看某个方向、用某个姿态去看某个东西。
推导:钥匙锁把解法压缩成「拿 A 开 B」,玩家执行的是流程不是判断。信息锁的执行动作本身就是判断的物证,玩家的成就感来自「我理解了」,不是「我背下了配方」。对恐怖游戏还有一层:身体动作型的门禁在视觉上无法与敌人区分——玩家必须承受「做出正确动作时姿势很怪」的紧张。
判据:存在「不读也能过」的漏洞检查项——这条极重要,玩家被卡住时必须能分辨这是设计还是 bug,给一条绕过路径(哪怕是不优雅的路径),玩家就有地方去判断;解法涉及的动作全部在教学/前文出现过的输入集合内。
边界情况:隐藏层是隐藏理解,不是隐藏地图。前置条件只卡剧情理解(例如读齐某组档案、收齐某组画作),不卡地图可达性——地图可达性一被卡,玩家无法探索,无法产生新的线索,锁就变成墙。关键验证:「没有门」这件事必须是断言出来的——从所有起点做寻路,全部返回不可达。写在注释里的「此处无门」不算验证,注释不会因为有人挪了一张桌子而失效。
12 高潮必须由玩家动作触发
做法:高潮不使用纯计时的凝视。用已有输入构成「做对某件事才通关」。推导:纯计时的凝视会被玩家读成「什么都没做就通关」;通关的重量来自玩家投入的动作,凝视不投入任何东西。全程无一行提示教玩家怎么做——允许的输入必须全部是教学里教过的动作,靠猜一个没教过的键属于设计失败。
判据(三条):凝视不动作不触发;动作中途被打断能保留进度;完成条件达成后立即满足,不留延迟。
揭示分三拍:剪影或声音 → 状态变化 → 才轮到字。先演后说。这三拍之间的间隔给玩家自己填词的机会,填上的词比读到的字留存得久。移开视线要能退掉累积(防误触):玩家在扫视时一定会乱看,如果乱看会累积,高潮就成了要求玩家盯着屏幕的耐心测试。
文本量与揭示层级:深层真相的文本量必须比表层结局更短(实测:12 行砍到 6 行)——因为玩家自己已经拼完了,文本只是确认,写多了等于替玩家做完了总结,那一刻的重量就没了。后层不推翻前层:深层是表层的解释,不是反转。反转会把恐惧变成「被耍」,解释才会把恐惧变成「现在我知道了」。隐藏真相的位置:挂在玩家早已建立恐惧的物件上(角色最恐惧的东西),并把那条既有的惩罚规则翻面成入口;前置条件全部是剧情理解而非跳跃操作。
边界情况与已发生的事故:
- 入口动词必须复用已有按键/已有状态,不要新增键。 新增状态会让玩家的心智模型重建一次——在最需要他们保持专注的时刻重建认知,是最贵的失误。
- 入口生命周期(真出过事故的一条):任何「只能去一次」的东西,要么改成重入守卫(序列进行中才算占用),要么把入口挂到一个稳定的复访点上(从检查点续玩时补触发)。已发生的事故:一周目玩家永久错过了第二个结局,因为入口只挂在结局卡的那一下点击上,而那一下点击在某些路径下不会发生或已被跳过。
判据:入口的唯一解使用已有姿态之一;另两态各自有独立的失败理由——玩家做错了要能知道为什么错,「两个都不行且理由相同」是最糟的形态;入口在检查点续玩路径上仍可触发(有一个从每个检查点回放一遍的测试)。
13 线索串行、只报过去
做法:主界面只显示「此刻」与「已经发生过」。未来节点一条都不许出现。 未读清单只报数量,不报名字——未来的东西连名字都不许出现。推导:把后续流程写在暂停界面里,探索就变成了对清单的核对。玩家不再为了害怕而走,而是为了消掉列表项而走。恐惧一旦变成任务,就不再是恐怖。判据:对界面渲染层做断言——不存在任何未来节点标识(含标题、缩略图、数量提示中泄露的类别信息)。
14 机制篇反例与边界情况速查
这些是独立条目,不是补充说明。每一条都是实现里最容易做错的地方。
| # | 反例 | 为什么错 | 正确做法 |
|---|---|---|---|
| 1 | 状态做成三个并列开关 | 体感变成模式切换,且三个档各自可被证明最优 | 连续量 + 生理修正项 |
| 2 | 「想睁」直接写进连续量 | 消掉了身体,意图与身体不再分离 | 输入只写目标值 |
| 3 | 身体修正项不夹逼 | 出现「睁眼更糟」的漏洞,系统不可信 | 修正后夹逼 + 断言 |
| 4 | 回充用档位查表 | 跨阈值速率突变,中间姿态成永久最优解 | 连续速率函数 |
| 5 | 只有收益的优化 | 刷分漏洞 | 配独占代价,同一变量 |
| 6 | 只有代价的优化 | 劝退墙 | 同上 |
| 7 | 缓慢上升的恢复量 | 玩家可永久停在最优值 | 恢复量必须下降 |
| 8 | 长恢复期无位移压力 | 惩罚被等待消化 | 惩罚期间威胁必须逼近 |
| 9 | 惩罚给无敌姿势豁免 | 豁免被当技能反复使用 | 给时间窗 + 预警信号 |
| 10 | 接触即死亡 | 「撞到」与「被看见」等价,操作空间清零 | 1–1.5 秒惊觉窗口 |
| 11 | 关门时寻路目标=玩家实时位置 | 关门无收益 | 丢失视线后寻路到「最后目击点」 |
| 12 | 导航与视觉遮挡共用一份数据 | 斜角穿帮 | 两个数据源,目标格豁免 |
| 13 | 目标格参与可行检查 / 用「格心在包围盒内」判可行 | 它站到桌子上、卡在椅缝;窄通道误判不可站格 | 目标格豁免;按身体半径膨胀 |
| 14 | 演出窗口期间导演继续计时 | 高光被随机事件打断 | 窗口期间导演与屏息暂停 |
| 15 | 静默窗口只关事件表、留环境音床 | 玩家把这段时间读成「暂时没吓我」 | 音床增益置零,只留呼吸/心跳 |
| 16 | 规则覆盖率 95% | 覆盖率本身成了信息,玩家转为找隐藏规则 | 100%,双向可查 |
| 17 | 规则可把状态锁死 | 玩家无法区分「我解不开」与「游戏坏了」 | 保证可破 + 超时保护 |
| 18 | 钥匙锁门禁 | 执行流程而非判断 | 信息锁:结论 + 身体动作 |
| 19 | 「此处无门」写在注释里 | 挪一张桌子就失效 | 从所有起点寻路断言不可达 |
| 20 | 前置条件卡地图可达性 | 无探索则无新线索,锁变墙 | 只卡剧情理解 |
| 21 | 纯计时凝视式高潮 | 被读成「什么都没做就通关」 | 用已有输入构成通关条件 |
| 22 | 高潮新增专用键 / 乱看视线累积进度 | 玩家被迫重建心智模型;变成耐心测试 | 复用已有按键与状态;移开视线退掉累积 |
| 23 | 深层文本比表层长 | 替玩家做完了总结 | 深层更短(12 → 6 行级别) |
| 24 | 一次性入口挂单次点击 | 某些路径永久错过 | 重入守卫或挂稳定复访点 |
| 25 | 暂停界面显示后续流程 | 探索变成核对清单 | 只报过去,未读只报数量 |
15 自查闸门清单
提交前逐条回答,答案必须包含具体数值或具体测试名。
机制层:1. 新机制在映射表里有来处吗?2. 状态是连续量 + 修正项,且夹逼有断言吗?3. 速率函数在跨阈值处连续吗?可感知时间落在 1.5–2 秒吗?4. 每条优化有独占收益与独占代价,且挂同一变量吗?代价是零新素材实现的吗?5. 这条优化会被怎么刷?堵了吗?6. 每个 > 1 秒的强制限制都伴随位移压力,且压力真的发生了吗?
规则层:7. 规则条数 == 机制条数吗?双向可查吗?8. 每个规则状态有退出路径吗?有超时保护吗?9. 明显解法列表里有新条目没判定吗?10. 新内容回答了「让哪条已有规则变得可玩」吗?按键数与状态机分支数不变吗?
表达层:11. 任何「只能去一次」的东西都有重入路径吗?12. 界面上有未来节点的痕迹吗?13. 玩家做的每一步,都能指出它违反了哪条规则吗?