最近,誕生於 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 歲孩子身上,他帶著所有人的力量,衝破了這個叫做《 俄羅斯方塊 》的世界。
這樣的傳承精神,就是他們玩遊戲的意義。