特别版推箱子( 三 )


游戏最初是在日本非常古老的家用PC上发行的,后来通过Thinking Rabbit的授权移植到了一些别的平台和操作系统上,因此也衍生出了各种各样不同的版本,包括Game Boy、SFC、PS和手机平台的版本,但是游戏本身并没有特别大的变化,甚至可以说一直再没有官方新作诞生,反而是各种各样的衍生和创意作品越来越多 。
但不管怎样,游戏本身以及它被后辈们模仿的核心没太大变化 。“仓库番”系列基本奠定了此后大多数推箱子游戏的基本规则,比如箱子只能推不能拉,以及人不能同时推两个箱子 。当然这些规则上的细节在后来者的设计中都可以被打破 。
古早的《仓库番》游戏已经具备了“推箱子”游戏的基本雏形
那么,为什么“推箱子”如此长盛不衰,吸引了一代又一代开发者和玩家呢?原因也许在于,“推箱子”虽然经常被当作休闲益智游戏,但它本质上是个非常复杂的问题,比表面看上去复杂得多,而人们乐于通过战胜这些难关获得乐趣和满足感 。
就像所有类型的游戏都会有孜孜不倦,探索各种可能性和最优解的硬核玩家,“推箱子”游戏也有一批忠实拥趸 。有些特别的是,很多致力于研究“推箱子”的人是数学专业,尤其是专注于研究算法的人 。如果你在网络上搜索“推箱子”,会发现有相当一部分结果指向“推箱子游戏自动求解算法”,“箱子推动路径搜索算法”乃至“判断推箱子关卡是否有解的多项式空间的算法”等等看起来令人生畏的东西 。
实际上,“推箱子”这种表面上很简洁和基础的解谜游戏,其复杂的本质很早就受到了数学家们的关注 。
这个问题究竟有多复杂?在 *** “推箱子”词条的页面上能看到这样一段描述:“推箱子的解的复杂度被数学家证明了达到NP难(NP-hard)的程度,后来更被证明了它是PSPACE完全的 。”
描述中这两个看起来很专业的名词都涉及到计算复杂度理论 。看不懂也没关系,一般人只要知道,要用数学 *** 去证明一个推箱子关卡有解,是这一领域最困难的问题之一 。如果要编写程序去自动求解某个推箱子关卡,运算量也十分庞大,甚至量子计算机也不能快速解决……
面对“推箱子”游戏的变数,人脑比计算机更擅长处理
一位“推箱子”爱好者,同时也是数学专业领域的博主曾经写过不少博文,专门讨论相关的数学问题,比如“推箱子”关卡文件和正则表达式、“推箱子”路径搜索算法……他也在实际操作中发现,“我们举办了好几年的MF8(魔方吧)‘推箱子’网络比赛,尚未见到有人或者组织能够用计算机快速解出我们的比赛主关”,而且,“在实践中,大多推‘箱子’求解程序使用大量的内存,往往是随‘推箱子’关卡大小呈指数增长” 。
在这一点上,人脑可能比计算机更神奇 。玩家们往往凭借直觉和反推的逻辑思维去解决游戏中的谜题,并且非常享受过程中的挑战 。而对开发者来说,这意味着他们有大量毫不重复的关卡可用,在设计上拥有非常广阔的创作空间 。在经典机制之外加上各种变数,就更加千变万化 。
当然,这也可能造成一些困难 。比如《Baba Is You》在很长时间中一直在更新关卡,小修小补,因为玩家在实际游玩的过程中推出了很多开发者都没想到的路线,有些容易导致关卡出现Bug 。关卡编辑器也是在推箱子游戏爱好者中很受欢迎的更新,大佬们纷纷自己上手,设计出各种精彩的谜题 。
回到《帕特里克的无穷箱子奇遇》,如果说它在我眼中有什么在同类游戏中独树一帜的特殊魅力,大概就是那种毫不掩饰的“Geek感” 。游戏中的嵌套机制必定会在某个时刻造成“套娃”的效应,在后面的关卡中会出现“无穷大”和“无穷小”两个悖论 。这意味着玩家在游戏中将某个箱子无限地推出了现有的嵌套箱外,或者将某个箱子无限地推进现有的嵌套箱里面,非常有意思 。网络上还出现了如何同时推出两个悖论的教程 。这种感觉还挺奇特的,仿佛自己一不小心在游戏中造出了什么神秘时空……就像小时候总喜欢盯着相对而立的两面镜子中无限延伸的空间那样 。

推荐阅读