第 4 章

三维空间里的零

马力欧站在城堡外面的草地上。这不是一个比喻。在《超级马力欧64》的开场画面里,那个红帽子水管工确实站在碧琪公主城堡外的草地上,身边是树、桥、远处的水面反射着天空的蓝。

玩家推动任天堂64手柄上的模拟摇杆,他跑起来。推得轻一点,他踮着脚走;推到底,他撒开腿奔跑。跳起来落在地上,能感到一种沉甸甸的质量感——身体有惯性,转身需要空间,从高处坠落时会有一个短暂的硬直。这些都不是真实的物理,但它们构成了一套自洽的规则。

当第一批玩家在1996年秋天把那个三叉戟形状的手柄握在手里时,他们正在经历的不仅是马力欧的第一次三维化。他们正在经历的,是电子游戏对“空间”这个概念本身的重新定义。

在此之前,游戏世界是平的。二维的卷轴从左向右展开,角色被限制在一个平面上移动。设计师只需要关心X轴和Y轴。《超级马力欧64》增加了一个Z轴——深度。

这个新增的维度带来的不只是视觉上的变化。它彻底改变了玩家与游戏世界的关系。你可以绕着敌人走一圈。

你可以从不同角度观察同一座平台。你可以在坠落的过程中调整方向。你可以走到一扇门的背面去,看到设计师从来没打算让你看到的那一面。

在二维游戏里,“门后面有什么”是一个由程序决定的状态切换。在三维游戏里,“门后面有什么”首先是一个空间问题——你需要先走到那扇门的背面,才能看到答案。

任天堂的设计师们很清楚自己在建造什么。他们在这座城堡里安放了十五个关卡,每个关卡藏了六颗星星,加上城堡各处散落的秘密星星,总共一百二十颗。马力欧的任务是收集它们。每收集到一定数量,城堡里就会有一扇新的门打开,通往新的区域。最终,当星星数量达到七十颗时,通往最终关卡的楼梯就会从地底升起。这是一个清晰的、优雅的进度逻辑。

星星是钥匙。收集星星是路径。七十颗是门槛。这套逻辑看起来牢不可破。它建立在三维空间最朴素的前提之上:一扇锁着的门只有用钥匙才能打开。一面墙就是一面墙。一个高度差就是一个不可逾越的障碍,除非你找到了设计师为你准备好的台阶、跳板或者炮台。

任天堂的设计师们在测试这部游戏时,反复检查过每一个关卡的边界。他们放置了看不见的墙壁,设定了触发区域的体积,计算过马力欧的跳跃高度和距离。他们确信,玩家只能按照他们铺设好的路径前进。

他们低估了一件事。玩家会问一个设计师从来没想过要问的问题:那扇门真的需要那么多星星吗?这个问题在1996年听起来像是胡搅蛮缠。七十颗星星是游戏规则的一部分,就像象棋里的马只能走“日”字,围棋里的棋子落在交叉点上。规则就是规则,你遵守它,然后在这个框架内发挥你的技巧。

但速通者的思维不是这样的。速通者不把规则当作给定的前提。他们把规则当作需要被拆解的对象。

他们阅读游戏的方式,不是顺着设计师铺设的路径走,而是站在路径外面,盯着那些构成路径的材料本身——墙壁的碰撞体积,加速度的计算公式,触发器的判定范围——然后问:这些材料还能用来做什么?1996年没有人能回答这个问题。因为那时还没有人真正理解三维游戏空间的物理规则可以被怎样重新书写。

《超级银河战士》的序列突破已经证明,二维空间里的锁钥关系可以被绕过——你可以用墙壁跳跃代替高跳靴,用炸弹攀升代替抓墙能力。但那是二维的。在三维空间里,一切都不一样了。

你的身体有体积。你的移动有惯性。你的跳跃轨迹是一条抛物线而不是一个固定弧线。每一个动作都受到更多变量的影响。这意味着设计师更难控制所有可能的玩家行为——但也意味着玩家更难找到那些设计师没能控制住的缝隙。

三维空间是一个更复杂的系统。而更复杂的系统,在逻辑上必然包含更多的未预期行为。

最初的几年,速通社群对《超级马力欧64》的探索是温和的。玩家们按照设计师的意图收集星星,比拼的是谁收集得更快。他们优化路线,研究哪些星星可以顺路拿到,哪些跳跃可以省下几秒钟。通关时间从几个小时压缩到一个多小时。这是常规的速通优化,和任何其他游戏的速通没有本质区别。

问题出在那些不肯满足于“常规”的人身上。他们开始问:最少需要多少颗星星?这个问题的提法本身就包含了一种思维方式的转变。

“最少需要多少颗星星”不同于“怎么更快地收集七十颗星星”。前者质疑的是规则本身,后者只是在规则内部优化。前者把星星从“任务目标”变成了“可选的工具”——如果一扇门不需要星星就能打开,那收集星星就毫无意义。如果一扇门只需要一颗星星就能打开,那另外六十九颗就是冗余。

速通者不是要完成游戏。他们是要完成从起点到终点的最短路径。在这条路径上,星星的唯一价值是开门。如果门可以用别的方法打开,星星的价值就归零了。

这个追问在2003年得到了一个惊人的回答。一个网名为“Ace”的速通者上传了一段录像。标题只有两个词和一个数字:“0 Star”。零颗星星。从游戏开始到通关画面,马力欧没有收集任何一颗星星。这段录像的长度远短于任何正常通关所需的时间。

Ace操控马力欧从城堡外面的草地出发,跑进城堡大厅,穿过走廊,来到一扇本该需要星星才能打开的门前。然后他做了一个动作。一个看起来很奇怪的动作:马力欧转过身,背对着门,蹲下,然后向后跳跃。

在跳跃的过程中,Ace同时转动了摇杆和视角。马力欧的身体在空中划出一条不正常的轨迹——不是向前,不是向上,而是以一种近乎扭曲的角度向后上方弹射出去。他的速度在那一瞬间急剧增加,快到足以穿过那扇门的碰撞体积边界。画面一闪,马力欧已经站在了门的另一边。

这个动作后来被称为“后向长跳”。它的原理并不复杂,但它的发现需要一种特殊的思维方式。在《超级马力欧64》的物理引擎里,马力欧向后跳跃时的速度积累机制与向前跳跃不同。当你让马力欧蹲下、向后跳起的瞬间,游戏引擎会在某个特定的帧窗口内赋予他一个异常的速度值。这个速度值本身并不足以穿墙。但如果你在那个精确的时刻转动摇杆,改变马力欧在空中的朝向,这个速度就会被保留下来,同时方向被改变。结果就是,马力欧以本该向后的速度,撞向了侧面的墙壁——然后穿了过去。

这不是一个bug。这不是一个程序错误。这是游戏物理引擎按照自身的规则运行得出的结果。

设计师设定了向后跳跃的速度参数,设定了空中转向的角速度限制,设定了墙壁碰撞体积的边界。这些参数单独看都没有问题。但当它们被组合在一起,被一个愿意花数百小时反复试验的玩家精确地触发时,它们产生了设计师从未预料到的行为。这就像你把一个数学公式里的变量推到极限,然后发现公式在边界处产生了奇异的结果。公式没有错。是你的假设——关于这个公式在什么范围内有效——错了。

Ace的零星通关是一份宣言。它在说:三维空间的物理规则可以被重新书写。设计师铺设的路径只是无数可能路径中的一条。

墙不是墙。门不是门。星星不是必需品。整个游戏可以被还原为一个纯粹的空间穿越问题:从A点到B点,中间有哪些障碍?这些障碍的物理属性是什么?我如何利用游戏引擎赋予我的移动能力,绕过或者穿透这些障碍?

这段录像在速通社群中引发的震动,不亚于地质学家第一次看到板块构造的证据。它证明了一件事:《超级马力欧64》不是一座城堡。它是一套物理规则。

而物理规则是可以被测量、被计算、被利用的。接下来的二十年,这个故事变成了一场漫长的攻坚。目标不再是“零颗星星通关”——那个已经被Ace证明了是可能的。目标是更快。更快意味着找到更短的空间路径,更精确的动作执行,更深入地理解游戏引擎的每一个参数。

这场攻坚的核心武器之一,是一个叫做“半按A键”的技术。要理解这个技术,需要先理解任天堂64手柄的设计。A键是跳跃键。在绝大多数游戏里,跳跃是一个二值操作:按下就是跳,没按就是不跳。但任天堂64的A键是模拟输入的——它不是一个简单的开关,而是一个可以检测按压深度的传感器。轻按和重按,在电路层面是不同的信号。在《超级马力欧64》的程序代码里,这两个信号对应着不同的跳跃高度。

完全按下A键,马力欧跳到最高点。只按下一半,马力欧跳到一个较低的、但仍然是可控制的高度。这个差异有多大?以像素为单位计算,完全按下A键的跳跃高度大约是半按的一点六倍。

以帧数为单位计算,半按A键可以让马力欧在空中的停留时间缩短大约十分之一秒。这些数字看起来微不足道。但在速通的世界里,十分之一秒是一个巨大的窗口。它可以决定你是否能刚好擦过某个障碍物的下沿,是否能在落地瞬间立刻接上下一个动作,是否能在敌人头顶的判定区域边缘滑过去。

半按A键的发现不是某一个天才的灵光一闪。它是数百名玩家在数千小时的反复测试中,一点一点地归纳出来的。有人在某个关卡里注意到,轻按跳跃键似乎能让马力欧刚好够到某个平台边缘。有人把这个观察发到论坛上,另一个人用模拟器逐帧分析了跳跃高度的数据。第三个人发现,这个高度差异不是偶然的——它是由A键的模拟输入值直接决定的。第四个人开始系统地测试不同的按压深度对应的跳跃高度,画出了一张表格。第五个人把这张表格应用到实际的速通路线中,发现某个原本需要绕路的障碍现在可以直接跳过去。这不是一个人的工作。这是一群人的工作。

他们分布在不同的时区,用不同的语言交流,共享着同一套方法论:观察现象,提出假设,设计实验,记录数据,验证结论。他们做的事情,和实验室里的科学家没有本质区别。只不过他们的实验室是一个虚拟的三维空间,他们的测量仪器是手柄和模拟器,他们的研究对象是一套由数万行代码构成的物理规则。

这场攻坚的能量是专注的、执着的、缓慢累积的。它没有戏剧性的爆发时刻。它更像是一种静水流深的状态——每天前进一点点,每个星期发现一个新的微小优化,每个月通关时间被压缩几秒钟。从Ace的2003年零星通关开始,通关时间从几十分钟压缩到十几分钟,再到十分钟以内。

每一个节点都对应着某个关键技术的发现或完善。后向长跳的触发帧窗口被精确到六十分之一秒。空中转向的角度被优化到小数点后一位。半按A键的按压深度被不同的玩家反复校准,直到找到那个能在特定地形上产生最佳效果的精确位置。

在这个过程中,速通者和游戏之间的关系发生了根本性的变化。他们不再是玩家。他们成了测量员。

他们用身体——更准确地说,用手指通过手柄传递到游戏引擎里的信号——丈量着这个虚拟空间的真实边界。每一面墙的实际碰撞体积都比视觉模型大一点还是小一点?每一个平台的边缘在哪个像素位置开始判定角色坠落?加速度在空中的第几帧达到峰值?

这些问题不是通过阅读源代码来回答的。源代码在那个年代并不公开。这些问题的答案,是通过数万次的跳跃、坠落、撞墙、重试,一点一点地试探出来的。

这是一种奇怪的、近乎荒谬的劳动。一个人坐在电视机前,连续几个小时重复同一个动作——从同一个起跳点起跳,在同一个帧窗口按下A键,观察马力欧在空中的轨迹是否有任何微小的变化。失败了就重来。重来再重来。直到手指的肌肉记忆精确到可以在六十分之一秒的尺度上控制按键时机,直到眼睛可以分辨屏幕上几个像素的差异。

这种劳动没有任何外在的回报。没有奖金,没有奖杯,甚至没有多少观众。驱动他们的,是一种纯粹的、近乎执拗的欲望:想知道这个世界的边界到底在哪里。城堡一楼的那扇门是最早被攻破的。

Ace的后向长跳穿过了它。但城堡里还有更多的门,更多的墙,更多的看似不可逾越的空间障碍。通往地下室的入口需要一颗星星才能打开。通往楼上的楼梯需要更多的星星。最终关卡的门槛是七十颗。

这些障碍每一个都需要被单独拆解。有些可以用后向长跳穿过。有些需要不同的技术——在特定的位置、以特定的角度、在特定的帧窗口内执行特定的动作序列。有些障碍至今仍然无法被完全绕过,只能通过收集最低数量的星星来通过。

速通者们在城堡的内部空间里绘制出了一条全新的路径。这条路径与设计师铺设的路径几乎没有任何重叠。它不经过那些精心设计的关卡,不收集那些藏在角落里的星星,不触发那些推动剧情发展的对话。它只是从起点到终点的一条线。

在这条路径上,城堡不再是一座建筑。它变成了一个拓扑学问题——一个由起点、终点和中间障碍物构成的空间穿越问题。问题的解不是唯一的。每一个新的技术发现都会改变这个解的形状。2007年,通关时间被压缩到了十分钟以内。2012年,有人跑进了八分钟。

2016年,七分钟大关被突破。到了2020年代,最顶尖的速通者可以在不到七分钟的时间里,从城堡外的草地抵达最终通关画面——在正常玩家还在收集前几颗星星的时间里,他们已经完成了整部游戏。

这些数字的压缩不是线性的。它是一条渐近线,每一次突破都比上一次更困难,需要更精确的技术、更深入的理解、更极端的优化。

早期的突破来自于发现全新的漏洞利用技术。后期的突破来自于对已有技术的微调——在某个跳跃中省下一帧,在某个转弯中省下两帧,在某个动作序列中调整按键节奏以节省三帧。

一帧是六十分之一秒。为了省下这一帧,可能需要数百次的尝试,可能需要重新设计整个关卡的路线,可能需要开发出全新的手指操作技巧。

在这个微观世界里,手柄不再是一个简单的输入设备。它变成了一套精密测量仪器。A键的按压深度可以被分成至少四个有效档位——全按、半按、轻按、极轻按——每一档对应不同的跳跃高度。摇杆的倾斜角度决定了移动速度,而这个速度反过来又影响跳跃的初速度和轨迹。

一个顶尖的《超级马力欧64》速通者的手指,可以在这些连续的输入值之间做出精确到毫米级的区分。他们的肌肉记忆不是“按下A键”,而是“在起跳后的第三帧,将A键按压至某个特定的深度,同时将摇杆向右倾斜一个特定的角度”。

这听起来像是某种荒诞的身体训练。但它确实是。速通者在训练自己的身体,让它成为虚拟物理规则的精确执行器。他们阅读游戏的方式,最终落实到了手指与塑料按钮之间的微观接触面上。

在这个层面上,游戏不再是一段体验、一个故事、一套挑战。它是一套可以被身体直接执行的规则系统。而速通者,是那些愿意用自己的神经系统去匹配这套规则的人。

有一个细节很少被外人注意到。Ace的2003年零星通关录像里,有一段是在城堡的地下室里。那里有一面墙,正常游戏流程中玩家永远不会走到那面墙前面。它只是一面普通的石墙,设计师把它放在那里作为场景装饰,没有赋予它任何游戏功能。但在Ace的路线里,那面墙是一个关键的穿越点。

他操控马力欧走到墙根,蹲下,向后跳跃,在空中转向——穿了过去。墙的另一边是一个未完成的、玩家本不该看到的灰色空间。马力欧在那个灰色空间里下坠了几秒钟,然后落到了最终关卡的入口附近。

那个灰色空间是设计师留下的空白。它不在任何地图上,没有任何功能,没有任何视觉设计。它只是城堡内部三维模型之间的一个缝隙。但它是真实的。它是这个虚拟世界的物理边界的一部分。

Ace找到了它,穿过了它,利用了它。他把设计师留下的空白变成了路径的一部分。

这就是速通者做的事情。他们不是在玩游戏。他们是在丈量一个世界的真实尺寸。

这个世界是由代码构成的,但它的边界——那些墙壁、地板、天花板、触发器——对生活在其中的角色来说是真实的。速通者用最认真的态度对待这个世界的物理规则,认真到连设计师自己都做不到的程度。他们发现了那些设计师留下但从未踏足的空白空间,把它们变成了从起点到终点的最短路径的一部分。

这场持续二十年的攻坚,最终把一个问题推到了台前:速通者到底是在破坏游戏,还是在完成游戏?那些批评速通是“技术性破坏行为”的人认为,速通者追求的是绕过设计者意图的捷径,他们跳过了游戏精心设计的内容,只为了追求一个更短的计时数字。这种批评听起来有道理——毕竟,一个零颗星星通关的玩家确实没有体验到任天堂设计师在那些关卡里倾注的心血。

但这个批评漏掉了一个关键的事实。速通者不是没有体验过那些内容。恰恰相反,最顶尖的速通者往往是那些对游戏内容最熟悉的人。他们之所以能找到那些漏洞和捷径,正是因为他们对游戏的每一个角落都了如指掌。他们知道每一面墙的位置,每一个平台的尺寸,每一个敌人的行动模式。

他们不是在“跳过”内容。他们是在对内容进行了彻底的分析之后,找到了穿越它的最优路径。

这种分析的深度,远远超过了普通玩家的“体验”层面。它是对游戏作为一种规则系统的彻底阅读。更重要的是,速通者发现了设计师未能预见的行为,这些行为本身构成了对游戏的一种扩展。

Ace的录像在2003年上传之后,一个问题被正式摆到了台面上:如果零颗星星可以通关,那么最少需要多少颗星星?这个问题听起来像是一个纯粹的数字游戏——既然零已经被证明了,答案就是零。但实际情况远比这复杂。Ace的路线虽然不需要星星,但它需要一种对操作精度的要求,那种精度在2003年只有极少数人能达到。对于大多数速通者来说,零颗星星通关在理论上存在,在实践中却几乎不可复现。于是问题变成了一个更实际的版本:在现有的技术条件下,最少可以用多少颗星星稳定地抵达终点?

这个追问把速通社群推向了一个新的方向。他们不再仅仅寻找单个的漏洞利用点。他们开始系统地测绘整个城堡的空间结构。

每一扇需要星星才能打开的门被单独标记出来。每一扇门被反复测试:后向长跳能不能穿过?如果能,需要什么样的起跳位置、角度和帧窗口?如果不能,有没有其他方法——比如从相邻房间的墙壁穿过去,从天花板上的缝隙挤过去,从地板下面的空洞游过去?

城堡的每一寸空间都被纳入了测绘范围。那些在正常游戏流程中永远不会被玩家注意到的角落——楼梯下方的三角空间、吊灯后面的墙壁凹陷、门框上方的装饰性横梁——变成了速通者眼中的关键节点。这些空间在设计师的蓝图里只是建筑装饰,是让城堡看起来像一座城堡的视觉元素。但在速通者的地图上,它们是潜在的穿越点,是连接起点与终点的拓扑捷径。

这场测绘的成果是一张完全不同的城堡地图。在正常的地图上,城堡是一个由走廊、房间和楼梯连接起来的建筑空间,每个区域有明确的功能和进入条件。在速通者的地图上,城堡是一组三维模型的集合,每个模型有特定的碰撞体积边界,这些边界之间存在着设计师从未意识到的缝隙。

地下室的天花板和一楼的地板之间有一个高度只有几个像素的空隙。楼梯的侧面墙壁在某个特定角度下会失去碰撞判定。通往二楼的楼梯扶手在最高点有一个不可见的缺口。

这些不是漏洞。它们是三维空间建模过程中不可避免的产物——当设计师把不同的几何体拼接在一起时,拼接处总会留下微小的误差。在正常的游戏流程中,玩家永远不会接触到这些误差。但速通者专门寻找它们。

后向长跳是穿越这些缝隙的主要工具。它的操作原理在Ace的录像发布之后被社群反复拆解和分析。动作序列是这样的:马力欧必须首先面向远离目标墙壁的方向站立。然后按下蹲伏键——在任天堂64手柄上,这是Z键。在蹲伏状态下,摇杆被推向后方——也就是马力欧面对的方向的反方向。然后按下A键。在A键被按下的瞬间,游戏引擎会检测到摇杆的方向和马力欧的朝向之间的关系。如果摇杆指向后方,引擎会赋予马力欧一个向后的速度值。这个速度值比普通的向后走快得多,比向前跑也快得多。它大约是正常奔跑速度的一点五倍。

但仅仅有这个速度还不够。如果马力欧以这个速度撞向墙壁,他会被正常的碰撞检测挡住。关键在接下来的步骤:在马力欧向后跳起的瞬间——这个“瞬间”的精确长度大约是两到三帧,也就是三十分之一秒到二十分之一秒之间——速通者必须同时做两件事。第一,将摇杆从后方迅速旋转到侧方或前方。

当Ace用后向长跳穿过那扇门时,他不仅在挑战游戏的进度逻辑。他在向所有人展示,《超级马力欧64》的物理引擎比设计师以为的更丰富、更复杂、更有可能性。他完成了设计师未能完成的测试——不是因为他们不够聪明或不够勤奋,而是因为任何一个人类团队都无法穷尽一个复杂三维系统的所有可能状态。

速通者用数千小时的专注,填补了这个空白。他们把游戏的边界推到了设计师从未到达的地方。

这不是破坏。这是一种极端形式的合作——速通者和设计师之间隔着时间和空间,但他们共同定义了游戏的最终形态。

设计师创造了规则。速通者发现了规则的全部后果。两者缺一不可。没有设计师的规则,就没有可以被发现的行为。没有速通者的发现,规则的全部潜力就永远不会被实现。

2020年代的一个普通夜晚。一个年轻的速通者坐在显示器前,手指搭在任天堂64手柄的A键上。屏幕上,马力欧站在城堡二楼的一个狭窄平台上。前方是一道需要七十颗星星才能升起的楼梯。速通者没有七十颗星星。他不需要。

他的手指在A键上调整着压力——那个精确的深度是他经过上千次练习后刻进肌肉记忆里的。马力欧向后跃起,在空中划出一条经过精确计算的抛物线。摇杆在恰当的帧内转动。视角在恰当的帧内调整。马力欧的身体擦过楼梯的碰撞体积边缘,穿过那个只有几个像素宽的缝隙,落在了楼梯的另一边。整个动作持续不到两秒。速通者松开手柄,看了一眼计时器。然后他重新加载存档,回到那个平台边缘,再次蹲下。他的左手拇指在摇杆上微微调整着角度。他的右手拇指悬在A键上方,准备再一次以毫米级的精度控制那个按压深度。屏幕上,马力欧安静地蹲在那里,等待着下一次跳跃。