《帕特里克的无穷箱子奇遇》:“推箱子”与数学奇遇记
来源:网易游戏 | 2022-04-18 16:07:28

在各种各样的益智解谜游戏中,“推箱子”可以算是最经典、知名度最高的类型之一,有点类似于《扫雷》和《蜘蛛纸牌》。它玩起来简洁明快,没什么压力,即使是不了解电子游戏的人,也能从中体会到乐趣。

不过,也许是因为太过经典,“推箱子”在大多数人心目中被打上了休闲、轻度、碎片化之类的标签,他们可能会在通勤路上、饭后睡前,花一点时间玩个几局,不会特别铆足了劲尝试解决问题或者获得什么成就——甚至不太介意游戏的名字。而换个角度看,对休闲、益智的重视也让许多“推箱子”游戏在玩法上趋于雷同,只有那些最天马行空的创新——比如《Baba Is You》——才能给人留下深刻印象。

《帕特里克的无穷箱子奇遇》(Patrick’s Parabox)就是一款能给人留下深刻印象的游戏。

不就是“推箱子”么……等等,还能这么推的吗?

脑洞大开的关卡设计

《帕特里克的无穷箱子奇遇》卖相非常可爱,上手也非常简单。玩家只需要将作为“主角”的笑脸箱子和其他一些箱子推到指定地点,就大功告成。

然而,我很快发现这款游戏并不像看上去那么普通。它的确拥有经典“推箱子”游戏的一切要素:一些箱子、一个推箱子的“人”,以及不小心把箱子推到墙角就会陷入死局的基本规律。但游戏还引入了一种“嵌套”的概念——一些箱子可以嵌套进镂空的箱子里,箱子还可以通过缩放、映射等等机制,通过非常意想不到的方式到达其他地方。

换句话说,各种镂空的箱子和嵌套机制,相当于把原本的地图拓展了好几倍,让这个经典的滑块问题的解法变得更加复杂有趣。这种用很小的点子撬动了很大创意的作品,让人十分佩服。

箱子之间的嵌套关系是游戏创新的核心

整个游戏一共有350关,每个大章节主推一种玩法,越到后来越脑洞大开。比如你有可能要用一些镂空箱子造出原本不存在的推动路线,或者让箱子放大、缩小,在同步嵌套中“远程操控”一些箱子到达指定地点……

游戏的开发者是Patrick Traynor,在之前的一些采访中,他提到过这部作品的创意来源。Patrick读大学时是美国加利福尼亚州大学圣地亚哥分校游戏开发俱乐部的一员,当时他和朋友们一起在游戏社团中创作过一个小型Demo,基本玩法也是推箱子,但是加入了一些潜行元素。之后,他自己根据最初的想法做了一个双人游戏的模型,其中一位玩家控制的角色个子很小,而且可以穿墙——毕竟要“潜行”嘛。

没过多久,Patrick暂时对这个项目失去了兴趣,将它搁置起来。过了4年多,他才在阴差阳错之间又把当初的代码找出来,想在一次朋友聚会上展示。刚好,当时另一位开发者juner在某次Game Jam中公布了一款同样带有多层嵌套元素的推箱子游戏《Sokosoko》。Patrick很受启发,决定将这个点子继续做下去,最后形成了现在的样子。

虽然创意的雏形诞生很早,但这款游戏大概花了Patrick两年多的集中开发时间。在自己的社交动态和采访中,Patrick提到了好几个重要的灵感来源。除了juner的游戏,还有之前同样以烧脑著称的独立游戏《Baba Is You》以及另一款久负盛名的“推箱子”游戏变体《Stephen’s Sausage Roll》。

先来说说相对较老的那个。《Stephen’s Sausage Roll》是一款2016年发售的解谜游戏。游戏中的“箱子”被设定为香肠,玩家的目标是将香肠全部烤熟。为此,玩家必须控制小人将这些香肠推到散布在地图中的烤架上。

把香肠妥善地烤熟是一项技术活

这款游戏的解谜难点在于,香肠有上下两个面,每个面必须经过且仅能经过烤架一次,次数多了就会被烤焦,游戏失败。与此同时,香肠一般占据并排的两个格子,而烤架的形状和尺寸多种多样……所以,严格意义上讲,香肠需要烤的并非只有上下两个面,而是有4个“面”,或者说“格子”,玩家在“将箱子推到指定地点”的经典目标之外,还多了一个如何让它每个面都在指定地点滚一遍的难题。

相信我,这个小小的设计为玩家增加的障碍难以估量。

另外,在《Stephen’s Sausage Roll》中,小人可以站在任何方位,用叉子将香肠前后左右移动,而不是像经典的“推箱子”游戏那样只能向前推。在站位合理的情况下,也可以同时移动多个香肠。借助地图中的梯子,小人还可以站在香肠以及场景中的其他高台上,香肠之间也可以堆叠——没错,这是一款有立体地图的推箱子游戏!而这些机制究竟是开发者的“怜悯”,还是让解谜关卡变得更加复杂,就见仁见智了。

作为《帕特里克的无穷箱子奇遇》的另一个重要灵感来源,2019年发售的游戏《Baba Is You》对“推箱子”类型的创新看起来要更激进一些。在Steam评论区里能够看到不少玩家表示,这个游戏玩到后来让他们对自己的智商产生了怀疑……

这种感觉太正常了,因为《Baba Is You》将游戏的基本规则也变成了箱子——游戏里需要推动的“箱子”实际上是写着文字的方块,方块根据文字显示不同具有不同功能,把“箱子”推成不同顺序就能够改变游戏规则。这样一来,玩家的目标不再是老老实实把箱子从一个地方推到另一个地方,而是直接将构成规则的名词“推”成新的顺序,组成新的句子以赢得游戏。比如把规则改成“Baba Is Win”就能原地过关。而在解谜过程中,原本构成障碍物的“wall”和“rock”也能通过这种方式变成别的工具,还有“shift”和“flag”之类的辅助型“箱子”能帮助你想办法调整单词的顺序等等,形式非常多样,游戏机制灵活得叫人啧啧称奇。

当游戏规则也变成了箱子,玩家可能会和小兔子主人公一样陷入茫然

就个人感受而言,《Baba is You》对我这种普通玩家来说足够吸引人,但有些关卡确实有些太难,游戏的难度曲线过陡、缺乏适应过程也是许多玩家重点反馈的问题。《帕特里克的无穷箱子奇遇》在这个方面做得比较好,基本每一章引入一种新机制,“手把手”地教上一阵子,循序渐进地解释本章的主要玩法之后再出一些综合性比较强的谜题,所以整体难度曲线比较平滑。这并不是一件容易的事,Patrick也在采访中表示,难度曲线是设计过程中遇到的最大困难之一,给朋友们试玩过很多遍才慢慢定下来。

不过,总体而言,这些小瑕疵都不妨碍这几款游戏在谜题设计上的独树一帜,它们为众多玩家和开发者们打开了新世界的大门。

当“益智”游戏遇上数学

历史上最早的“推箱子”游戏《仓库番》(Sokoban)诞生于1982年,由日本Thinking Rabbit公司首次发行。游戏属于滑块谜题的一种,最初的版本有10个经典关卡和10个带隐藏墙壁的演化关卡。1984年,Thinking Rabbit推出了有50个关卡的《仓库番2》,之后又有了1989年的《仓库番完美篇》和1991年的《仓库番复仇篇》,两者各有306个关卡,有点类似于总集篇。

游戏最初是在日本非常古老的家用PC上发行的,后来通过Thinking Rabbit的授权移植到了一些别的平台和操作系统上,因此也衍生出了各种各样不同的版本,包括Game Boy、SFC、PS和手机平台的版本,但是游戏本身并没有特别大的变化,甚至可以说一直再没有官方新作诞生,反而是各种各样的衍生和创意作品越来越多。

但不管怎样,游戏本身以及它被后辈们模仿的核心没太大变化。“仓库番”系列基本奠定了此后大多数推箱子游戏的基本规则,比如箱子只能推不能拉,以及人不能同时推两个箱子。当然这些规则上的细节在后来者的设计中都可以被打破。

古早的《仓库番》游戏已经具备了“推箱子”游戏的基本雏形

那么,为什么“推箱子”如此长盛不衰,吸引了一代又一代开发者和玩家呢?原因也许在于,“推箱子”虽然经常被当作休闲益智游戏,但它本质上是个非常复杂的问题,比表面看上去复杂得多,而人们乐于通过战胜这些难关获得乐趣和满足感。

就像所有类型的游戏都会有孜孜不倦,探索各种可能性和最优解的硬核玩家,“推箱子”游戏也有一批忠实拥趸。有些特别的是,很多致力于研究“推箱子”的人是数学专业,尤其是专注于研究算法的人。如果你在网络上搜索“推箱子”,会发现有相当一部分结果指向“推箱子游戏自动求解算法”,“箱子推动路径搜索算法”乃至“判断推箱子关卡是否有解的多项式空间的算法”等等看起来令人生畏的东西。

实际上,“推箱子”这种表面上很简洁和基础的解谜游戏,其复杂的本质很早就受到了数学家们的关注。

这个问题究竟有多复杂?在维基百科“推箱子”词条的页面上能看到这样一段描述:“推箱子的解的复杂度被数学家证明了达到NP难(NP-hard)的程度,后来更被证明了它是PSPACE完全的。”

描述中这两个看起来很专业的名词都涉及到计算复杂度理论。看不懂也没关系,一般人只要知道,要用数学方法去证明一个推箱子关卡有解,是这一领域最困难的问题之一。如果要编写程序去自动求解某个推箱子关卡,运算量也十分庞大,甚至量子计算机也不能快速解决……

面对“推箱子”游戏的变数,人脑比计算机更擅长处理

一位“推箱子”爱好者,同时也是数学专业领域的博主曾经写过不少博文,专门讨论相关的数学问题,比如“推箱子”关卡文件和正则表达式、“推箱子”路径搜索算法……他也在实际操作中发现,“我们举办了好几年的MF8(魔方吧)‘推箱子’网络比赛,尚未见到有人或者组织能够用计算机快速解出我们的比赛主关”,而且,“在实践中,大多推‘箱子’求解程序使用大量的内存,往往是随‘推箱子’关卡大小呈指数增长”。

在这一点上,人脑可能比计算机更神奇。玩家们往往凭借直觉和反推的逻辑思维去解决游戏中的谜题,并且非常享受过程中的挑战。而对开发者来说,这意味着他们有大量毫不重复的关卡可用,在设计上拥有非常广阔的创作空间。在经典机制之外加上各种变数,就更加千变万化。

当然,这也可能造成一些困难。比如《Baba Is You》在很长时间中一直在更新关卡,小修小补,因为玩家在实际游玩的过程中推出了很多开发者都没想到的路线,有些容易导致关卡出现Bug。关卡编辑器也是在推箱子游戏爱好者中很受欢迎的更新,大佬们纷纷自己上手,设计出各种精彩的谜题。

回到《帕特里克的无穷箱子奇遇》,如果说它在我眼中有什么在同类游戏中独树一帜的特殊魅力,大概就是那种毫不掩饰的“Geek感”。游戏中的嵌套机制必定会在某个时刻造成“套娃”的效应,在后面的关卡中会出现“无穷大”和“无穷小”两个悖论。这意味着玩家在游戏中将某个箱子无限地推出了现有的嵌套箱外,或者将某个箱子无限地推进现有的嵌套箱里面,非常有意思。网络上还出现了如何同时推出两个悖论的教程。这种感觉还挺奇特的,仿佛自己一不小心在游戏中造出了什么神秘时空……就像小时候总喜欢盯着相对而立的两面镜子中无限延伸的空间那样。

在游戏中,有时候能推出悖论共存的神秘时空

这些机制将游戏和数学的联系在明面上表现了出来,搭配上可爱的美术风格和关卡本身的乐趣,有点痛快地展示“Geek的浪漫”的意思。而且,这种浪漫是锦上添花,一点也不高高在上,并不会影响普通玩家通关;硬核玩家则可以深挖这些机制,比如B站上就出现了计算数学专业的UP主发出的视频《如何用“集合论”知识玩“推箱子”》,感觉就是用理论知识解释了各种关卡为什么要这么解。在评论区中,不少同好开始热烈地讨论集合论是不是最适合用在这款游戏上的理论,让我觉得自己仿佛误入了数学兴趣小组。

一个令人惊喜的好例子

总而言之,我想,最精巧、最具生命力的解谜游戏的魅力,除了关卡本身的创意,还在于这种智性的浪漫。你能感觉到它背后有更深层的东西,能隐约地瞥见其中的奥秘,但你不需要变得很专业或者很聪明就能体会到乐趣,何况还有关卡编辑器这种参与感和互动感很强的元素存在。

《帕特里克的无穷箱子奇遇》是一个令人惊喜的好例子。它某种意义上的确是站在巨人肩膀上的产物,在它之前,各种各样的开发者们已经为“推箱子”这一地基般的游戏类型添砖加瓦了40年,但《帕特里克的无穷箱子奇遇》依然展现出了自己的特性。我喜欢开发者展现出的对游戏的热情,还有在过程和结果中展现出的智慧的美妙。

未来它会不会像《Baba Is You》那样进行大幅更新,或者玩出什么新花样呢?目前还没有这种迹象,但这种可能性始终值得期待。

精彩推荐