网上 AI 一键生成游戏的案例一大把,自己平时工作中虽然也会使用 AI 工具,但大抵以辅助为主,完全放手让 AI 来生成一个完整游戏确实还没试过,所以决定简单尝试一下看看(娱乐为主) ~

原则
  • 游戏资源这块不做要求,虽然当前不少 AI 工具已经能够直接生成游戏资源,但是想要达到完善统一美观等条件,还是需要很多人工调教的,此次尝试就不去深究这块了,仅关注代码逻辑层面
  • 代码逻辑部分则完全交由 AI 来生成,过程中间有错误也直接反馈给 AI 来进行修正,尽量避免人工调整
  • 引擎部分我选择了 Godot ,毕竟自己是 Godot ‘老白’,没有啥先入为主的 Godot 知识,对 AI 的生成结果自然也就不太会有很多无意识的调整(干扰)了
过程

首先当然是开启 Godot 新建一个空白项目,然后安装好 AI 开发工具(CodeBuddy 等)就可以开干了~

在这里插入图片描述

第一步自然就是让 AI 开发工具直接生成游戏逻辑代码了,我提示的是生成经典的贪吃蛇游戏(基于 Godot 引擎),一会儿的功夫,工具就提示生成成功了,大概包括了几个资源文件和几个代码文件,直接转到 Godot 环境下去运行,报了一些脚本的运行时错误,不去深究,直接把报错喂给 AI 工具让其修正,来回几次之后,游戏竟然真的跑起来了!

在这里插入图片描述

游戏看起来是确实像那么回事,基础元素都有,整体交互似乎也没有什么问题,确实令人惊喜,不过高兴没多久,突然发现游戏会莫名的失败结束(即正常游玩过程中突然就提示游戏失败了)

在这里插入图片描述

直接把这个问题(游戏会不正常的提前结束)描述丢给 AI,工具马上就提示说找到了问题并做了修复,但实际重新运行游戏的时候问题依旧,于是再次去与 AI 沟通,来回几次之后发现似乎陷入了死循环,没办法,最后还是人工断点跟了下相关逻辑,最终发现所谓的提前结束,其实是游戏过程中碰到了边界(AI 生成的游戏中默认按 20 * 20 大小作为边界),但这个游戏边界在游戏显示中又是不可见的(并且比游戏显示窗口小),所以游戏过程中只要碰触了这个隐形的边界就会提示失败 …

这里出现了第一个问题点,就是有时候某些问题我们自己可能很难准确描述(尤其在不了解细节的情况下), AI 本身又不能自行发现修正,于是就会导致"死锁".

至此基本就完成了游戏的主体逻辑,于是就开始添加额外功能了,第一个需求我提示的是希望能够增加倒计时功能,即在一定时间内如果没有吃到食物,则直接判定游戏失败,并且每次吃食物的时候倒计时就会重置,比较惊喜的是功能一次性就成功了,测试下来基本没有发现什么问题,只是觉得默认的 30s 配置有点长了,所以就提示 AI 帮忙改短,这里同样遇到了"死锁"的问题,每次 AI 都提示已经调整成功,但实际游戏里却显示没有改动,于是自己又跟踪看了下,最终发现 AI 每次只会修改代码中倒计时变量的默认值,但实际上应该要改的是场景文件中倒计时的重载值.

这里出现了第二个问题点,就是在一些 AI 不擅长的处理(譬如资源文件处理等)上,AI 可能会出现"死锁"

第二个需求我提示的是添加音频播放功能,相关代码依然很快就生成了并且运行正常,只是发现背景音乐不能正常循环播放,多轮提示调整后问题依旧,最后发现是脚本接口使用不当引起的,包括游戏导出后发现无法正常读取背景音乐文件的问题,多轮提示调整后也没有解决,最终也是发现是生成代码中的文件接口使用错误导致的.

按理说似乎 AI 不应该出现上面的这些代码接口问题,但不知是因为"幻觉"呢,还是本身就训练不足之类的, AI 确实就犯下了这些错误,于是我们可以总结出第三个问题点,就是在一些 AI (应该)擅长的处理(譬如代码生成等)上,AI 可能也会出现"死锁"

最终,我们有了一个基本正常的游戏版本(确实在编辑状态下还有些报错,但实际并不影响游戏)

在这里插入图片描述

结论

众所周知的, AI 存在原生的 累积错误概率, 上下文窗口有限 等问题,同样的从 AI 与 人 的交互层面来看,也存在诸如 验证速度缓慢,问题描述不清 等问题,上面总结的几个问题点可能或多或少都是这些问题导致的,一旦这些问题发生,人工介入似乎还是唯一的相对靠谱的方法.

但同时也不能否认,AI 工具的使用让我开发游戏(至少是原型开发)的整体效率大幅度的提升了,如果以完全的"古法"编程来开发上述的游戏功能,至少需要当前几倍的开发时间(这还是在你相对熟悉引擎使用的情况下),当然这也会带有另外的好处,譬如会让你对 Godot 的了解更深入,对游戏实现细节更熟悉 …,如果说这些是你开发游戏的主要目的,那我推荐你进行"古法"编程.

总的来说,这次的 AI 游戏开发带给我的体验是复杂的,我感受到了其所带来的巨大的效率提升,也窥见了其背后一些细碎的隐秘问题,回过头来想,有句古语当前似乎更加明晰起来了:

重要的不在于你怎么做,而在于你做什么 ~

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐