点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

梦晨 萧箫 发自 凹非寺
量子位 | 公众号 QbitAI

什么,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

点个在看 paper不断!

7句话让Codex给我做了个小游戏,还是极简版塞尔达,一玩简直停不下来相关推荐

  1. java演练 谁在哪里做什么 文字小游戏开发

    java演练 谁在哪里做什么 文字小游戏开发 视频 java演练 谁在哪里做什么 - 西瓜视频 https://www.ixigua.com/6870326962703827469/ 代码 impor ...

  2. 这家工作室花三年把塞尔达做进RogueLike里面

    近日<轮回深渊>终于在Steam上架,这是ScreamBox这家是十年「老」游戏工作室正式推出的第二款作品. 2011年,郭星与几位朋友凭着对游戏的热爱而创建ScreamBox工作室. 从 ...

  3. 《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧

    本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...

  4. python大作业数独_python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  5. 黑白块游戏java代码_用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏,黑白反斗棋,我玩过了5*5和10*10的.是学习之后做的,不是自己原始开发的. import java.awt.Color; import java.awt.FlowLayo ...

  6. 用Qt做的拼图小游戏

    思路:在主界面可以选择图片进行对应的拼图,把一张600*600的图片分割成3*3张200*200的九宫格图片,对每张图片进行编号,对应0~8,然后打乱顺序,用的是随机函数,然后添加鼠标过滤事件:鼠标左 ...

  7. 用C语言做一个迷宫小游戏

    用C语言做一个迷宫小游戏,以下是代码段 这个迷宫游戏使用了递归回溯算法来寻找通往出口的路径.迷宫中的墙用'#'表示,路径用空格表示,入口和出口分别用'S'和'E'表示,已走过的路径用'*'表示.在生成 ...

  8. java做一个打地鼠小游戏

    想起了了大学那会做过这个小游戏,今天重新写一下 首先准备几个素材图片,搜了半天没有,只好自己找了个图片截了一下(如果侵权了联系我删除). JFrame画一个主页面,设置了全局的行.列和总数,循环添加所 ...

  9. 用Python做贪吃蛇小游戏

    用Python做贪吃蛇小游戏 简介 引言 游戏预览 结构图 代码框架图 代码讲解 main主函数-开始工作 show_start_info()欢迎进入游戏 running_game-让我们开始游戏吧 ...

最新文章

  1. python画指数函数图像_解决python中的幂函数、指数函数问题
  2. Android.mk 文件语法详解
  3. 2021 ICPC 江西省大学生程序设计竞赛(热身赛)【完结】
  4. SpringMVC环境配置全过程IntelliJ IDEA 2020.3.1
  5. wxWidgets:wxMaximizeEvent类用法
  6. 程序员面试100题之十五:数组分割
  7. 06-机器学习.数据分析.数据挖掘的区别于联系
  8. 2016年安全身份识别主流趋势
  9. 自己动手写java虚拟机_自己动手写操作系统(要了解的知识点)
  10. Java 8 新特性:Comparator.naturalOrder | 自然排序
  11. android 拦截webview加载url_android webview拦截post的请求
  12. Hyper snap
  13. Prometheus监控(二)
  14. Macromedia Flash 8 Video Encoder安装
  15. 西游记不单单讲的是故事(1) ------ 摘自 吴闲云的《煮酒探西游》
  16. Discuz发帖如何设置默认回帖仅作者可见回帖
  17. Hack The Box - Meta 利用Exiftool远程代码执行漏洞获取webshell,ImageMagrick命令执行漏洞横向提权,更改环境配置SUDO纵向提权
  18. oracle wallet使用与维护
  19. 【ORACLE】错误代码大全
  20. 苹果手机咋截屏_苹果手机信号满格但是没网络咋处理

热门文章

  1. 【青少年编程】【三级】 魔术表演“开花”
  2. 【直播】鱼佬:心跳信号分类赛高分突破
  3. 随机变量的数字特征(数学期望,方差,协方差与相关系数)
  4. Arm收购进展、元宇宙、GPU涨价……听听黄仁勋怎么说
  5. 以AI制作AI,当AutoML加入AI研究员内卷大潮
  6. 深度学习中的注意力机制(三)
  7. 清华、北大教授同台激辩:脑科学是否真的能启发AI?
  8. 微软发布代码智能新基准数据集CodeXGLUE,多角度衡量模型优劣
  9. 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言439-448条如下:
  10. 赠书 | 从阿里到Facebook,一线大厂这样做深度学习推荐系统