GPT-4写代码,DALL·E 3+MJ搞定画面,AI版「愤怒的南瓜」来袭

机器之心报道

编辑:杜伟、大盘鸡

这个「愤怒的南瓜」游戏玩起来简单,创建起来却需要一些诀窍。

自 GPT 系列对话大模型以及 DALL・E、Midjourney 等文生图大模型兴起以来,基于它们的硬核、有趣二创应用花样频出,让普通人切身地体验到了大模型的魅力。


今天又一个这样的游戏项目引起了我们的注意。


推特用户 @javilopen 使用 GPT-4、DALL・E 3 和 Midjourney 编写了小游戏「愤怒的南瓜」(PS:如有雷同纯属巧合),其中 GPT-4 负责所有的编码工作,DALL・E 3 和 Midjourney 负责图形部分。



游戏画面、效果怎么样呢?从以下几张动图来看,似乎是分辨不出它是大模型生成的。





小伙伴们也可以试玩,还能自己创造关卡。不过,它目前还不支持手机端运行。


试玩地址:https://bestaiprompts.art/angry-pumpkins/index.html


接着来看这款「愤怒的南瓜」的实现流程和 prompt 细节。


首先是图形,这也是最简单的部分。以下是 prompt 分享:


标题屏幕(使用 GPT-4 里的 DALL・E 3):名为「Angry Pumpkins」电子游戏的横向主屏幕图片。设计参考「愤怒的小鸟」美术风格,但又有所不同。鬼屋、墓碑和蝙蝠等万圣节元素填充背景。游戏徽标位于中心顶部的显著位置,两侧是生气、虎视眈眈的南瓜造型。底部中央有一个「Play」按钮,周围环绕着阴森恐怖的雾气。


"Photo of a horizontal vibrant home screen for a video game titled 'Angry Pumpkins'. The design is inspired by the 'Angry Birds' game aesthetic but different. Halloween elements like haunted houses, gravestones, and bats dominate the background. The game logo is prominently displayed at the center-top, with stylized pumpkin characters looking angry and ready for action on either side. A 'Play' button is located at the bottom center, surrounded by eerie mist."  


背景图(使用 Midjourney),作者使用了一张图片作为背景(并进行了多次修补),图片的 prompt 为:iPhone 截图中「愤怒的小鸟」的天际线,万圣节版,墓地,风格为浅海蓝宝石和橙色,新传统主义,kerem beyit, earthworks,木头,Xbox 360 图像,浅粉色和海军蓝 —— 比例为 8:5。”


"Angry birds skyline in iPhone screenshot, Halloween Edition, graveyard, in the style of light aquamarine and orange, neo-traditionalist, kerem beyit, earthworks, wood, Xbox 360 graphics, light pink and navy --ar 8:5" 


另一张裁剪之后用来生成地面:2d 平台、石砖、万圣节、2d 电子游戏地形、2d 平台游戏、万圣节场景、类似于愤怒的小鸟、万圣节场景、截图、游戏资源 —— 比例为 8:5。


"2d platform, stone bricks, Halloween, 2d video game terrain, 2d platformer, Halloween scenario, similar to angry birds, metal slug Halloween, screenshot, in-game asset --ar 8:5"  


接下来,就要生成游戏中的角色了,作者使用 Midjourney 完成了创作。


  • 万圣节南瓜,游戏精灵图,万圣节版,简易精灵图,2D,白色背景

  • 万圣节绿色怪物,憨态可掬,游戏精灵图,万圣节版,简易精灵图,2D,白背景


"Halloween pumpkin, in-game sprite but Halloween edition, simple sprite, 2d, white background" 


"Green Halloween monster, silly, amusing, in-game sprite but Halloween edition, simple sprite, 2d, white background"


当然,游戏中的物体也是作者使用 Midjourne 制作的。作者创建了各种精灵图样式表,然后用 Photoshop/Photopea 裁剪并移除背景。对于小细节,作者使用 Midjourney 进行修补。


  • 木箱,物品资源精灵图,白色背景,游戏精灵图。

  • 骷髅骨,大型骨骼,物品资源精灵图,白色背景,游戏精灵图。

  • 长方形石头,物品资源精灵图,白色背景,游戏精灵图。

  • 木箱,大型骨骼,物品资源精灵图,白色背景,游戏精灵图。

  • 物品资源精灵图,木板,白色背景,游戏精灵图,类似「愤怒的小鸟」风格。


"Wooden box. Item assets sprites. White background. In-game sprites" "Skeleton bone. Large skeleton bone. Item assets sprites. White background. In-game sprites" "Rectangular stone. Item assets sprites. White background. In-game sprites""Wooden box. Large skeleton bone. Item assets sprites. White background. In-game sprites" "Item assets sprites. Wooden planks. White background. In-game sprites. Similar to Angry Birds style"


最后编程部分使用了 GPT-4。作者表示,这个游戏的代码仅有 600 行,完全由 GPT-4 代写。



完整代码可见:https://bestaiprompts.art/angry-pumpkins/sketch.js


作者在游戏中加入了很多细节,比如不同的粒子效果、不同种类的物体。不过到目前为止,GPT-4 还不能仅凭一个 prompt 就能生成完整的游戏。


因此,他使用的窍门是循序渐进向 GPT-4 提出要求,这与人类编程方式相似,先从简单可行的基础开始,然后不断迭代、拓展、优化代码。


他使用了一些小技巧和 prompt,首先从简单的事情开始做起,比如「我能不能使用 matter.js 和 p5.js 创建一个愤怒的小鸟风格的游戏?只需要用鼠标控制,设定好发射角度和力度,然后撞击一堆由 2D 物理效果堆叠的箱子。」


接着持续添加更多的元素和功能,遇到问题详细说明错误的地方,让程序自我修正。比如「现在我问你,你了解愤怒的小鸟游戏中玩家在屏幕上滑动手指来发射小鸟吗?把这种方式添加到要创建的游戏里,不过要改成用鼠标控制。」


再比如「把怪物设计成圆形」、「我想用粒子效果制作一个火炬,是否可以通过 p5.js 来实现?」如此种种,不断与 GPT-4 进行交互试验,最终有了现在的游戏效果。



这个纯 AI 版本的「愤怒的南瓜」,你心水了吗?




© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

相关推荐

  • 吴恩达加入图灵奖得主讨论:「AI灭绝论」弊大于利
  • 斯坦福马腾宇创业,大模型方向,Manning、Chris Re等是顾问
  • 全球最强长文本大模型,一次可读35万汉字:Baichuan2-192K上线
  • 杨成虎:存储&计算是过去,记忆&推理才是未来
  • Python脚本打包exe,auto-py-to-exe来帮你!
  • 我也入局了。。。
  • 用 AI 设计表结构,这款在线工具太效率了
  • 前端流程图插件对比选型
  • 卧槽!红警源代码居然开源了
  • 想让你的代码简洁,试试这个 SimpleDateFormat 类高深用法
  • 代码是上午写的,人是下午被开除的
  • 猛肝195篇论文,我觉得多模态才是未来
  • 卧槽!红警源代码居然开源了
  • vivo 将发布全球首款基于 Rust 编写的操作系统;Windows 11 更新,含 AI 助手 Copilot|极客头条
  • 从斯坦福小镇到病娇猫娘,AI大模型正在颠覆游戏行业
  • Java实现图片转文字!
  • AI创业:不思考趋势,就会被GPT5折叠
  • 什么样的后端开发,会被公司抢着要?
  • 注解方式优雅的实现 Redisson 分布式锁
  • Java 17 与 Java 11:探索最新功能,为什么我强烈建议你升级到 Java 17?