跳到主要内容

认知、派对与密室

感知自测、社会博弈与关卡设计

周四 8月 13 2026
14466 字 · 49 分钟

本文分三部分:先用八个体检单测出感官的出厂设置,再看派对桌上哪些事可以交给机器、哪些必须留给人,最后用四个密室与解谜组件拆解锁钥布线、提示分级与节奏预算。这三个主题背后是同一个问题:一套系统把什么交付给你,又把什么藏起来——感知系统交付一份加工过的摘要,派对游戏交付人与人之间的信息不对称,密室交付一张按需披露的依赖图。每个章节都能在站内组件里动手验证。

感官出厂设置的八项自检

感知系统从不汇报原始数据,它只交付一份加工过的摘要:色彩是三种视锥细胞的比值,音量是一条对数标尺,视野中央有一块每个传感器都缺失的洞,而你从未察觉。摘要系统的每个环节都可以量化,而测量装置比想象中简单——一块色板、一段纯音、一次闪现、一个节拍器就够了。

动手版本:色盲测试、听力测试、视野测试、快速识别、斯特鲁普测试、小键盘训练、双手协调、节奏测试。

色板上的遗传学

色盲测试的原理可以一句话说破:用亮度噪声做伪装,只留色相一条线索。

站内的色盲测试用 Canvas 画一块直径三百多像素的圆板,先撒约一千四百个背景圆点,颜色全部取自同一个基准色相加随机抖动;再把隐藏数字的笔画位置撒上一层色相恰好偏移了固定角度的点。

普通观察者靠色相差异把数字从背景里「抠」出来,而红绿色觉缺陷者对这段色相差不敏感,数字就融进了背景。

这个装置里最有意思的设计是难度旋钮。

源码里三档难度的差别只是一个数:数字层与背景层的色相偏移量(gap)分别取 120°、52° 和 22°。困难模式下两层颜色只差二十来度,已经贴近典型红绿缺陷者的辨色极限。

每层内部还各自做亮度抖动。背景点的亮度在一个区间里随机,数字点的亮度在另一个几乎重叠的区间里随机。

这步抖动是石原色板(Ishihara plate)的灵魂。如果两层亮度完全一致,观察者可以退而求其次用「哪边更亮」来解题;亮度一旦随机化,亮度线索被噪声淹没,色相就成了唯一的可用线索。

真正的诊断色板还要控制颜色的明度与饱和度分布,网页版做不到那么严格,但「亮度噪声 + 可调色相差」的骨架是一致的。

色觉缺陷为什么集中杀伤红绿?答案写在遗传学里。

人类的三种视蛋白基因中,感蓝的 SS 基因在 7 号染色体上,而感红(L-opsin)与感绿(M-opsin)的两个基因并排坐在 X 染色体的 q28 区段。

两者序列高度同源,本来就是几千万年前一次基因重复的产物。

同源序列排在一起容易发生不等交换,交换的结果要么缺失一个基因、要么产出一个「杂合」基因,其吸收峰落在红绿之间的错误位置。

红绿色盲最常见、而蓝黄色盲罕见的原因,也是为什么男性远比女性容易中招:男性只有一条 X 染色体,坏一个基因就显形;女性有两条备胎,人群中红绿色觉缺陷的比例约为男性 8% 对女性 0.5%。

判定逻辑里的一个细节:测试只做筛查不做分型。六块色板、十二个候选数字的池子、答对几块计几分,它能告诉你「你的红绿轴上大概率有缺口」,但分不清是缺失型还是异常型,那需要色觉检查仪测出完整的光谱响应曲线。

听觉的二分搜索

心理物理学里最基本的问题是:多弱的光、多轻的声音,你就察觉不到了?这个临界值叫阈值。

测量阈值的经典方法是极限法。声音从响到轻逐级递减,你举手说听不见的那一级就是阈值。

但站内的听力测试用了一个更聪明的方案:二分搜索。

装置的流程是固定的三段:250 Hz、1000 Hz、4000 Hz 三个频率逐个测。

每个频率从满音量出发播放 0.5 秒的正弦纯音,你有两个按钮:「听到了」和「没听到」。听到就减半音量,没听到就升到刚才与上一次之间的中点。

源码里维护的正是二分搜索的两个指针 lo 和 hi,每答一次收窄一半区间,六步之后取中点作为该频率的阈值。

由于音量参数是 0 到 1 的线性增益,报告时换算成分贝:20lg⁡(g)20\lg(g)。满音量是 0 dB,增益减半是 −6-6 dB,所以你在结果表里看到的全是负数。

数值越负,说明你需要声音被压得越轻才能刚好听见,也就是这只耳朵在该频段越灵敏。

「阈值」这个词的统计含义:它听起来像一堵墙,墙这边听得见、墙那边听不见。但真实数据是一条平缓的 S 形心理测量函数。

声音强度从零往上爬,报告「听见」的概率从 0 缓慢爬到 1,中间没有断崖。

所谓阈值只是这条曲线上检出率为 50%(或 75%)的那一个横坐标。把二分搜索六步之后的那个中点读成「你的听力分界线」,读的其实是「满音量到该点之间,检出与漏检打平」。

二分搜索在这里为什么合法?它要求「听到→减小刺激、没听到→增大刺激」的反应是单调的,心理测量函数恰好满足这一点。如果反应曲线不是单调的(比如疲劳导致后期乱按),搜索就会收敛到一个错误的平衡点。

所有靠被试自报的测量都背着这层风险。医学上把这类「信号取决于报告者」的测量叫主观测听,而脑干诱发电位那种绕开主观报告的叫客观测听。同一只耳朵,两种数字。

为什么选这三个频率?这要从耳蜗的构造说起。

耳蜗是一根卷起来的螺旋管,里面的基底膜像一架钢琴的琴弦:底端窄而紧、只对高频共振,顶端宽而松、负责低频。全耳约一万五千个毛细胞沿膜排成一条频率轴。

整个耳蜗就是一台频谱仪,位置就是频率。

坏消息是这条轴的损耗不均匀。毛细胞不可再生,而高频区的毛细胞工作负荷最重、代谢最脆弱,所以听力随年龄的衰减几乎总是从高频端开始塌陷。

职业病学的教科书里甚至有一个专属名词叫「4k 切迹」(noise notch)。长期噪声暴露的听力图上,4000 Hz 附近先出现一个独立的凹陷。

测试把三个探针放在 250、1000、4000 Hz,恰好覆盖「言语主干(250–1000 Hz 清晰度贡献最大)」与「高频前哨(4000 Hz)」两端。1000 Hz 还不错而 4000 Hz 明显要调得更响,就是典型的早期高频损失轮廓。

分贝本身也得停一下。

人耳可感知的声压范围跨了十二个数量级,线性标尺毫无可读性。而听觉系统对强度的主观感受近似正比于对数,所以声学统一用 20lg⁡(p/p0)20\lg(p/p_0) 说话。

上面的二分搜索在增益(线性域)上对半砍,落到分贝(对数域)上却是均匀的步进:每收窄一次区间,阈值报告值大约只挪 3 dB。

心理物理测量里「物理量取对数、搜索在物理量上做」是常见套路。二分六步的精度是 1/641/64,折到分贝上已经超过多数屏幕外放能分辨的程度。

视野与闪现

那块你从未发现的空洞

人眼的视网膜不是一块完整的感光板。视神经汇集穿出眼球的地方没有任何感光细胞,这片区域叫视神经盘,在视野上对应一个约五到七度宽的盲区,位于中央凹外侧约十五度。

它从不出现在你的主观视野里,是因为大脑用周围的纹理做了「填补」(filling-in)。与其把一块洞暴露给意识,不如就地编造。

绝大多数人一辈子不会注意到它,只有盯着特定位置、让某个目标恰好落进洞里时,它才会现形。目标不会消失,只是变得「说不清是什么颜色、什么形状」。

视野测试复现的正是「视野里哪里你看得见」这件事本身。红色光点在圆形视野内随机位置闪现 600 毫秒后消失,你用鼠标点击刚才看到的位置,落点与真实位置的偏差在 28 像素内算命中。

十二次试验之后,画布上会叠出一张绿色热力图。它按极坐标分箱记录命中密度,八个角度扇区乘四个同心半径环,共三十二格。

按极坐标分箱是有讲究的。视网膜的感受器密度只随偏心距(离中央凹的角距离)衰减,角向上大体对称,所以「视野能力」天然是径向变量,按半径环统计才能显示「越靠边越看不准」的梯度。方形网格只会把这条对称的径向梯度搅成噪点。

源码里还有一处细节:光点的偏心距被限制在视野半径的 25% 到 100% 之间。最中心那 25% 排除掉了,因为中央凹的分辨率是周边的数十倍,把光点丢在中央凹等于送分,测不出任何有意义的空间分布。

600 毫秒的闪现窗口也不是随手定的。

眼球做一次自主转移注视(眼跳)从决策到落定大约需要 150–200 毫秒。如果光点常驻,你完全可以名正言顺地「看一眼」,那就变成了眼动追踪游戏而不是视野测量。

600 毫秒远短于「发现目标—发起眼跳—重新注视—再报告」的完整链条,逼着你的周边视觉在一次注视之内独自作答,也就是视野检查的逻辑。

半秒一生的图标记忆

闪现的极限玩法是快速识别:一个字母在屏幕上只停留 450 毫秒,消失后从四个选项里挑出刚才那个,连做八轮,每一轮的反应时间精确到毫秒被记录下来。

这个范式直接致敬心理学史上最著名的记忆实验之一。Sperling 在 1960 年做的部分报告实验:让被试闪现 50 毫秒后报告十二个字母,全报告只能说出四五个;但如果闪现后响起高、中、低不同音调提示「只报告某一行」,被试几乎能报全那一行。

结论是:闪现后的一瞬间,视觉信息以高保真形式存在于一间巨大的缓冲室里,图标记忆(iconic memory)。但它衰减得极快,半秒内几乎清零,而被意识真正接住、转入工作记忆的只有四件上下的东西。

站内这个四选一的设计恰好卡在容量上。选项少到四个,是给工作记忆留活路;闪现 450 毫秒,长于图标记忆的存活期尾巴、短于你从容扫视的时间,测的就是「捕捉那一眼」的能力。

字母池的选择也有工程心思。二十四个候选字母排除了 I、O、0、1 这几个高混淆字符。特征重叠的字符会让错误来源从「记忆容量」漂移到「特征分辨」,两种失败混在一起,数据就没法解释了。

这是心理物理学实验设计的老规矩:每次只让一个变量出问题。

词义与墨色打架

斯特鲁普测试的界面只有一张牌。屏幕中央一个大字:「红」字的墨色可能是绿色,「蓝」字的墨色可能是红色。你的任务不是读它,而是点出它的墨色。

四个颜色按钮(红、绿、蓝、黄)、二十轮、每轮限时 2.5 秒,超时按答错计。分数旁边实时刷新正确率。

而真正有信息量的不是正确率,是你做完后对自己反应时间的体感:不一致试次(词义与墨色冲突)明显比一致试次慢。

这个 1935 年就发表的效应是认知心理学里最稳的实验发现之一,它的解释核心是加工的自动化程度不对称。

对熟练读者来说,读词是自动加工:字形摆在那里,词义自己蹦出来,不需要你决定去读。而对墨色命名,系统必须有意地、逐次地执行。

当两者冲突时,自动加工的产物(「红」这个词义)不会被弃置,它会持续涌入反应通道,执行系统得先花资源把它按下去。这段抑制的时间就是干扰量。

反过来如果任务是「读词」,墨色是什么几乎不影响你,因为墨色命名这条弱通路挤不进强通路的跑道。

不对称是单向的,这比「冲突导致变慢」这个表面描述深刻得多:自动性是单向阀门,强加工干扰弱加工,反之几乎不然。

斯特鲁普效应还有个语言相关的推论:对双语者来说,母语词引发的干扰显著大于外语词,因为自动化的程度取决于该语言的暴露量。

把它反过来用就成了隐式语言水平测试。想检查一个人哪种语言更「母语」,不必考词汇量,摆一堆不一致色词测反应时就行。

颜色词只取红绿蓝黄四色也非偷懒。这四个词高频、单字、无歧义,是把语言差异压到最小、把冲突机制孤立出来的标准选材。

一心不能二用

「边打字边聊天到底损失多少效率」这类问题,实验室里有标准范式:双任务。

站内把它做成了两个组件,一个测串行、一个测并行。

小键盘训练看起来只是打字练习。目标是一串四到六位的随机数字,在屏幕小键盘上照着敲,软件记录用时和错键数,完成的得分换算成「每分钟键入位数」。

但把它当认知任务看,它测的是视觉—运动转换通道的纯速度。数字串必须一位一位地做「识别 → 在键盘上定位 → 按下」的三段式流水线,而键盘上 0 到 9 十个键的位置是这套流水线里唯一的自由变量。

熟练者的提升几乎全部来自「定位」环节从检索变成反射。

这个环节有现成的定量模型:费茨定律。把指针移到宽 WW 距离 DD 的目标所需时间与 log⁡2(2D/W)\log_2(2D/W) 成正比。

小键盘三列四行的紧凑布局让每个键的 WW 大而 DD 小,这就是数字小键盘至今仍是数据录入标配的数学理由。布局不是习惯问题,是指数项前的系数问题。

双手协调则把双任务做成字面意义。画布上有两个圆圈靶子,一个跟着鼠标走(它自己还在缓慢漂移、撞墙反弹),另一个由方向键驱动(每按一下挪 6 像素)。

计分规则非常苛刻:只有当两个标记同时各自待在自己的靶心圈内时,毫秒数才开始累计。

这个设计把并行代价变成了可读的数。单看任何一只手,任务都简单到荒谬(鼠标追一个慢速反弹的圆,方向键追一个静止的圆),但双任务得分与总时长之比通常会狠狠打脸。

经典的解释是中央瓶颈模型。反应选择这类「决策级」加工是单通道的,两个任务在这里排队,后到的必须等。只有知觉与执行这类边缘环节可以真正并行。

所以双任务代价取决于两个任务各自有多少环节卡在中央通道上。一个高度自动化的任务(刷了上千次的方向键微调)留下的中央加工几乎为零,两个新手任务叠加则可能把通道堵到得分趋近于零。

这也是认知负荷测量的金标准为什么叫双任务范式:给主任务挂一个恒定负载的次任务,次任务成绩跌得越多,主任务占用的中央资源就越多。

节拍感与时间知觉

节奏测试把时间知觉做成了一件事:屏幕上的圆点按固定节拍闪现,你跟着点空格。

它测的不是你会不会打拍子,而是人类内部时钟的漂移。

人脑没有石英钟,时间靠神经元振荡的频率估算。这个振荡器有两个特点:偏置小但漂移大,秒级以内准,分钟级以上靠外部节拍器校准。

测试的流程是一串节拍间隔:先给一段参考节拍让你找感觉,然后间隔拉长、让你判断两个间隔是否等长,最后让你跟着一段速度变化的节拍打拍子。

源码里藏着一个有意思的设计:参考节拍不是匀速的,它在两档速度之间切换。这逼着你的内部时钟重新校准,而不是靠肌肉记忆硬接。

时间知觉的心理物理学结论在这里全部有了落脚点。韦伯定律在时间维度同样成立:短时距的辨别阈限约为 2–5%2\text{--}5\%,也就是 500 毫秒的间隔,人能分辨的差异大约是 10 到 25 毫秒。超过这个差异,你会觉得「这两个拍子不一样快」;在这个差异以内,你觉得它们是匀速的。

这也是为什么电子音乐的速度标注(BPM)通常是整数。听众对 ±2% 的速度变化无感,但 ±5% 就会明显觉得「快了」或「慢了」。制作人选 120 BPM 而不是 118.7 BPM,只是因为人耳根本分辨不出这个差别。

八个测试合起来看,感知系统的设计有一个共同取向:不追求精确,只追求够用。够用的系统把加工藏在水下;下一章的派对游戏反其道而行,把人与人之间的信息差直接搬上台面当玩法。

派对桌上的社会博弈

派对游戏是所有游戏类型里最特殊的一支:几张身份牌、一副水果卡、一块白板,组件本身几乎是空的,博弈全部发生在玩家之间。它天然对应社会博弈的三个母题——身份隐藏制造信息不对称,语言试探制造误导与反误导,节奏与随机制造失误和笑料;而当对抗退场,还有一类工具默默接管主持与记账。

动手版本:狼人杀法官助手、谁是卧底法官助手、德国心脏病、冒险队伍管理器、任务板。

狼人杀

狼人杀法官助手是个相当克制的实现。玩家 5–20 人可调,狼人 1 到半数可调,发牌只有三种身份:狼人、预言家、村民,其中预言家恰好一名。

按下开始,牌就随机洗好。每张玩家卡片可以点开查身份、也可以标记淘汰。夜晚与白天两个按钮切换阶段,胜负判定是自动的:狼全灭则好人阵营胜利,存活狼数不少于存活好人则狼人阵营胜利。

先看这份极简配置为什么够用。

女巫、猎人、守卫一个都没有,但博弈论的骨架一件不少。狼人是隐藏的少数派,村民是信息劣势的多数派,预言家是唯一的知情好人。三个位置凑齐,信息不对称的全部结构就齐了。

多余的角色增加的是主持负担与规则门槛,并不增加博弈维度。对「带一桌新人开狼人杀」这个场景,三身份配置接近帕累托最优。

数字上看这盘棋有多紧。

以默认 8 人 2 狼为例:每夜狼人刀一名好人,每个白天好人投出一名玩家。

推演两条路线。若白天每次都投中狼:第一夜后 2 狼 5 好,白天出 1 狼;第二夜后 1 狼 4 好,再出 1 狼,好人胜。

若白天投错两次:两夜刀加两张错票之后,场面变成 2 狼 2 好,判定式 w≥gw \ge g 成立,狼人阵营胜利。

两相对照可以数出:好人总共只输得起一张错票。

这个数字解释了狼人杀白天发言的全部压力来源。每次投票都是一次容错一发的贝叶斯更新,发言、表情、逻辑都在给「谁是狼」的后验概率挪动小数点。

预言家的价值也恰恰在这里。每晚一次查验,把「投票该投谁」从概率问题变成确定性问题,等于给好人那张唯一的错票上了保险。

狼人的对策完全对称:刀掉暴露的预言家,或者悍跳预言家制造第二个信息源。让好人阵营不知道该相信哪本账,错票就会自己长出来。

夜晚与白天这两个按钮也得多看一眼。狼人杀的全部信息节奏就藏在这次切换里。

夜晚是私有信息的生产线。狼人协商、预言家查验,产出的都是只属于局部的信息。

白天是私有信息的公开市场。发言与投票把私有信息推向公共账本,同时夹带伪造品。

组件把这个时钟做得很宽容。它不拦截任何操作,白天照样能查身份卡片。因为法官工具服务的是线下那桌人,按钮只是给全场一个共同的时间坐标,提醒现在轮到哪个世界说话。

20 人的可调上限同样有讲究。狼人杀的难度随人数超线性增长:人多意味着发言轮次多、单轮的信息增量被稀释、悍跳与被悍跳的辨识成本飙升。上限放到 20 而默认 8,是把新手局与大场面留给同一块面板。

还有两处源码细节很能说明「法官工具」的产品哲学。

其一,狼人数量的上限放到了玩家数的一半。但真把偶数局拉满到一半,开局就满足 w≥gw \ge g,判定直接宣布狼人阵营胜利。可玩配置实际上被规则本身钳制在「严格少于半数」,上限的宽松只是不替玩家做决定。

其二,淘汰按钮是开关式的,点错了再点一下就复活。

工具不裁决、不催促、不记仇。它只接管机器擅长的两件事:发牌的随机性(洗牌必须不可预测,这是信息不对称的物理基础)与判定的精确性(人数比较,机器不会口误)。剩下的全部留给人类。

悍跳要单独展开,因为它是全场最纯粹的信号博弈。

真预言家报查验,悍跳狼也报查验。好人面对两个信息源,手里的先验只有「谁的语言更像预言家」。

博弈矩阵几乎对称。真跳怕被怀疑,悍跳怕被戳穿。双方的最优发言都趋向同一种笃定语态,于是语态本身失去信息量。剩下的判据只有外部证据:报验对象的死活对不对得上、后续查验是否自洽、死亡玩家的身份与报验记录有无矛盾。

为什么法官工具只发牌、不记录发言?一旦工具替人存证,悍跳的生存空间就被压缩,游戏会向「查证流」收敛。发言环节的刻意留白,恰恰是留给骗术的生态位。

信息不对称游戏的设计底线在这里:工具可以消除随机性的执行误差,但不能消除随机性本身,更不能替人验伪。

谁是卧底

谁是卧底法官助手的机制更简单。3–12 人围坐,一名随机玩家拿到与众不同的词,大家轮流描述自己的词,投票淘汰嫌疑人,存活两人即揭晓答案。

全部玄机押在两个地方:词对与描述。

词对是一门语义工程。

站内置了 15 组词对,粗看是随手一放,细看有一条清晰的坐标轴。

猫和老虎是同类不同级,警察和保安是同域不同职,医生和护士是同场所不同分工,火车和地铁是同工具不同场景。

墨水和酱油最毒:颜色几乎一样、用途毫无关系。钢琴和风琴干脆在名字上埋雷。

这 15 组还能再读出三层梯度。奶茶与咖啡是近义轴,雨伞与帐篷是功能轴(同为遮蔽物),蜡烛与油灯是时代轴(同为光源)。

轴型不同,描述轮的暴露方式就不同。近义轴靠「细粒度描述」切开,功能轴靠「使用场景」区分,时代轴则额外考验玩家的知识储备。

好的词对要满足一条矛盾律:近到卧底描得出来,远到一旦说漏立刻对不上账。

太远(猫和卡车),卧底第一轮就露馅。太近(沙子和水泥),全场描述无法区分,投票退化成随机。

这条「语义距离」的窗口窄得惊人。15 组词对等于 15 次对窗口位置的人工标定。词库的质量决定游戏的上限,机制本身反而简单。

描述轮是一个标准的信号博弈。

平民的最优策略是给出判别性描述:对平民词为真、对卧底词为假的命题。比如词对(苹果,梨)说「皮不用削」。

但这立刻引出信息泄漏问题。描述说得太判别,等于把平民词的关键属性广播给卧底,他下一轮就能对齐。

于是实际的均衡是所有人都在说半真半假的模糊话,信息的释放速度被刻意压慢。谁是卧底的发言轮不是在找卧底,是在控制信息流速。

投票的概率账也好算。默认 5 人 1 卧底,若每轮纯粹随机淘汰,好人连错三轮、卧底才能活到揭晓,概率是 45×34×23=25\frac{4}{5}\times\frac{3}{4}\times\frac{2}{3}=\frac{2}{5}。

随机基线给了卧底四成存活率。这解释了为什么描述轮的每句话都真的在改变赔率:发言的全部作用,就是把投票从 0.4 的基线往上或往下拉。

组件的交互也贴着「传设备」的线下场景设计。

卡片默认盖着,点查看看词、再点隐藏盖回,淘汰只在卡片盖着时允许,游戏在存活两人时揭晓全部身份。

与狼人杀法官助手一样,它把可自动化的(词对抽取、身份分配、揭晓)全部自动化,把不可自动化的(描述、误导、说服)原样留给人。

卧底一侧的策略链也列一遍。

前期用泛化描述蹭平民的话术。词对越近越好蹭,「它是日常的」这类废话句安全系数最高。

中期观察谁被反复怀疑,把票引向别人。

末期存活人数逼近揭晓线时,目标反而是挤进终局的二人组。因为存活两人即揭晓,撑进终局就是民间计分里的胜利。此时该做的不是继续隐藏,而是停止犯错。

平民一侧的对策同样分层。先用重复投票测反应(同一人两轮被指认就升优先级),再用「描述回放」对账:把某人前后两轮的描述并排看,词对再近也会在细节上露缝。

这些策略之所以成立,全部依赖三个机制前提:描述是公开的、词是私有的、票数是共同知识。三者缺一,信号博弈就散架。这也反过来说明为什么这款游戏的变体(盲拆词、暗票制)改的从来都是这三个前提之一。

德国心脏病

德国心脏病是五件套里唯一考验手的游戏。

站内实现:四种水果各 10 张共 40 张牌,每张牌印着 1–5 的数字(每种水果的每个数字各两张),洗牌后你与电脑各分 20 张。

点「翻牌」你出一张,电脑立刻跟一张。桌面上任一水果的数字总和恰好等于 5 的瞬间,钟响,你有 1.3 秒按下敲钟收走整桌牌,超时则电脑收走。

四个水果总和以徽章形式常驻屏幕上方。追踪它们,就是这款游戏全部难度的来源。

先说它怎么制造失误。

人类的简单反应时约 0.2 秒,但那是对「明确单一信号」的反应。这里的信号是四条并行累加的计数器,任何一张牌都可能让其中一条到达 5。

这实质是一个四通道的 Go/No-Go 任务:绝大多数牌面是 No-Go(忍住不动),少数是 Go(立即出手)。

认知负荷把反应时推高数倍,而 1.3 秒的窗口恰好卡在「清醒时够用、分神时刚好不够」的位置。

更狠的是两个结构性的坑。

过点不回。每个水果的桌面总和在两次钟响之间只增不减,从 3 直接翻出一张 4 跳到 7,5 这个点就永远错过了。直到有人收走整桌重新起算。错过窗口的懊悔感,会诱发下一次的提前出手。

总和逼近 5 的前一张牌出现时,玩家进入预期状态,预期性反应正是抢拍的温床。

有趣的是,源码把「抢拍」从物理上取消了。钟没响时敲钟按钮是禁用的。原版桌游里最经典的「拍错铃铛送牌」失误被按钮的禁用态消除了。站内版本的失误只剩超时一种,惩罚也从「送牌给对手」简化为「对手白拿桌面」。

再说说那位电脑对手:它没有智能。

它从不主动判断、从不失误,得分全部来自你的超时。它被实现为一个 1.3 秒的沙漏加一台自动跟牌机。

这个设计相当诚实:反应类游戏的乐趣本来就不在对手强弱,而在自己神经系统的临场表现。电脑的职责是当一台精确的计时器,把「你慢了」这个事实不加感情地执行掉。

希克定律给这个难度一个量化注脚:RT=a+blog⁡2(n+1)RT = a + b\log_2(n+1)。选择通道从 1 个增加到 4 个,反应时按对数而非线性爬升。

但德国心脏病的狠处在通道数量之外。四个计数器共享同一张桌面,玩家的注意力要在四枚常驻徽章之间做动态分配。每次翻牌只改写其中一个计数器,但「下一秒该盯哪一个」随局面不断换人。

牌堆里还藏着一个隐形主角:数字 5 的牌。

若某种水果的桌面总和还是 0,一张 5 直接钟响。若总和已是 1–4,同一张牌直接把该水果送过点。同一张牌是机会还是陷阱,完全取决于它入场时的桌面状态。

而收走桌面会同时把四个计数器清零,等于把四条跑道一起拉回起跑线。所以「什么时候钟响」不只是反应题,还是节奏题:早敲收下小桌面,晚敲可能彻底错过,整局就在这个权衡里滚动。

牌堆本身也有讲究。每种水果 1–5 各两张、共 30 点,40 张牌平均每张 3 点,桌面数字匀速上涨。「恰好 5」是一个流动的靶子。洗牌的随机性保证每次逼近 5 的路径都不同,也就保证失误无法被肌肉记忆免疫。

胜负结算的是全程收走的牌数。两摞各 20 张同步见底,最后比的就是谁失误得更少。反应游戏把运气压缩到发牌瞬间,剩下的全交给神经。

跑团工具

五件套里的另外两件根本不是对抗游戏。

冒险队伍管理器是一块跑团(桌上角色扮演)面板。录入姓名、职业、生命、上限、护甲五项建出一支小队,每个成员有正常、倒地、死亡三档状态,生命条随状态换色(绿、黄、红),血量用 ±1 的按钮微调。预置队伍里那位牧师初始就是倒地状态。

任务板则是一块任务追踪白板。标题、三档难度(简单/普通/困难)、奖励,三段状态(未开始/进行中/已完成)点按钮推进,顶部挂着三枚计数徽章。预置任务从屠哥布林营地一路排到挑战恶龙。

下面内嵌的是同属跑团工具的 DND 角色卡:选好种族与职业,一张可随身携带的属性卡当场生成。

把这两个组件放进「派对游戏」的语境,恰好照亮一个常被忽略的设计维度:随机性放在哪里。

狼人杀把随机放在开局(洗牌发牌),德国心脏病把随机放在牌序,谁是卧底把随机放在词对与身份抽取。随机性内置在行动层,是为了让弱者也有机会赢一手:新手可以在狼人杀里靠站位躲刀,可以在德国心脏病里碰上好牌序。随机流持续洗牌,正是「维持娱乐而非竞技」的技术实现。

而跑团工具走了完全相反的路:把随机性整个外置。

骰子由人来掷,结算由人来裁定,面板只做一件事:记账。队伍管理器没有任何胜负判定,任务板没有计分与倒计时。它们是五件套里仅有的两个「没有输赢」的组件。

因为跑团的娱乐核心是叙事的连续性,而不是结算的公平性。面板的价值是让主持人少记错一个血量、少丢一张任务卡,桌上的戏剧性仍然由人制造。

两块面板的细节都值得从「主持人负担」的角度读一遍。

生命值用 ±1 按钮而不是自由输入,是把修改成本压到最低。跑团桌上战斗节奏以秒计,主持人的注意力必须留在桌面上。

生命条的颜色编码(正常绿、倒地黄、死亡红)借用交通灯范式,扫一眼就知道谁出事,不用读数字。

预置队伍里那位倒地的牧师,则是一次无声的用法示范:状态字段就是为这种时刻准备的。

任务板的三档难度与三段状态同样是「最小完备」设计。难度够挂优先级,状态够跑流程,再多一档就是负担。

更有意思的是它们与对抗组件共享同一套技术栈、却服务相反的分工。

德国心脏病把机器算得快的(计数)交给机器、把人擅长的(反应)留给人。跑团面板把人算不快的(同时追踪五六个变量的状态账)揽给自己、把人擅长的(叙事与裁决)还给人。

两种场景分工方向相反,原则是同一个:机器揽记账,人留决定。

这也是「派对」一词两层含义的分野。一层是聚会上的对抗游戏,随机性与笑料绑定。一层是围桌共叙的跑团,随机性只是叙事的骰子。

判定自动化的边界

回头看这五个组件,有一条贯穿的工程原则:可验证的交给机器,不可验证的留给人类。

发牌与洗牌(必须不可预测)——机器。计数与计时(必须精确)——机器。状态与胜负(必须无口误)——机器。描述、说服、投票与表演——人类。德国心脏病的四个水果总和恰好是机器碾压人类的领域,组件把它做成常驻徽章替玩家省下最伤神的记账,却把 1.3 秒的出手决定留给玩家。

清单里没有一项写着「必须公平」。狼人杀的夜刀可以不讲道理,卧底的词对可以偏心,心脏病的钟窗只有 1.3 秒。派对游戏不需要公平,只需要不可预测且对所有人一致:随机性对所有人一致,才有共同的笑料;判定对所有人一致,才有共同的输赢;而一致性的最便宜实现,就是交给机器。

反过来,描述轮的说服、投票轮的博弈、悍跳时的心跳,机器一样都接管不了——不是技术上不能模拟,而是模拟了就不成立。派对游戏的对手必须是真人,因为这类游戏的生产资料就是真人之间的信息差与信任差。

判定自动化的边界,就是社会博弈的边界:机器能管理随机性、记录状态、执行规则,唯独不能替你骗过你的朋友,也不能替你决定相信谁。

派对游戏把边界画在「哪些事可以交给机器」上;密室与解谜关卡则在另一条边界上做文章——作者脑子里那张依赖图,按什么节奏披露给玩家。

锁、钥匙与节奏预算

密室类游戏给「解题」套了一层空间叙事的壳:谜题还是那道谜题,但玩家面对的不再是题卡,而是一扇锁着的门——门后有钥匙,钥匙在别处,别处又是一道锁。关卡设计的全部手艺就藏在这条绕口令里:锁与钥匙怎么布线,线索按什么顺序披露,卡住的人如何被悄悄推一把。

动手版本:解密逃脱、密室逃脱:进阶、十滴水、叠叠乐。

锁与钥匙

把一座密室抽象一下,剩下的就是一张有向图。

节点是「锁」,一切阻止推进的状态。一扇门、一个保险箱、一块需要工具才能撬开的通风口盖板。

边从「钥匙」指向它能打开的锁。这里的钥匙既可以是道具,也可以是一条信息。

设计密室时真正在纸上画的不是房间平面图,而是这张依赖图。它只有两条硬约束。

不断链:每把锁的钥匙必须从初始状态出发可达。

无自锁环:不能让某把锁的钥匙被这把锁自己挡在身后。

违反第一条的关卡无解,违反第二条的关卡死锁。两者都让玩家根本进不了状态就直接退出。

按钥匙的性质,锁还能再分两类,设计手感完全不同。

信息锁的钥匙是一条可以随时重新推导的结论。解密逃脱的三把锁全是这一类。书房里「画作年份的倒序即保险箱密码」,走廊里「与墙纸同色的那把钥匙」,金库里「数列的下一项」(三个房间的名字正是书房、走廊、金库)。

线索面板常驻,答案任何时刻都可以重新算出来。所以信息锁在拓扑上不可能死局。最坏的情况是玩家没读懂线索,而不是世界进入了无解状态。

道具锁则不同。钥匙是一件占据空间位置的对象,必须走到、拾取、随身携带。可达性成了额外约束,依赖图从纸面延伸进了场景。

密室逃脱:进阶的通关链是一条教科书式的道具锁长链。房间一的地毯下压着钥匙,拾取之后才打得开通往房间二的门。房间二里摆着一张纸条和一个保险箱,输入四位密码(源码里写死为 7391)开箱拿到撬棍。房间三的通风口要用撬棍撬开,人从洞里爬出去。

每条边都不断链。唯一的「装饰边」是那张纸条,可以查看、可以拾取,却不参与任何解锁,是一枚纯粹的气氛道具。

但这条链上有一处真实的拓扑隐患,值得单独拎出来看。

从房间二进房间三没有任何门槛,而房间只能前进、不能折返。如果玩家没开保险箱就直接点了「下一间」,他会站在通风口前收到一句「你需要撬棍才能撬开通风口。」

可保险箱已经永远留在了身后,撬棍再也拿不到,唯一的出路是重新开始。

依赖图本身无环也无断链,问题出在单向推进让「钥匙在身后」成了一个可达状态。

商业密室游戏对这类死局的标准修补是给门加一条回溯边(允许反悔),或者把进入最终区域的资格直接绑在终极钥匙上。源码层面的修法只需一行判定:进房间三之前检查撬棍。

这个反例恰好说明依赖图分析的价值:画在纸上一眼就能看见的环与断链,藏进三间房间就是「玩到一半发现完了」。

随机参数与固定剧本

同一个密室品类,两个组件给出了相反的重玩性方案。

解密逃脱是随机参数派。每一局三间房间的谜题表面全部重新抽取。画作年份从 100 到 999 均匀取值,共 900 种。墙纸颜色三选一。数列题的首项取 2 到 9、公差取 2 到 5,各 8 种与 4 种,合计 32 种。

三者相乘,一局共有 900×3×32=86400900\times3\times32=86400 种表面组合。

但请注意随机化碰了什么、没碰什么。三个房间的顺序、三种题型、线性推进的结构纹丝不动。随机的是参数,不是结构。

玩家第二局就会发现,自己不是在玩新关卡,而是在做同一张卷子的新试卷号。

这是设计上的取舍。结构级随机(像 roguelike 那样重组依赖图)极易生成出断链和死锁,上一节那两条硬约束恰恰是自动生成最难保证的。参数级随机则天然安全,因为依赖图根本没动。

参数化的隐藏成本在别处:线索必须跟着参数一起生成。源码里三段线索全是带占位符的模板。「画上写着 {year}」「墙纸是{color}的」「找出数列的下一个数:{seq}」。每个随机参数都得配一句能把它自证出来的话,漏一句,那道题就成了无头案。

参数化还有几个容易漏掉的边角。

年份倒序是按字符串做的,120 倒过来是 021 而不是 21。所以答案比对用字符串全等,输入框的占位符也写成三位数的 000。一个前导零的细节,背后是「参数空间里的每个实例都必须可判定」这条纪律。

数列的参数范围也值得看一眼。首项 2–9、公差 2–5,刻意收窄,保证第四项之后的心算量不超纲。随机化不能碰难度预算,重玩性买到的是新鲜感,不是难度漂移。

顺带按生日悖论算一笔。八万六千多种组合看着多,大约玩到三百多局就会撞上第一张重复的卷子。参数空间的膨胀是平方根级的,靠它撑起的长线重玩从来都有限。

密室逃脱:进阶站在另一头:固定剧本派。

密码写死、道具位置固定、路径唯一,通关一次之后重玩价值瞬间归零。

它换来的东西同样值钱。手工剧本可以逐节点精调。每件物品放在哪、每句文案说什么、提示给到哪一级,全都是为那条唯一路径定制的。

随机派卖的是第一百局的体验,固定派卖的是第一局。在两三分钟一局的体量里,这两派几乎是「想让人多玩」与「想让人玩懂」的分工。

固定剧本的思路往上追,与纸笔谜题的「规则经济学」是同一条设计哲学。谜题靠规则的稀缺换唯一解,密室靠锁的布线换体验节奏,两者都要求作者对整张图有全局视野。

这一脉的拆法此前写过一篇六种纸笔谜题的规则与解法骨架,可以对照着读。

提示与失败文案

卡关不是故障,是依赖图在玩家脑子里还没画完。

提示系统的本质,是把作者脑子里那张图按需披露给玩家。按披露粒度可以分三级。

方向级:「房间里还有没查过的东西」。

位置级:「看看地毯」。

操作级:「掀开地毯拿走钥匙」。

密室逃脱:进阶的提示按钮给的是最末一级。按所在房间直接给一句操作级提示,房间一是「提示:掀开地毯拿走钥匙。」,房间二是「提示:读纸条,再用保险箱密码。」,房间三是「提示:用撬棍撬开通风口逃脱。」。

对象、动作、一步到位,玩家永远不会再卡。

代价也在这里。操作级提示跳过了全部推理台阶,三间房间按三下,等于游戏自己玩给了你看。

商业作品因此普遍给提示定价。计时罚分、次数上限、提示点数。而组件选择了无限量免费供应。

这个选择在它的体量里是合理的。推理链总共三步,玩家按提示的动机本就不强,定价系统反而是负资产。同样的策略放进三十步的链里,就等于拆掉了游戏。

比提示按钮更便宜的是失败文案。

密室逃脱:进阶的两句拒绝语:「你需要钥匙才能打开下一扇门。」和「你需要撬棍才能撬开通风口。」不是笼统的「不行」,而是精确报告了缺失的依赖边。缺什么、缺的东西用在哪,一句话讲完。

玩家从失败里读到的是图的结构。

对照 解密逃脱,答错只有一句「不对哦。」。但它的锁全是信息锁,线索面板常驻,重读线索就是提示,极简的拒绝语反而成立。

两相对照可以得到一条经验:失败文案的详略应该跟着锁的类型走。道具锁的失败要报缺什么,信息锁的失败只需催你再看一眼。

组件里还有一条常被忽略的披露通道:日志。

密室逃脱:进阶的每次查看、拾取、使用都会追加进日志区,滚动保存。它同时是外部记忆(我查过什么、拿过什么)和事后复盘材料。卡住时往回翻,需要的线索往往已经在里面。

日志式披露还有一个隐藏好处:转移历史全在屏幕上,它天然就是一份可见的存档。

叠叠乐

物理小游戏的关卡设计换了一套语法:没有锁,只有一条不断收紧的风险曲线。

叠叠乐的塔是 12 层、每层 3 块、共 36 块积木。目标是抽到全场只剩 3 块,也就是成功抽取 33 次。

坍塌有两条规则,一条确定一条概率。

确定性的那条管结构:抽空一层而上方仍有积木,塔倒。

概率性的那条管损耗:每次抽取都掷一次隐形的骰子,坍塌概率等于 5% 加上 2% 乘以「弱层」数。弱层指抽取位置下方那些只剩不超过 1 块的层。

先看概率规则给出的张力曲线。每抽残一层,之后每一手都贵 2%。要是专门掏空下盘再继续,理论上限是 0.05+0.02×11=27%0.05+0.02\times11=27\%,将近三分之一的抽取直接送塔上天。

风险不是抽签式的固定分布,而是由你此前抽了哪里决定。危险是玩家自己攒出来的。

「张力曲线」和「随机曲线」的区别:前者有账单,账单上写着你的名字。

但源码里其实埋了一条结构性安全路线。

确定性规则只看上方。顶层上方永远没东西,可以随便抽空。抽空一层之后,下一层的上方也就空了。自顶向下逐层清空,确定性坍塌永不触发。

而弱层只数下方。自顶向下时下方全程满编三块,弱层数恒为零,每一手的坍塌率恒为 5%。

于是最优路线下的整局是一场 33 次独立试验:存活率 0.9533≈18%0.95^{33}\approx18\%。

再算一笔期望账。5% 的恒定危险率意味着期望第 20 手上下塔就倒了,而通关需要活过 33 手。即使路线最优,赢也是小概率事件。

这不是数值失误。实体叠叠乐本来就是输多赢少的游戏,5% 的基础率把那种「迟早要塌」的桌感原样搬进了参数。

界面上只有两个计数器:抽取数与剩余积木数。没有血条,没有概率显示,5% 与 2% 全部埋在代码里。玩家只能从「抽下面塌得快」的体感里反推规则。

物理游戏的惯例是让数学躲在手感后面。手感对了,数学自然被玩出来。

这条概率规则还有一层时间结构值得注意。危险率不随时间自动上涨,只随空间上涨。

而且塔的伤疤全在明处。被抽走的积木原地留下灰槽,哪些层已经残了、下方攒了几个弱层,一眼可数。

懒散的打法(先掏最顺手的下面两层)会把此后的每一手抬到 9%,期望十一手上下就塌。规整的自顶向下打法则全程压在 5%。

同一座塔,风险曲线因人而异。关卡设计把「怎么抽」的自由度留给玩家,也把随之而来的账单留给玩家。

十滴水

十滴水的盘面是 5×5 的格子,每格可以积 0 到 3 滴水。

点击任意格加一滴,某格积满 4 滴即刻引爆。本格清零,向上下左右各溅出一滴,溅出的水可能把别的格子顶过临界点,连锁由源码里的一个循环反复结算,直到盘面上再无临界格。

玩法说明只有一句「点击任意格子加一滴水。一格达到 4 滴会爆炸,向四周各溅出一滴。把棋盘清空即获胜。」。

但这条规则里埋着一笔守恒账,想通关必须先算清它。

爆炸的收支因位置而异。

内部格子爆炸,本格 −4、四个邻居 +4,总水量一滴不少。

边上的格子只有三个邻居,净流出 1 滴。

角上只有两个邻居,净流出 2 滴。

也就是说,棋盘边界是全盘唯一的排水口。「清空全场」这个胜利条件翻译过来就是:让每一滴水都以边界爆炸的方式离场。

每一格的读数就是一块压力表,4 是爆表线。全局水位再高都不直接致命,致命的是水位高还全憋在内部。

十滴水的「水位压力」不是比喻,是可以逐格记账的物理量。

三道预置关卡的总水量分别是 20、17、30 滴,全部要从外围 16 个边角格泄出去。

临界值 4 这个数也不是随便选的。内部格子的邻居恰好是 4 个,爆炸等于把一滴水沿每条边推出去。阈值等于度数,一滴不多、一滴不少地分给四邻。

而边与角的度数只有 3 和 2,阈值却仍是 4。缺口正好就是泄漏量:格子越靠边,爆一次亏得越多。

规则的全部经济性都藏在这笔度数差里。

第二层结构是连锁的次序无关性。这盘棋在数学上就是一个阿贝尔沙堆(abelian sandpile)。同一组点击,无论以什么顺序执行、连锁以什么顺序结算,最终稳态唯一。

这条性质把「解题」变成一个干净的问题。选一个「点哪些格、各点几次」的多重集,剩下的交给必然性。

顶部的步数计数器因此有了准确含义:它数的是你离最小点击集还有多远。

三道预置题还演示了两种相反的节奏。

第二关的两个角格出厂就积着 4 滴,处于临界态(显示上带警示描边),任意一次点击都会引爆它们并掀起全盘连锁。一道「开局即高潮」的题,第一手就是最大的事件。

另外两道相反,要从零开始逐格攒压力。

源码里还有一道保险丝:结算循环带着 2000 次迭代的上限。有限盘面加边界泄流的沙堆理论上必然稳定,这个上限纯属防御性编程。好的关卡机制自己会收敛,代码只需防止它万一不收敛。

节奏窄带

「卡关十分钟」和「无聊三十秒」之间只有一条窄带:两次进度事件之间的间隔。

间隔太长,玩家在挫败里离场。太短,进度贬值成流水账,没有人会对第十次自动到账的奖励心动。

密室与解谜关卡的全部节奏设计,都是在给这个间隔做预算。

四个组件的时间标尺可以放在一起看。

解密逃脱一局三锁,答错无惩罚、判定即时,一局两分钟上下,进度事件的间隔被压到几十秒一级。

密室逃脱:进阶一局的必需交互不过十次上下,间隔稍长,但每一步都附带一次场景交互,密不透风。

叠叠乐把两分钟切成 33 次心跳,每手之间隔着一次「这把会不会塌」的悬念。

十滴水则把几分钟切成若干次「这一下会不会炸穿全场」的赌注。

共同前提是反馈即时。答错当场亮、连锁当帧结、塔倒立刻弹。窄带里的时间感靠即时反馈撑着,任何一处迟到的反馈都会把它拉宽到不可玩。

窄带的两堵墙各有一套防御。

左墙(卡关)由提示系统防。操作级提示、报缺的失败文案、常驻的线索面板,全是泄压阀。

右墙(无聊)由随机化防。参数重抽让第二局的题面不再重复。

两个方向的费用最后记在同一个账户上。披露得越多,推理越少。随机得越多,作者的手工控制越少。

关卡设计就是在给「卡住」定价。免费的提示、写进失败文案里的依赖边,是把价格压到玩家愿意继续的下限之下。参数化、预置关卡、递增的风险曲线,则是源源不断地造出「再来一局」的理由。


感谢您的阅读!如果可以,给俺点些关注吧~

认知、派对与密室

周四 8月 13 2026
14466 字 · 49 分钟