7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

夢晨 蕭簫 發自 凹非寺

量子位 | 公眾號 QbitAI

什麼,7句話就讓AI給我生成了一個小遊戲?

還是“極簡版”塞爾達這樣的經典冒險遊戲,不僅能撿金幣、躲怪,地圖也不重複的那種。

這是一位名叫Andrew Mayne的小哥的真實經歷,整個過程中,他甚至一行代碼都沒寫

把AI生成的遊戲和遊戲代碼po到網上後,短短數小時就收穫了上千熱度:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

趕來圍觀的網友試玩了他搞出來的遊戲,直呼“Mind blowing”。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

所以,Andrew Mayne到底是怎麼做到的?

原來,他用來做遊戲的AI,是OpenAI最新版本的Codex

這個版本的Codex,除了能直接生成、修改和編輯代碼以外,連處理的文本長度也翻倍,從2048個token提升到了4000個,簡直像是“解開一層封印”。

起初,Andrew Mayne只是好奇這版Codex的創造力極限在哪裏,想做個實驗,看看它能否根據文本直接生成小遊戲。

沒想到,這一試簡直讓他停不下來。

7句話生成冒險遊戲

第一次嘗試便是被他命名為“極簡塞爾達”的遊戲。

別看畫面抽象,整個遊戲包括隨機生成地圖、玩家用鍵盤控制角色移動、有敵人會攻擊玩家、收集金幣加分等遊戲核心要素。

走到地圖邊緣還能生成一張新地圖,這樣就能一直玩下去……總之是一個2D冒險遊戲原型的樣子。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

所有這些規則只用英語寫了七句話,AI則用Javascript寫出了190行代碼。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

由於小哥本人不是專業遊戲設計師,描述用詞不是很精確,但AI總是能產生自己的理解。

比如描述怪物的部分,描述裏只有“一個紅色的怪物,玩家移動時它也移動,試圖接近玩家,如果玩家被碰到就減一分”。

AI則根據上下文生生成了50多行完整的怪物生成、移動、判定分數的邏輯。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

只需把色塊替換成簡單貼圖,和真正的塞爾達原型是不是就很像了?

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來
△被曝光的初代塞爾達原型程序

第二個小遊戲,他打算考驗AI對邏輯的理解,生成一個簡化版猜詞遊戲Wordle

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

這次只用了5段話描述規則。

謎底詞從一個列表裏隨機選擇,每次選擇一個放到控制枱。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

描述字母輸入框的樣式,包括寬高、文字居中對齊、每個輸入框有獨立ID;輸入時自動大寫;再加一個確認按鈕。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

分四種情況討論如何判定輸入結果。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

後面他又進行了更多嘗試,調用第三方庫生成3D迷宮、能與玩家對戰的井字棋,以及給照片加濾鏡的小程序等,全都沒手寫一行代碼

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

其中比較有意思的是生成《黑客帝國》字符雨視覺特效,幾乎是只告訴AI“創建一個畫布,加一個黑客帝國雨特效”,沒有任何額外解釋,AI就做出來了:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來
7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

最後他總結出幾條經驗,介紹如何寫文字描述能讓AI更容易理解需求:

  • 先描述邏輯部分。然後創建UI元素時候調用前面生成的邏輯函數。
  • 給描述編號。這樣更容易看明白AI正在處理哪條描述。
  • 多讓AI創建函數。如果直接讓AI生成100項的數組,AI可能真的每一項每一項寫出來,如果告訴AI創建一個生成數組的函數,AI就會用循環語句來完成了。
  • 如果一次不理想,多試幾次。把temperature參數設為0.5,有一定隨機性可能會產生更好結果。

看起來有點產品經理總結如何與程序員溝通對接的味了。

背後的Codex“再進化”

所以話説回來,這個最新版的Codex到底有多好用?

除了Andrew Mayne最感興趣的token上限翻倍以外,新增加的插入編輯兩大功能也挺有意思。

先來看看Codex的編輯功能,像優化代碼性能就能用一句話搞定:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

或是換個編程語言實現代碼:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

還有“單行代碼編程”(One Liner),一句命令就能實現:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

有了這一功能,調整代碼的難度就會降低不少。

使用Codex的時候,甚至可以像甲方一樣,無需手動調整代碼,只需要對着這位“AI程序員”發號施令,就能讓它生成你想要的東西。

再來看看Codex的插入功能

不僅能主動生成註釋,提醒這段代碼的作用:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

還能根據上下文理解這段函數,主動幫你插入它的定義:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

無論是開發框架、還是寫小軟件,都不需要再擔心“一條路走到黑”,可以根據需求再從中間進行調整。

當然,這些功能放到GPT-3上也類似。無論是換人稱、改格式這種小技巧:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

還是隨着上下文修改並插入語句,都不在話下。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

除了這兩個功能以外,還有一些細節上的更新,例如UI變得更加簡潔等等。

事實上,這一系列新功能,都是為了讓Codex和GPT-3變得更容易上手。

據OpenAI的科學家表示,他們希望通過這次更新,讓更多“非職業選手”也玩上GPT-3和Codex。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

這也確實吸引了不少感興趣的網友動手嘗試。

像搞出“7句話讓AI給我做遊戲”的Andrew Mayne,原本只是一位驚悚小説家

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

△還戴着頂SpaceX的帽子,要素過多

除了他以外,包括《連線》編輯Clive Thompson等人也在嘗試用Codex給自己寫代碼。

Clive表示,Codex掌握的知識量比他們這些“業餘選手”豐富不少,能選出最合適的函數和庫來完成需求。例如在接到與PDF有關的需求時,調用PyPDF庫。

還有網友表示,自己拿Codex做了個《太空侵略者》(space invaders)小遊戲,同樣成功了。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

看到這些成果,有網友感嘆,當AI真的學會寫代碼後,留給人類做的可能就剩下兩件事情:寫更好的AI,或是想想能用AI生成什麼。

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

不過,更加謹慎的網友則認為,AI生成代碼容易讓人對它產生依賴性,從而忽視代碼本身的問題。例如這位作者用Codex寫的圖像處理代碼,就存在一些不正確的地方:

7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來

還有網友預測,用AI寫代碼的話,最後還是要讓工程師來調整它,本質上還是殊途同歸。

你會用AI來寫工具、或是做遊戲嗎?

參考鏈接:

[1]https://andrewmayneblog.wordpress.com/2022/03/17/building-games-and-apps-entirely-through-natural-language-using-openais-davinci-code-model/

[2]https://twitter.com/AndrewMayne/status/1504612428432125970

[3]https://beta.openai.com/docs/engines/codex-series-private-beta

[4]https://news.ycombinator.com/item?id=30717773

[5]https://www.wired.com/story/openai-copilot-autocomplete-for-code/

[6]https://www.facebook.com/andrewmayne?_rdr

— 完 —

量子位 QbitAI · 頭條號簽約

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 2697 字。

轉載請註明: 7句話讓AI給我做了個小遊戲,還是極簡版塞爾達,一玩簡直停不下來 - 楠木軒