初代馬力歐的磚塊里,最多能頂出多少金幣?

收聽文本 0:00/0:00

一道花了三十多年才解開的數學題。

任天堂的《超級馬力歐兄弟》家喻戶曉,人們都知道馬力歐要跳起來頂磚塊,獲得有助於通關的金幣與道具。大部分的問號磚塊會給馬力歐1枚金幣,而某些特定位置的磚塊沒有問號標記,給的金幣卻更多。

這樣的磚塊被稱為「金幣磚塊」(Coin blocks),需要玩家操縱馬力歐在短時間內盡可能快地撞上去,撞得越快,拿到的金幣也就越多。如果玩家在第一次頂磚塊拿到1枚金幣後,過了很長時間才頂第二次,就只能獲得2個金幣。

初代馬力歐的磚塊里,最多能頂出多少金幣?

玩家們都知道從金幣磚塊中可以獲取的金幣下限,但是換成金幣上限,就少有人能給出准確答案了。至少在1985年初代《超級馬力歐兄弟》剛發售那陣,玩家們覺得頂出10個金幣就已經是極限。

1987年,英語版本的任天堂官方攻略書出版。這本攻略書將各個關卡的場景設計畫了出來,標注了遊戲中所有的隱藏磚塊,並直截了當地用T字母來代表「10金幣磚塊」(Ten-coin blocks)。

初代馬力歐的磚塊里,最多能頂出多少金幣?

在實際遊玩過程中,一些玩家能夠從金幣磚塊里撞出更多的金幣。在擁有變速與連點功能的手把普及之後,玩家們做得到更快速的跳躍與頂磚塊,從金幣磚塊里頂出10枚以上的金幣也不再是什麼難事,但極限是多少,還是沒人能夠實錘。

金幣磚塊的金幣上限,這個問題的最終答案肯定會藏在遊戲的原始碼里。如今一提到仍在研究遊戲原始碼的人,我們多半會先想到那些追求極致通關速度的速通玩家。

4月10日,一位名叫Kosmic的速通玩家公布了問題的答案。Kosmic是初代《超級馬力歐兄弟》多個速通項目的前世界記錄保持者,他公布答案的原因很簡單:類似的研究之前沒人做過,可真實答案對頂尖的速通玩家而言接近於常識。

初代馬力歐的磚塊里,最多能頂出多少金幣?「為什麼以前沒人得到過這枚硬幣」

想要看懂《超級馬力歐兄弟》的速通,乃至理解Kosmic的研究成果,首先要明白遊戲採用的「21幀規則」。

「幀規則」類似於某種計數器或計時器,但是不以秒,而是以幀為單位。遊戲中的絕大部分機制,都以21幀(約0.35秒)為周期計算判定,每21幀稱作一個「幀規則」(Frame Rule)。

比方說,在馬力歐通過某個關卡,即降下關卡末尾的旗子再走進城堡的時候,這個規則就在發揮作用。無論馬力歐是在21幀中的哪一幀走進城堡,都要等待6個「幀規則」,才算正式通過這一關,隨即看到接下來的場景。

然而遊戲代碼會把當前正在運行的「幀規則」算作第1個「幀規則」,等到這個「幀規則」剩下的幀數走完,再計算剩下的5個「幀規則」(105幀,約1.8秒)。假設當前「幀規則」剩下n幀,那麼玩家需要等待的總時間其實是n+105幀,即106幀到126幀(1.8秒到2.1秒)之間。

初代馬力歐的磚塊里,最多能頂出多少金幣?

正如玩家們三十多年來的普遍猜測,金幣磚塊的金幣數量並非固定數額,的確需要玩家們在限定時間撞擊盡可能多的次數,而這個限定時間無疑也受「幀規則」所影響。

Kosmic放出了與金幣磚塊相關的遊戲原始碼,代碼顯示限定時間是十六進位的「0b」,換成十進位,就是11個「幀規則」。

初代馬力歐的磚塊里,最多能頂出多少金幣?

第1個「幀規則」可能處在1幀到21幀之間,這里仍然把剩下的幀數設為n;接下來的10個幀規則,都是完整的21幀,共計210幀。由此可得,撞擊金幣磚塊的總時間為n+210幀,即211幀到231幀。

初代馬力歐的磚塊里,最多能頂出多少金幣?

顯而易見,在遊戲的「幀規則」計時器處於第1幀時,讓馬力歐撞擊金幣磚塊,能夠獲得最長的230幀時間(刨去第1幀,約3.8秒),吃到最多的金幣。

不過在此基礎上,金幣磚塊存在一個刷新金幣的16幀冷卻時間,在這個冷卻時間內撞擊磚塊,不會獲得多餘的金幣。

初代馬力歐的磚塊里,最多能頂出多少金幣?太快了也不見得是好事

以1-1關卡中最出名的金幣磚塊為例,大多數玩家走到這里,一般都吃過了能夠變大的蘑菇,此時馬力歐的腦袋到金幣磚塊只有一個磚塊的距離,兩次連續跳躍間隔15幀。如果換成沒吃蘑菇的小號馬力歐,距離延長至兩個磚塊,這個時間就要換成23幀。

因此,假定在最理想的情況下,大號的馬力歐在每次落地後停頓1幀,即每隔16幀跳躍一次。如此往復,他最多能夠在230幀里獲得14枚金幣,最後餘下6幀。

初代馬力歐的磚塊里,最多能頂出多少金幣?第10幀停頓

等到11個「幀規則」過去後,磚塊里會保留最後一枚金幣。再把第1幀的那枚金幣算上,加起來就能得出,金幣磚塊的理論金幣上限是16枚。

初代馬力歐的磚塊里,最多能頂出多少金幣?

當然,理論上限只是理論上限,從金幣磚塊里取出全部16枚金幣,要和速通一樣逐幀操作,屬於挑戰人類極限的玩法。讓馬力歐在某個「幀規則」的前幾幀完美起跳、每16幀進行一次精準的跳躍,這絕對不是普通玩家能夠輕易實現的操作。

但速通玩家向來都在挑戰人類極限。據Kosmic所知,初代《超級馬力歐兄弟》速通社群至少有兩個人,在沒有藉助如「幀規則」計數器等輔助工具的情況下,成功頂出了16枚金幣,而其中一個是他自己。

2020年10月1日,任天堂推出了大逃殺遊戲《超級馬力歐兄弟35》。這部遊戲全面沿用了初代作品的關卡和「幀規則」設計,Kosmic玩起來也得心應手。在10月7日的一次嘗試中,Kosmic從1-1關卡的金幣磚塊頂出了16枚金幣,興高采烈的他隨後就把遊戲片段上傳到了推特。

初代馬力歐的磚塊里,最多能頂出多少金幣?

另一位速通玩家是AndrewG,2016年10月18日,他創下了以最高得分通關的世界紀錄:3663400分。在錄像中,AndrewG從8-3關卡的金幣磚塊頂出了16枚金幣。

初代馬力歐的磚塊里,最多能頂出多少金幣?AndrewG使用的改版遊戲能夠記錄超過100萬的分數

之前我們為初代馬力歐速通寫過一篇文章,文中提到,速通項目的世界紀錄正在抵近理論上的人類極限。

現在看來,就算真的達到了理論極限,我們也不必擔心速通玩家就此失業。到了那時,比開發者還懂遊戲的他們,大概還會像Kosmic找到磚塊中的第16枚金幣那樣,從遊戲里挖掘出始終無人發現的有趣秘密。

來源:遊研社