最近,诞生于 1984 年的《 NES 俄罗斯方块 》被 “ 通关 ” 成为了游戏圈最火的话题。

通关者是一个来自美国俄克拉荷马州的 13 岁少年 Willis ,游戏 ID 叫 “ Blue Scuti ” 。

这件事情引起了全世界范围内游戏爱好者的讨论,甚至还上了 CCTV 的新闻。

0b7b02087bf40ad188664d60439776d2abeccef8.jpeg@f_auto

很多人也许会觉得,不就是 “ 通关 ” 一个游戏,有什么好大惊小怪的?

其实更准确的说,Willis 是把这个游戏给 “ 打爆 ” 了,达成了 “ Kill Screen ” 。

你仔细想想,从小到大玩《 俄罗斯方块 》时,是不是永远都是方块堆到顶,游戏结束?这就不能被称为把游戏打爆,而是被游戏打爆了。

而所谓的 Kill Screen 指的是在玩一款游戏时,游戏由于系统代码出错,玩家无法再继续获得分数或者进入下一关。

1ad5ad6eddc451da0b44f291aa46356bd1163266.jpeg@f_auto

比如《 吃豆人 》这个游戏,当玩家来到第 256 关的时候,画面上就会出现一堆乱码,并且玩家无法再继续增加分数,就是典型的 “ Kill Screen ” 。

e02f7637c832f9ace9c8eb2843be89af

对于《 NES 俄罗斯方块 》来说,在 2021 年之前玩家们根本连 “ Kill Screen ” 的边都没摸到过。

那么《 NES 俄罗斯方块 》是怎么被打爆的呢?

近两年,一种叫 Rolling 的技术出现在《 NES 俄罗斯方块 》玩家圈子中。

1bdcdd1cfeb324cc59b7d343dcebac47-1

这个手法的大概原理是把整个手柄都当成了一个巨大的按钮,让手柄去 “ 敲击 ” 手指。

它的效率比之前的 DAS ( 按住方向键移动方块 )、Hypertapping( 每秒 10 次以上按方向键 )更高也更稳定,甚至可以达到一秒 20 次的移动。

9a6394f069ab653907a424f74faae904-1

随着 Rolling 技术的发展,《 NES 俄罗斯方块 》的等级上限也在被不断提高。

Alex T 是最后一个 Hypertapping 选手,成绩是 41 层

fa92b37899096eba727f83e3d664c97d

玩家们发现,熟练使用 Rolling 技术后可以在最高速度下完全控制方块,再加上堆块技术,可以说只要不连续出大错就可以一直玩下去。

90 , 100 , 110 , 120 级……玩家们的成绩稳步提升,可谁也不知道这个游戏的 “ 极限 ” 在哪。

这时候有一个叫 Greg Cannon 的玩家做了一个叫 StackRabbit 的 AI ,你可以把它当做一个不知疲倦并且完全精通俄罗斯方块的玩家。

63d0f703918fa0ec5e3d0c16332c3ee33c6ddb7f.jpeg@f_auto

在 AI 试验下,游戏不停地进行着,一直来到了 237 关,此时随着 AI 的一次四消,整个游戏画面停滞了。

这时候方块没有堆到顶端,所以是游戏本身出了问题,也就是真正的 “ Kill Screen ” 。

3f2c06abdcd287c839ec50c5767b5afb

这之后,Greg Cannon 通过追踪代码运行,专门研究了一下游戏崩溃的原理。

他发现在高等级的时候,游戏代码运行起来会变得非常慢,而且在某个瞬间, CPU 会突然去读取 RAM 中的数据,将这些数据当做游戏代码运行。

0fbb069eac1536615ebdbb391739fef2

而如果此时 RAM 中生成的数据恰好是游戏结束的代码,那么游戏就会崩溃。

这是因为在原版的《 NES 俄罗斯方块 》的算法有点拉。

b8014a90f603738d3991c5cba0a0d75cfa19ec4d.jpeg@f_auto

当时 NES 的 6502 CPU 是不会乘法的,所以《 NES 俄罗斯方块 》采用的是比较 “ 笨 ” 的软件乘法。

它就像小学时刚学乘法的我们一样,只会一次次地加算得到最后结果。

比如在 0 级时消除一行方块可以获得 40 分,到 99 级消除 1 行就变成了原先的 100 倍也就是 4000 分。

但在 99 级时,单消时系统的计算过程是 40+40+40+40…… 一直加 100 次。

随着等级提升,这个计算过程会越来越长,CPU 又要计算分数又要处理画面数据,直接就被 “ 干烧了 ” 。

这时候 CPU 会把一部分画面资料暂时放到 RAM 里,并且把 RAM 中原先存在的一些代码覆盖掉。

来源 Youtube@ 啾啾鞋

d1160924ab18972bb0593702f5761c849c510ada.jpeg@f_auto

等 CPU 算完分数后,它要开始下一轮计算时,就会去读取 RAM 里的资料,并且把它们当做 “ 程序代码 ” ,因为那个时候的 CPU 是无法分辨两者的区别的。

而且这种形式的游戏崩溃出现的情况是随机的,取决于玩家消除的方块数量以及在那一瞬间消除的行数,牵扯到一系列的进制转换机制,这里就不多说了。

这时,一个叫 HydrantDude 的油管大佬站出来了,他特地把所有可能导致游戏崩溃的等级和概率都计算了一遍,得出了一个表格。

8601a18b87d6277f176015473c83783de824fca3.jpeg@f_auto

在这位大佬的结论中,最早能导致游戏崩溃的等级是 155 级,并且玩家要准确地在 154 级的时候采用 “ 单消 ” 消除第十行来进入 155 级才行。

而之前玩家的最高记录已经来到了 148 级,这意味着玩家们真正击败《 NES 俄罗斯方块 》的时候即将到来。

2023 年 12 月 19 日,上届《 NES 俄罗斯方块 》世界冠军( CTWC 冠军 ) Fractal161 开启了一个直播叫 “ FINAL CRASH GRIND DAY 1 ” ,立志于每天冲击高分直到打爆这个游戏。

203fb80e7bec54e719e4f8f9aa83fc5d4ec26a11.jpeg@f_auto

Fractal161 是麻省理工学院的学生,也是世界上第一个达到 138 级的玩家,按理说他是最有可能最先打爆这个游戏的人。

然而就在这一天,开头那个故事主角 Blue Scuti 也开启了直播。

他是 11 岁开始玩《 NES 俄罗斯方块 》的,并且很快展现了惊人的天赋,在 12 岁的时候(去年 10 月 )参加了 CTWC 并且获得了第三名的成绩。

dbb44aed2e738bd4d018b4b8b530e0db267ff942.jpeg@f_auto

当天 Blue Scuti 就打破了由上上届世界冠军 EricICX 保持的 640 万分记录,达到了 6609220 分,并且来到了 153 级。

第二天, Fractal 就打出了 670 万分的高分来 “ 还以颜色 ” 。

因为游戏版本的原因,分数只显示了 999999

deb6a49606798375e52491e13199fdcf

也是在这一天,Blue Scuti 开始尝试打出 “ Kill Screen ” 。

12 月 21 日,Blue Scuti 在经过 45 分钟的游戏后,逐渐逼近了 155 级这个节点,而同时在直播的 Fractal 也停下了自己的挑战,开始屏息等待这历史性的一刻。

47e91b5d487697dac42d189ba0080c87

当他看到 Blue Scuti 在 154 级最后阶段错误地采用了三消( 原本应该是单消 )进入 155 级时,捂住了嘴发出了可惜的喊声。

Blue Scuti 却还继续着游戏,因为之后还有机会补救。

最终,他在 157 级时用一次单消,成功令游戏崩溃,也成为了俄罗斯方块这个游戏诞生 34 年以来第一个 “ 通关 ” 的玩家。

1df72ae078de153ab64454dcec348567

这个时刻,也象征着人类第一次打败了这个游戏,而不是被这个游戏打败。

我们可以看到,虽然大家有着竞争关系,但我们可以看到 Fractal 直播时一直真心地为 Blue Scuti 的失误惋惜,为他的成功喝彩。

我相信所有看着这场直播的俄罗斯方块玩家都是如此的心情,因为他们都是最纯粹的玩家。

第一个 “ 通关 ” 的人不是自己固然可惜,但他们不会停下自己挑战的脚步,比如 Fractal 就在这之后想要达成 “ 最快速通 ” 或者 “ 世界最高分 ” 的成就,继续不停挑战。

在 6 天前,他终于也完成了自己的第一次 “ 通关 ” 。

6724c77c61b54afefa407216808ed69f

俄罗斯方块确实是个很简单的游戏,规则简单,玩法也简单。

但是这一代代苦心钻研的玩家们,却让更多人发现了这个游戏更深层次的魅力,从最开始的 DAS 手法,到 Hypertapping ,再到划时代的 Rolling 。

34 年,无数玩家不断的努力,汇聚在了这个叫 Blue Scuti 的 13 岁孩子身上,他带着所有人的力量,冲破了这个叫做《 俄罗斯方块 》的世界。

这样的传承精神,就是他们玩游戏的意义。