1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

科技 7句话让Codex给我做了个小游戏:极简版塞尔达,一玩简直停不下来

Discussion in '新闻聚焦' started by 漂亮的石头, 2022-03-20.

  1. 漂亮的石头

    漂亮的石头 版主 Staff Member

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

    [​IMG]

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

    [​IMG]

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

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

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

    7 句话生成冒险游戏

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

    [​IMG]

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


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

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

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

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

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

      背后的 Codex“再进化”

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

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

      [​IMG]

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

      [​IMG]

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

      [​IMG]

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

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

      [​IMG]

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

      [​IMG]

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

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

      [​IMG]

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

      [​IMG]

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

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

      [​IMG]

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

      [​IMG]

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

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

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

      [​IMG]

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

      [​IMG]

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

      [​IMG]

      还有网友预测,用 AI 写代码的话,最后还是要让工程师来调整它,本质上还是殊途同归。

      [​IMG]

      你会用 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
     
Loading...