什么,7 句话就让 AI 给我生成了一个小游戏?还是“极简版”塞尔达这样的经典冒险游戏,不仅能捡金币、躲怪,地图也不重复的那种。这是一位名叫 Andrew Mayne 的小哥的真实经历,整个过程中,他甚至一行代码都没写!把 AI 生成的游戏和游戏代码 po 到网上后,短短数小时就收获了上千热度:



赶来围观的网友试玩了他搞出来的游戏,直呼“Mind blowing”。



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


这个版本的 Codex,除了能直接生成、修改和编辑代码以外,连处理的文本长度也翻倍,从 2048 个 token 提升到了 4000 个,简直像是“解开一层封印”。


起初,Andrew Mayne 只是好奇这版 Codex 的创造力极限在哪里,想做个实验,看看它能否根据文本直接生成小游戏。没想到,这一试简直让他停不下来。


7 句话生成冒险游戏


第一次尝试便是被他命名为“极简塞尔达”的游戏。别看画面抽象,整个游戏包括随机生成地图、玩家用键盘控制角色移动、有敌人会攻击玩家、收集金币加分等游戏核心要素。走到地图边缘还能生成一张新地图,这样就能一直玩下去…… 总之是一个 2D 冒险游戏原型的样子。



所有这些规则只用英语写了七句话,AI 则用 Javascript 写出了 190 行代码。



由于小哥本人不是专业游戏设计师,描述用词不是很精确,但 AI 总是能产生自己的理解。比如描述怪物的部分,描述里只有“一个红色的怪物,玩家移动时它也移动,试图接近玩家,如果玩家被碰到就减一分”。AI 则根据上下文生生成了 50 多行完整的怪物生成、移动、判定分数的逻辑。



只需把色块替换成简单贴图,和真正的塞尔达原型是不是就很像了?



△被曝光的初代塞尔达原型程序


第二个小游戏,他打算考验 AI 对逻辑的理解,生成一个简化版猜词游戏 Wordle。



这次只用了 5 段话描述规则。谜底词从一个列表里随机选择,每次选择一个放到控制台。



描述字母输入框的样式,包括宽高、文字居中对齐、每个输入框有独立 ID;输入时自动大写;再加一个确认按钮。



分四种情况讨论如何判定输入结果。



后面他又进行了更多尝试,调用第三方库生成 3D 迷宫、能与玩家对战的井字棋,以及给照片加滤镜的小程序等,全都没手写一行代码。



其中比较有意思的是生成《黑客帝国》字符雨视觉特效,几乎是只告诉 AI“创建一个画布,加一个黑客帝国雨特效”,没有任何额外解释,AI 就做出来了:




最后他总结出几条经验,介绍如何写文字描述能让 AI 更容易理解需求:


先描述逻辑部分。然后创建 UI 元素时候调用前面生成的逻辑函数。


给描述编号。这样更容易看明白 AI 正在处理哪条描述。


多让 AI 创建函数。如果直接让 AI 生成 100 项的数组,AI 可能真的每一项每一项写出来,如果告诉 AI 创建一个生成数组的函数,AI 就会用循环语句来完成了。


如果一次不理想,多试几次。把 temperature 参数设为 0.5,有一定随机性可能会产生更好结果。


看起来有点产品经理总结如何与程序员沟通对接的味了。


背后的 Codex“再进化”


所以话说回来,这个最新版的 Codex 到底有多好用?除了 Andrew Mayne 最感兴趣的 token 上限翻倍以外,新增加的插入和编辑两大功能也挺有意思。


先来看看 Codex 的编辑功能,像优化代码性能就能用一句话搞定:



或是换个编程语言实现代码:



还有“单行代码编程”(One Liner),一句命令就能实现:



有了这一功能,调整代码的难度就会降低不少。使用 Codex 的时候,甚至可以像甲方一样,无需手动调整代码,只需要对着这位“AI 程序员”发号施令,就能让它生成你想要的东西。


再来看看 Codex 的插入功能。不仅能主动生成注释,提醒这段代码的作用:



还能根据上下文理解这段函数,主动帮你插入它的定义:



无论是开发框架、还是写小软件,都不需要再担心“一条路走到黑”,可以根据需求再从中间进行调整。


当然,这些功能放到 GPT-3 上也类似。无论是换人称、改格式这种小技巧:



还是随着上下文修改并插入语句,都不在话下。



除了这两个功能以外,还有一些细节上的更新,例如 UI 变得更加简洁等等。


事实上,这一系列新功能,都是为了让 Codex 和 GPT-3 变得更容易上手。据 OpenAI 的科学家表示,他们希望通过这次更新,让更多“非职业选手”也玩上 GPT-3 和 Codex。



这也确实吸引了不少感兴趣的网友动手尝试。像搞出“7 句话让 AI 给我做游戏”的 Andrew Mayne,原本只是一位惊悚小说家。



△还戴着顶 SpaceX 的帽子,要素过多


除了他以外,包括《连线》编辑 Clive Thompson 等人也在尝试用 Codex 给自己写代码。Clive 表示,Codex 掌握的知识量比他们这些“业余选手”丰富不少,能选出最合适的函数和库来完成需求。例如在接到与 PDF 有关的需求时,调用 PyPDF 库。


还有网友表示,自己拿 Codex 做了个《太空侵略者》(space invaders)小游戏,同样成功了。



看到这些成果,有网友感叹,当 AI 真的学会写代码后,留给人类做的可能就剩下两件事情:写更好的 AI,或是想想能用 AI 生成什么。



不过,更加谨慎的网友则认为,AI 生成代码容易让人对它产生依赖性,从而忽视代码本身的问题。例如这位作者用 Codex 写的图像处理代码,就存在一些不正确的地方:



还有网友预测,用 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


访问购买页面:


游戏外设自营专区