爺青回!GAN生成的超級馬里奧關卡,可以永不通關的那種
想永不通關?用cGAN
子豪 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
先來一波回憶殺~
《超級馬里奧兄弟》的重度玩家們,可能已經發現了,這并不是原本32關里面的。
不過,如果你以為這是《馬里奧制造》的杰作,那你就猜錯了~這是AI利用GAN搞出來的!
利用GAN生成紅白機游戲畫面,并不是新鮮事,不過,這一次是可以無限延長的那種~
花樣還不少:
只需用4個顏色通道表示對象
在游戲中,關卡數據以壓縮格式存儲,通常,每個對象用兩個字節來描述位置和類型。
一個字節指定16×16網格中的xy坐標;第二個字節指定對象的類型。比如在第一關的場景中,僅用了12個字節來描述:
07 81 | 47 24 | 57 00 | 63 01 | 77 01 | C9 71
作者為了將關卡編碼為16×16的圖像,分別設置了4個獨立顏色通道:
比如,第一關的截圖,就可以表示成這樣:
這樣的編碼方式,既能夠涵蓋足夠多的對象,又不至于太過復雜。
并且,根據關卡中對象的排列方式進行分組,有利于模型進行學習并重現。比如,實心磚用于布置樓梯、磚塊則通常水平放置。
此外,將所有對象組織成一個合理的方案,減少生成網絡失誤對輸出結果的負面影響。
比如用硬幣代替磚塊,影響非常小;而如果用管道或庫巴來代替,就會出現問題。
開發者還找出了游戲的一些特點:
管道可以連接地面或一排浮動塊;
方塊通常用來構建各種尺寸的樓梯;
磚塊和問題塊,大多排在第3位和第7位;
其他角色一般會分成兩三組。
接下來,作者使用TensorFlow作為后端,利用Keras來構建模型,并進行訓練。
生成器通過輸入的一組特征向量,來生成新的樣本圖像;鑒別器則區分是訓練集中的真實圖像,還是生成器偽造的。
隨著遍歷訓練集的次數增加,生成效果也逐漸改善:
最終輸出的結果,是這樣的:
嗯,效果真的很不錯~
想永不通關?用cGAN
現在,只需把一張張“截圖”連接起來,你就會得到:
半個庫巴、半個管道,以及半個馬里奧……
怎么才能無縫拼接,得到連貫的關卡呢?
這就需要利用「有條件的GAN」,把前一個場景作為后一個場景的邊界條件。
就像這樣:
可以看出,場景的左側部分,是以第一行圖像作為邊界條件生成的。
具體來說,首先要在之前的基礎上,向生成器輸入一組16×4的圖像,作為上一個場景的邊界部分。
網絡架構是這樣的:
生成器在輸入條件的限制下,生成16×16的圖像,然后,把它們與16×4的輸入圖像進行拼接,再用拼接后的圖像來訓練鑒別器。
利用16×4圖像的不斷迭代,最終就能拼接成連續的場景,比如,經過40次迭代的結果:
“不想通關綜合癥”可能有救了!
開發者表示,雖然效果不是特別完美,但是已經具備了趣味性和可玩性~
是不是和那個“能玩一輩子的游戲”——《馬里奧制造》有點像?它同樣主打關卡制造,不過是玩家來手動設計。
△馬里奧制造2 (圖源:游戲官網)
在發布關卡之前,作者必須通關一次,于是有些人就加入隱蔽的“作者通道”,偷個懶直達終點。
不少高手都曾被“馬造毒圖”難倒,當然如果玩家發現隱蔽通道,就能“偷雞”通關~
這樣“有趣又有毒”的關卡,不知道AI能否構建出來呢?
原文鏈接:
https://medium.com/@eway/using-a-generative-adversarial-network-to-author-playable-super-mario-bros-levels-223736bd4ce
- 中國汽車一哥加持,自動駕駛界「大疆」估值沖破百億2025-11-26
- 神盾金磚電池成功挑戰行業首個“整車+整包”帶電六大極端測試2025-09-02
- 對話吉利技術一號位:VLA大模型打底,沖刺全球最大機器人公司2025-09-02
- 全新嵐圖知音正式上市,20.29萬元起2025-08-28




