more
Back

用85句提示词做个3D游戏: 我对AI协作的实践和思考

一. 从 0 开始:

和大多数人一样,我虽然没接触过游戏开发,但看多了自媒体 “0 基础2 句话创建3D 游戏”的标题,自然有了“我想试一试”的冲动:世界已然如此疯狂,不妨参与一下。和往常一样打开聊天框,用我仅有但不多的技术语言描述下需求Prompt:“目标为做一个呼应中国蛇年的贪吃蛇网页端游戏,我有一点python基础,使用vscode。我对html不熟悉,需要告诉我如何便捷部署和测试,运行于手机网页端,目标设备是iPhone,要求:竖屏使用,类似H5小游戏;把屏幕按对角线分割成4部分,点击后用于操作上下左右;需要不复杂代码下的酷炫效果”。——眼睛跟不上AI光标的速度,很多游戏框架的输出我也并不了解,但不影响复制粘贴代码看结果 —— 不出意外的话意外大多会出现:无法执行,回到对话告知错误,大约5 轮后,配图中最左侧的画面出现了—— 好消息是游戏可以运行,坏消息是减配得厉害,非要描述得话 :“能用,但不多”。

“一个粗糙的开始,就是最好的开始”,不好用没关系,做好备份小步快跑,继续描述功能。值得注意,AI 不了解你是 80 亿人中的哪一个,你的基础怎么样,你的软硬环境有没有,你想要代码片段还是完整代码,这些对AI来说都是“从 0 开始”的基础信息,给足背景信息在这个阶段显得尤为重要。本着与AI有空聊一聊,没空放一放的心态,大约2000行代码从 0-1 实现(可以和我一样不懂 JavaScript/WebGL,但有一点点程序思想会从容很多); 音乐从 0-1 使用 AI实现;图形素材与 3D 模型起初也是 AI 做的,但鉴于我们自己是设计师,所以复用了一些已有年底策划素材,也算是东拼西凑成全了现在的小游戏。所以最终我证明了:从 0 开始完全可行,也证明了 2 句话写不成一个 3D 游戏,非要说个具体数字——大约需要 85 句(试玩游戏在文中视频下方)。

二 新手经验

假设你现在开始做尝试,过程中的困惑我感同身受——错误越改越多,忘记了之前我说过的需求,这里改对了那里又错了。这些不出意外劝退了大部分尝试的人,我认为比较重要的是理解 AI 的运作原理,这会让我们能洞察错误出现的原因,之后找到应对方法,及一个良好的与 AI 协作的策略。

1. 理解上下文长度限制:

如果了解 Transformer的基本原理,就知道不要指望当前 AI 系统记住曾经说过但已有一段时间的内容。 因为传统 transformer 计算量正比于上下文tokens数量的平方,消费级AI 工具会顾及成本平衡把上下文保持在一个合理水平。 也就是长时间对话后并不会完整记住对话上下文。因此,”把重要的内容复制一遍放回对话框“大多时候很管用。

2. 理解大模型知识时效局限性:

模型训练需要时间,我们今天用到的模型知识往往是几个月前或更长时间之前的,且是静态的,所以在模型给出的 API 往往会不可用。这时你再逼着它问怎么改错是没有意义的,因为它成功预测未来开发者如何定义新 API 的几率几乎为 0. 所以开发中诸如给出的资源链接失效,属性方法定义错误也是常见。 这需要找到能上网查询的 AI 或手动找到官方文档给模型,不然就会陷入死结。最佳实践是先告知它你的环境对应的 API 版本,解决不了那就找到官方文档给他。

3. 随项目增大“增量开发”的思想很重要:

如果你像我一样,并不熟悉当前开发要使用的语言,那么每加一个特性就马上验证和测试是非常重要的。当项目开始有多个文件,之间的连带关系往往是很复杂的,模型上下文限制会导致无法考虑到全局代码中的各处关联。分拆功能每次进展一点,保持好多个备份是必备的。“增量开发“是个AI告诉我的一个专业词汇,也许它是看出了我的不专业所以给了我一个与它沟通的关键词。

4. ”两步提问“ 是一个良好的交互新范式

目前 AI 对话产品的主流策略几乎都是直出答案,而实际的开发任务,哪怕是最小的子任务实现很可能对应着成千上万种解决方法,没有中间过程的结果就是 AI 上来直接写,等你发觉不对再改回去就会污染上下文。所以一个实践中有用的策略是:照常描述目标,但加上”指出需求中的漏洞,列出重要决策项目,决策之后再开始“。这个方法看似增加了对话轮数,实则因为减少了反复修改的带来上下文混乱,在实践中效率反而会提高,在我看这该是编程AI更好的交互范式。

这些小方法的叠加最终使得一个游戏得以展示⬇

附游戏链接:

https://gaoge.me/snake/index.html 点屏幕的上下左右部分控制方向

三 引申思考:

未来与 AI 的协作互动会是什么样子?——我上面提到的经验不是最佳实践。因为我仅是信息的搬运者——向模型传递需求和错误,向编辑器传递模型答案并测试,这没什么技术含量。仅是当前 AI 在安全机制和产品模式进化过程的中间产物,当前很多AI编程工具已经开始解决这些问题了。那是否未来的协作机制真的可以变为“2 句话,3D 游戏完成了” 我认为这分两种情况:

对于结果评价发散的任务,AI 替代可能要很长时间。类比当下很成熟的图片生成:2 句话足以生成很好的作品,但恰好是我心中的作品可能性微乎其微,究其原因是目标本身是不清晰或难以描述的。所以这个领域我们能看到设计开发工具变成了更好用的工具,但一步完成任务还不现实。

对于结果评价唯一的任务,AI 替代会更快发生。类似于重构代码提升代码效率 / 复制一个竞品上已存在的产品功能。当前看来存在的障碍仅为权限和上线文长度限制,这在不远将来用 1-2 句话完成的可能性大得多,尤其在强化学习在今天成为一个新范式的大背景下。

说回到个人,当下的实践我像个搬运工,仿佛意义不大,但最大的收获是游戏之外:“增量开发” “Draco压缩” “ Vite打包” “ES6” “右手坐标系” “WebGL” “Three.js” “模块化代码”这些构造了一个粗糙的端到端开发流程和思想,这些新知识让人兴奋。它们又会成为未来进一步于 AI 协作的基础。这么看来搬运工没有白工作,多少涨了些肌肉。

四 价值与业务联动

这个尝试的初衷,是加入到我所在业务的蛇年新年策划。等我证明我可以做的时候,策划已经过半,规划已经不支持再加入新游戏了。 从策划变成了分享,这也说明了个人AI实践与成功支持实际业务依然有很多潜在问题——如何在很多不确定因素下承诺开发周期?业务的现实修改优化需求是否通过 AI能力承接?但另一方面它也给出了一些新的可能性,比如传统的长战线长流程,在这样AI 协助下可以快速验证快速执行,对于新闻热点这类对即时反应要求很高的业务有潜在价值,值得持续探索。

虽然没能加入到新闻年终策划,好消息是今年我们诸如”送年画“ ”AI 对联“等等 AI 策划案,已经上线并开始收获好评,所以希望更多关注腾讯新闻 CNY 新年策划,使用腾讯新闻 APP,参与我们的更多 AI 互动。

写在最后

之前的文章 《图形化理解 AI 的幻觉,涌现,底层运作方式》中提到,AI学会数学将有巨大的爆发,我们正在这个爆发的时代之下,它会让我之前的努力变得微不足道,但和 AI 协作,了解它的原理和机制,探索沟通方法对于我们依然重要。工业时代来临后,机器已经基本解决了人的体力限制,但依然那么多匠人做着和机器可以做的事情并创造着价值。 未来机器解决了人的智力限制之后,我们依然会找到自己的价值。

业务之外,我的女儿是这个游戏的第一个粉丝,甚至一些产品需求是她提出也最终加入了,这让我体会到了额外的开发动力。每次她说要玩贪吃蛇游戏,我都一脸严肃:不能玩游戏眼睛要坏了,但这个最多玩 5 分钟啊——说话过程需要一脸严肃得藏住开心。 我也和她说,当前她是这个游戏的世界记录保持者(4458分),我想这何尝不是一个AI带来的价值呢。

more
Back