設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

7 句話讓 Codex 做了個(gè)小游戲:還是極簡版塞爾達(dá),一玩簡直停不下來

量子位 2022/3/20 12:19:48 責(zé)編:長河

什么,7 句話就讓 AI 給我生成了一個(gè)小游戲?還是“極簡版”塞爾達(dá)這樣的經(jīng)典冒險(xiǎn)游戲,不僅能撿金幣、躲怪,地圖也不重復(fù)的那種。

這是一位名叫 Andrew Mayne 的小哥的真實(shí)經(jīng)歷,整個(gè)過程中,他甚至一行代碼都沒寫!把 AI 生成的游戲和游戲代碼 po 到網(wǎng)上后,短短數(shù)小時(shí)就收獲了上千熱度:

趕來圍觀的網(wǎng)友試玩了他搞出來的游戲,直呼“Mind blowing”。

所以,Andrew Mayne 到底是怎么做到的?原來,他用來做游戲的 AI,是 OpenAI 最新版本的 Codex。

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

起初,Andrew Mayne 只是好奇這版 Codex 的創(chuàng)造力極限在哪里,想做個(gè)實(shí)驗(yàn),看看它能否根據(jù)文本直接生成小游戲。沒想到,這一試簡直讓他停不下來。

7 句話生成冒險(xiǎn)游戲

第一次嘗試便是被他命名為“極簡塞爾達(dá)”的游戲。別看畫面抽象,整個(gè)游戲包括隨機(jī)生成地圖、玩家用鍵盤控制角色移動、有敵人會攻擊玩家、收集金幣加分等游戲核心要素。走到地圖邊緣還能生成一張新地圖,這樣就能一直玩下去…… 總之是一個(gè) 2D 冒險(xiǎn)游戲原型的樣子。

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

由于小哥本人不是專業(yè)游戲設(shè)計(jì)師,描述用詞不是很精確,但 AI 總是能產(chǎn)生自己的理解。比如描述怪物的部分,描述里只有“一個(gè)紅色的怪物,玩家移動時(shí)它也移動,試圖接近玩家,如果玩家被碰到就減一分”。AI 則根據(jù)上下文生生成了 50 多行完整的怪物生成、移動、判定分?jǐn)?shù)的邏輯。

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

△被曝光的初代塞爾達(dá)原型程序

第二個(gè)小游戲,他打算考驗(yàn) AI 對邏輯的理解,生成一個(gè)簡化版猜詞游戲 Wordle。

這次只用了 5 段話描述規(guī)則。謎底詞從一個(gè)列表里隨機(jī)選擇,每次選擇一個(gè)放到控制臺。

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

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

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

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

最后他總結(jié)出幾條經(jīng)驗(yàn),介紹如何寫文字描述能讓 AI 更容易理解需求:

  • 先描述邏輯部分。然后創(chuàng)建 UI 元素時(shí)候調(diào)用前面生成的邏輯函數(shù)。

  • 給描述編號。這樣更容易看明白 AI 正在處理哪條描述。

  • 多讓 AI 創(chuàng)建函數(shù)。如果直接讓 AI 生成 100 項(xiàng)的數(shù)組,AI 可能真的每一項(xiàng)每一項(xiàng)寫出來,如果告訴 AI 創(chuàng)建一個(gè)生成數(shù)組的函數(shù),AI 就會用循環(huán)語句來完成了。

  • 如果一次不理想,多試幾次。把 temperature 參數(shù)設(shè)為 0.5,有一定隨機(jī)性可能會產(chǎn)生更好結(jié)果。

看起來有點(diǎn)產(chǎn)品經(jīng)理總結(jié)如何與程序員溝通對接的味了。

背后的 Codex“再進(jìn)化”

所以話說回來,這個(gè)最新版的 Codex 到底有多好用?除了 Andrew Mayne 最感興趣的 token 上限翻倍以外,新增加的插入和編輯兩大功能也挺有意思。

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

或是換個(gè)編程語言實(shí)現(xiàn)代碼:

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

有了這一功能,調(diào)整代碼的難度就會降低不少。使用 Codex 的時(shí)候,甚至可以像甲方一樣,無需手動調(diào)整代碼,只需要對著這位“AI 程序員”發(fā)號施令,就能讓它生成你想要的東西。

再來看看 Codex 的插入功能。不僅能主動生成注釋,提醒這段代碼的作用:

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

無論是開發(fā)框架、還是寫小軟件,都不需要再擔(dān)心“一條路走到黑”,可以根據(jù)需求再從中間進(jìn)行調(diào)整。

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

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

除了這兩個(gè)功能以外,還有一些細(xì)節(jié)上的更新,例如 UI 變得更加簡潔等等。

事實(shí)上,這一系列新功能,都是為了讓 Codex 和 GPT-3 變得更容易上手。據(jù) OpenAI 的科學(xué)家表示,他們希望通過這次更新,讓更多“非職業(yè)選手”也玩上 GPT-3 和 Codex。

這也確實(shí)吸引了不少感興趣的網(wǎng)友動手嘗試。像搞出“7 句話讓 AI 給我做游戲”的 Andrew Mayne,原本只是一位驚悚小說家。

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

除了他以外,包括《連線》編輯 Clive Thompson 等人也在嘗試用 Codex 給自己寫代碼。Clive 表示,Codex 掌握的知識量比他們這些“業(yè)余選手”豐富不少,能選出最合適的函數(shù)和庫來完成需求。例如在接到與 PDF 有關(guān)的需求時(shí),調(diào)用 PyPDF 庫。

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

看到這些成果,有網(wǎng)友感嘆,當(dāng) AI 真的學(xué)會寫代碼后,留給人類做的可能就剩下兩件事情:寫更好的 AI,或是想想能用 AI 生成什么。

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

還有網(wǎng)友預(yù)測,用 AI 寫代碼的話,最后還是要讓工程師來調(diào)整它,本質(zhì)上還是殊途同歸。

你會用 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

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:人工智能,AI

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會買 要知