最近,诞生于 1984 年的《 NES 俄罗斯方块 》被 “ 通关 ” 成为了游戏圈最火的话题。
通关者是一个来自美国俄克拉荷马州的 13 岁少年 Willis ,游戏 ID 叫 “ Blue Scuti ” 。
这件事情引起了全世界范围内游戏爱好者的讨论,甚至还上了 CCTV 的新闻。
很多人也许会觉得,不就是 “ 通关 ” 一个游戏,有什么好大惊小怪的?
其实更准确的说,Willis 是把这个游戏给 “ 打爆 ” 了,达成了 “ Kill Screen ” 。
你仔细想想,从小到大玩《 俄罗斯方块 》时,是不是永远都是方块堆到顶,游戏结束?这就不能被称为把游戏打爆,而是被游戏打爆了。
所谓的 Kill Screen 指的是在玩一款游戏时,游戏由于系统代码出错,玩家无法再继续获得分数或者进入下一关。
比如《 吃豆人 》这个游戏,当玩家来到第 256 关的时候,画面上就会出现一堆乱码,并且玩家无法再继续增加分数,就是典型的 “ Kill Screen ” 。
对于《 NES 俄罗斯方块 》来说,在 2021 年之前玩家们根本连 “ Kill Screen ” 的边都没摸到过。
小发也给各位介绍过这游戏近些年的技术飞跃,建议各位看下去之前先看一下之前的文章。( 你以为你会玩《 俄罗斯方块 》? )
那么《 NES 俄罗斯方块 》是怎么被打爆的呢?
近两年,一种叫 Rolling 的技术出现在《 NES 俄罗斯方块 》玩家圈子中。
这个手法的大概原理是把整个手柄都当成了一个巨大的按钮,让手柄去 “ 敲击 ” 手指。
它的效率比之前的 DAS ( 按住方向键移动方块 )、Hypertapping( 每秒 10 次以上按方向键 )更高也更稳定,甚至可以达到一秒 20 次的移动。
随着 Rolling 技术的发展,《 NES 俄罗斯方块 》的等级上限也在被不断提高。
Alex T 是最后一个 Hypertapping 选手,成绩是 41 层。
玩家们发现,熟练使用 Rolling 技术后可以在最高速度下完全控制方块,再加上堆块技术,可以说只要不连续出大错就可以一直玩下去。
90 , 100 , 110 , 120 级......玩家们的成绩稳步提升,可谁也不知道这个游戏的 “ 极限 ” 在哪。
这时候有一个叫 Greg Cannon 的玩家做了一个叫 StackRabbit 的 AI ,你可以把它当做一个不知疲倦并且完全精通俄罗斯方块的玩家。
在 AI 试验下,游戏不停地进行着,一直来到了 237 关,此时随着 AI 的一次四消,整个游戏画面停滞了。
这时候方块没有堆到顶端,所以是游戏本身出了问题,也就是真正的 “ Kill Screen ” 。
这之后,Greg Cannon 通过追踪代码运行,专门研究了一下游戏崩溃的原理。
他发现在高等级的时候,游戏代码运行起来会变得非常慢,而且在某个瞬间, CPU 会突然去读取 RAM 中的数据,将这些数据当做游戏代码运行。
如果此时 RAM 中生成的数据恰好是游戏结束的代码,那么游戏就会崩溃。
这是因为在原版的《 NES 俄罗斯方块 》的算法有点拉。
当时 NES 的 6502 CPU 是不会乘法的,所以《 NES 俄罗斯方块 》采用的是比较 “ 笨 ” 的软件乘法。
它就像小学时刚学乘法的我们一样,只会一次次地加算得到最后结果。
比如在 0 级时消除一行方块可以获得 40 分,到 99 级消除 1 行就变成了原先的 100 倍也就是 4000 分。
但在 99 级时,单消时系统的计算过程是 40+40+40+40...... 一直加 100 次。
随着等级提升,这个计算过程会越来越长,CPU 又要计算分数又要处理画面数据,直接就被 “ 干烧了 ” 。
这时候 CPU 会把一部分画面资料暂时放到 RAM 里,并且把 RAM 中原先存在的一些代码覆盖掉。
来源 Youtube@ 啾啾鞋:
等 CPU 算完分数后,它要开始下一轮计算时,就会去读取 RAM 里的资料,并且把它们当做 “ 程序代码 ” ,因为那个时候的 CPU 是无法分辨两者的区别的。
而且这种形式的游戏崩溃出现的情况是随机的,取决于玩家消除的方块数量以及在那一瞬间消除的行数,牵扯到一系列的进制转换机制,这里就不多说了。
这时,一个叫 HydrantDude 的油管大佬站出来了,他特地把所有可能导致游戏崩溃的等级和概率都计算了一遍,得出了一个表格。
在这位大佬的结论中,最早能导致游戏崩溃的等级是 155 级,并且玩家要准确地在 154 级的时候采用 “ 单消 ” 消除第十行来进入 155 级才行。
之前玩家的最高记录已经来到了 148 级,这意味着玩家们真正击败《 NES 俄罗斯方块 》的时候即将到来。
2023 年 12 月 19 日,上届《 NES 俄罗斯方块 》世界冠军( CTWC 冠军 ) Fractal161 开启了一个直播叫 “ FINAL CRASH GRIND DAY 1 ” ,立志于每天冲击高分直到打爆这个游戏。
Fractal161 是麻省理工学院的学生,也是世界上第一个达到 138 级的玩家,按理说他是最有可能最先打爆这个游戏的人。
然而就在这一天,开头那个故事主角 Blue Scuti 也开启了直播。
他是 11 岁开始玩《 NES 俄罗斯方块 》的,并且很快展现了惊人的天赋,在 12 岁的时候(去年 10 月 )参加了 CTWC 并且获得了第三名的成绩。
当天 Blue Scuti 就打破了由上上届世界冠军 EricICX 保持的 640 万分记录,达到了 6609220 分,并且来到了 153 级。
第二天, Fractal 就打出了 670 万分的高分来 “ 还以颜色 ” 。
因为游戏版本的原因,分数只显示了 999999:
也是在这一天,Blue Scuti 开始尝试打出 “ Kill Screen ” 。
12 月 21 日,Blue Scuti 在经过 45 分钟的游戏后,逐渐逼近了 155 级这个节点,而同时在直播的 Fractal 也停下了自己的挑战,开始屏息等待这历史性的一刻。
当他看到 Blue Scuti 在 154 级最后阶段错误地采用了三消( 原本应该是单消 )进入 155 级时,捂住了嘴发出了可惜的喊声。
Blue Scuti 却还继续着游戏,因为之后还有机会补救。
最终,他在 157 级时用一次单消,成功令游戏崩溃,也成为了俄罗斯方块这个游戏诞生 34 年以来第一个 “ 通关 ” 的玩家。
这个时刻,也象征着人类第一次打败了这个游戏,而不是被这个游戏打败。
我们可以看到,虽然大家有着竞争关系,但我们可以看到 Fractal 直播时一直真心地为 Blue Scuti 的失误惋惜,为他的成功喝彩。
我相信所有看着这场直播的俄罗斯方块玩家都是如此的心情,因为他们都是最纯粹的玩家。
第一个 “ 通关 ” 的人不是自己固然可惜,但他们不会停下自己挑战的脚步,比如 Fractal 就在这之后想要达成 “ 最快速通 ” 或者 “ 世界最高分 ” 的成就,继续不停挑战。
在 6 天前,他终于也完成了自己的第一次 “ 通关 ” 。
俄罗斯方块确实是个很简单的游戏,规则简单,玩法也简单。
但是这一代代苦心钻研的玩家们,却让更多人发现了这个游戏更深层次的魅力,从最开始的 DAS 手法,到 Hypertapping ,再到划时代的 Rolling 。
34 年,无数玩家不断的努力,汇聚在了这个叫 Blue Scuti 的 13 岁孩子身上,他带着所有人的力量,冲破了这个叫做《 俄罗斯方块 》的世界。
这样的传承精神,就是他们玩游戏的意义。