论说 · 2026-06-28

将递归转化为谜题 —— Patrick's Parabox与Recursed的嵌套语法

将一张棋盘折叠进另一张棋盘——第三条设计轴

序言

数列思考型解谜游戏的动词,通常会归结到「推」「走」「转」等在棋盘上完结的操作。正如减法设计的谱系中所写,动词越少越深——这是我的基本立场。然而,有一个系统会撼动动词数量的计数方式本身。进入棋盘的某个部分时,那里又出现了同一张棋盘——以递归为主动词的谜题。本文将以Recursed、Patrick's Parabox、Cocoon为轴,从独立游戏制作者的视角,整理嵌套这一语法是如何成立的,以及为何难度会如此之高。

递归对于稍微写过编程的人来说是熟悉的概念,但作为谜题的动词则难以驾驭。箱子里有箱子,那个箱子里又有同样的箱子。当这种嵌套被翻译成玩家可以操作的形式时,递归才第一次成为谜题。这与元谜题的谱系中触及的「规则会动」系统,以及从Sokoban延续下来的减法系统都不同,是第三条轴。我称之为嵌套语法。

Recursed所翻译的 —— 将房间折叠进箱子

2016年9月30日,Portponky发布的Recursed是将递归直接变为游戏的早期到达点。玩家跳入宝箱时,便进入那个箱子里的房间。将箱子拿起搬运到别处,再次跳入,搬运的房间便在那里展开。这是将计算机科学中的变量作用域与函数调用,翻译为跳跃动作游戏的词汇。每次进入箱子,那个房间便会全新实体化——即使是同一个箱子,重新进入后内容物会恢复初始状态。

这种「重新进入则初始化」的行为,是Recursed难度的核心。玩家可以将房间的状态取出一次后,再次打开箱子重新创建,从而使同一个房间同时存在多个。此外本作还有壶(jar)这一机制,可以将现所在房间的回归路径作为物品携带。这几乎对应于编程中的续延(continuation)。动词只有「走」「跳」「持」,但状态空间随嵌套深度呈指数级以上的膨胀。

我对Recursed印象深刻的地方,是它无需说明文字,仅凭手感便传授了递归这一抽象概念。最初几关,玩家只是体验「进入箱子,房间增加」这一事实。正如学习曲线的雕刻方式中所论,本作将垂直的壁积累为概念本身的理解。与仓库番的推动词是物理不同,Recursed的动词是结构。读的不是棋盘,而是棋盘的嵌套结构。观察解析度的对象,从空间移向了结构。

Patrick's Parabox —— 将箱子推入箱子的语法

2022年3月29日,Patrick Traynor独自完成的Patrick's Parabox,是将递归重新叠加到仓库番的推动词上的作品。玩家能做的依旧只有「推」。然而推的对象——箱子的内部,又有另一张棋盘展开。可以将箱子推入另一个箱子,甚至可以将某个箱子推入自己内部。若将其理解为在Sokoban最小集合上仅增加了嵌套这一层,便能清楚地看出其设计的纯粹度。

Recursed将递归作为纵向动作展示,而Patrick's Parabox则将其落地为横向的推拉。正因如此,本作能以仓库番的词汇让人品味递归的难度。将箱子推入箱子,从外部施加的力也会传播至内部棋盘。后半段处理自己内部包含自己的自我参照箱子的关卡中,一手棋同时作用于多重嵌套,在脑中无法完全展开。这是减法设计产生的组合爆炸,最纯粹的扩展形式。

作为设计者,我想关注的是,Traynor将递归的各个性质一关一关地仔细分解来传授这一点。嵌套、自我参照、无限后退、反转。没有一次性呈现,而是按章节切分。将一眼看上去难以入手的递归概念,作为已知动词「推」的副作用,阶段性地开示。在递归系列的总汇中也有提及,Parabox为这一类型提供了教科书式的整理。

Cocoon与Maquette —— 携带世界的递归

2023年9月29日,由Limbo与Inside的游戏设计师Jeppe Carlsen率领的Geometric Interactive发布的Cocoon,将递归转化为了故事与空间的体验。玩家背负球体,潜入那个球内的世界。某个世界整个都在另一个球的内部,通过搬运球体,将世界本身重新组合成嵌套状态。与Recursed和Parabox是结构的操作不同,Cocoon将递归翻译成了「携带世界行走」这一身体性感觉。

2021年3月2日由Graceful Decay发布的Maquette,从另一角度展示递归。放置在中央台座上的小型模型,与外部广阔的世界以一比一重现。手边的小立方体,在外部会成为可以横渡的桥的大小。Cocoon是潜入嵌套,而Maquette则是同时从内外展示嵌套。递归的自相似——在任何尺度下都出现相同结构的性质——以空间的比例尺加以呈现。

这两部作品所示的,是递归并非仅仅是抽象逻辑的工具。背负世界、窥视模型。两者都将嵌套转换为身体的感觉。这与将观察变为游戏的谱系方向不同,但在让眼睛追踪嵌套深度这一点上是相通的。递归看似冷峻的数学概念,翻译得当的话,也能传递情感。Cocoon静默的到达感,我认为便是其证明。

递归的难度究竟有多深 —— undecidable这一底部

递归谜题的难度,与仓库番的组合爆炸在性质上不同。2020年,Erik Demaine、Justin Kopinsky、Jayson Lynch在论文《Recursed is not Recursive》中证明,Recursed的一般性关卡是否可解,在计算理论上是不可判定(undecidable)的。从Post对应问题的归约而来,而且可以构成实际可玩的15×20房间。谜题的难度超越了「手数很多」的说法,原理上失去了底部。

这作为设计的比喻也颇具启示性。仓库番的难度是指数级的,但有限,有足够时间的话可以用穷举法解决。但具备壶(续延)的Recursed,踏入了连这种有限性都无法保证的领域。我在此看到了递归这一动词固有的性格。既不增加动词,也不让规则运动,而是向结构中贯通一根深度这一无限轴。元谜题增加了规则的可动性,而递归则是向棋盘增加深度方向的发明。

当然,实际游戏之所以有趣,并不是因为失去了底部。Recursed和Parabox都精心挑选了可解的关卡,设计成玩家同时追踪的嵌套深度不超过两三层。拥有无限可能性的动词,控制在人类可读的深度内——这种抑制才是递归谜题设计的本体。增加深度容易,抑制深度困难。

参考链接

本文提及的作品·论文的一次资料:

Steam: Recursed (2016, Portponky)

Steam: Patrick's Parabox (2022, Patrick Traynor)

Wikipedia: Cocoon (2023, Geometric Interactive)

Wikipedia: Maquette (2021, Graceful Decay)

arXiv: Recursed is not Recursive — A Jarring Result (Demaine, Kopinsky, Lynch, ISAAC 2020)

总结

从仓库番开始的思考型解谜游戏谱系,分枝为增加动词的方向、让规则运动的方向,以及将结构嵌套的方向。Recursed将递归化为动作,Patrick's Parabox化为推的动词,Cocoon与Maquette化为身体与空间。共通点只有一处:将另一张棋盘折叠进棋盘之中。嵌套语法,作为有别于减法设计与元谜题的独立第三轴,确实存在。

若我下次制作递归谜题,最先决定的大概是「允许嵌套几层」。与将动词限定为一个同样重要,确定深度上限是设计的核心。玩家能在脑中展开的,最多两三层。在那堵壁的内侧,如何制造丰富的组合。我也想把这个问题留给读者。若你只允许嵌套一层,那一层里,你会放入什么?

Reactions (no login)

Anonymous • one of each per visitor per day