本文来自于微信公众号 机器之心(ID:almosthuman2014),作者:机器之心。
这个「愤怒的南瓜」游戏玩起来简单,创建起来却需要一些诀窍。
自 GPT 系列对话大模型以及 DALL・E、Midjourney 等文生图大模型兴起以来,基于它们的硬核、有趣二创应用花样频出,让普通人切身地体验到了大模型的魅力。
今天又一个这样的游戏项目引起了我们的注意。
推特用户 @javilopen 使用GPT-4、DALL・E3和 Midjourney 编写了小游戏「愤怒的南瓜」(PS:如有雷同纯属巧合),其中 GPT-4负责所有的编码工作,DALL・E3和 Midjourney 负责图形部分。
游戏画面、效果怎么样呢?从以下几张动图来看,似乎是分辨不出它是大模型生成的。
小伙伴们也可以试玩,还能自己创造关卡。不过,它目前还不支持手机端运行。
接着来看这款「愤怒的南瓜」的实现流程和 prompt 细节。
首先是图形,这也是最简单的部分。以下是 prompt 分享:
标题屏幕(使用 GPT-4里的 DALL・E3):名为「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,木头,Xbox360图像,浅粉色和海军蓝 —— 比例为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, Xbox360graphics, light pink and navy --ar8: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 --ar8: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代写。
作者在游戏中加入了很多细节,比如不同的粒子效果、不同种类的物体。不过到目前为止,GPT-4还不能仅凭一个 prompt 就能生成完整的游戏。
因此,他使用的窍门是循序渐进向 GPT-4提出要求,这与人类编程方式相似,先从简单可行的基础开始,然后不断迭代、拓展、优化代码。
他使用了一些小技巧和 prompt,首先从简单的事情开始做起,比如「我能不能使用 matter.js 和 p5.js 创建一个愤怒的小鸟风格的游戏?只需要用鼠标控制,设定好发射角度和力度,然后撞击一堆由2D 物理效果堆叠的箱子。」
接着持续添加更多的元素和功能,遇到问题详细说明错误的地方,让程序自我修正。比如「现在我问你,你了解愤怒的小鸟游戏中玩家在屏幕上滑动手指来发射小鸟吗?把这种方式添加到要创建的游戏里,不过要改成用鼠标控制。」
再比如「把怪物设计成圆形」、「我想用粒子效果制作一个火炬,是否可以通过 p5.js 来实现?」如此种种,不断与 GPT-4进行交互试验,最终有了现在的游戏效果。
这个纯 AI 版本的「愤怒的南瓜」,你心水了吗?