今天小編分享的科技經驗:從沒人通關過的《俄羅斯方塊》,被一個13歲孩子打爆了。,歡迎閲讀。
最近,誕生于 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 歲孩子身上,他帶着所有人的力量,衝破了這個叫做《 俄羅斯方塊 》的世界。
這樣的傳承精神,就是他們玩遊戲的意義。
>