Godot4初探

引子

最近玩空洞骑士 + 丝之歌非常上头,这真是边玩边令人感叹的游戏。更感叹的是空洞骑士开发者只有三个,程序+美术+音乐,令人羡慕的组合,令人羡慕的想象力,执行力,以及产出结果。

想写游戏的心其实一直都是有的,现在有了 AI 加成,其实确实可以通过 AI 解决很多过程性的设计问题。AI 的强项在于剧情生成与设计,机制的设计,以及代码编写。可以说这些部分大大降低了游戏的产出难度,但是我同时也意识到,游戏的核心,其实也没有变化,那就是创意,故事,玩法。这些东西在你没有想象力的时候,你无法让 AI 生成。就像鲁迅说过的:“妖魔鬼怪,充其量就是动物和人的变体,无非多了几条腿,几只手而已”。这句话非常生动地说明了这个问题。

所以空洞的火,其实本质并不是玩法有多大的创新,还是资本有多大的力量,它能火到现在无非就是故事,美术,音乐的加成,玩法与机制,还是老一套的类银河恶魔城而已,而且是相当的老。

背景

结合 AI 的能力加成,尝过了几个方向:

  • 用 AI 直接写 C++ 代码做游戏
  • 还是好好学习 unreal 或者 unity 这些 3A 大作引擎

想做 2D 的心,与其说是因为玩空洞骑士带来的震撼,还不如说真的就是因为技术上的限制。AI 直接写 C++ 代码还是很艰难,最开始稍微还行,但是一步步搭上去那个架构以及复杂度貌似不是 AI 能驾驭的,或者说不是我能驾驭的。

而 unreal 和 unity 类框架目前还不太容易和 AI 结合。几经波折,发现好像还是 Godot 对 AI 更为友好,可以全程把仓库目录交给 AI 接管,然后整体架构也相对简单一点。当然这里面有 2D 游戏的一部分原因。

初步尝试

尝试了一下 Godot 之后,效果还是出奇地好,主要是内容出的很快。

使用我一直以来的工作流,很快就基本实现了

  • 2D 横版游戏框架
  • 相机跟随
  • 主角与敌人的活动,攻击
  • 主角的基本移动方式,跳跃,冲刺,爬墙等
  • 还有基本粒子效果

然后用 ludo.ai 生成了一下主角的 sprite,替换了一下。

只可惜,ludo.ai 质量实在很有限,后面的主角 sprite 将会是一大难题。空洞骑士里的动画基本上都是逐帧手画,好处是动画质量高,但是缺点当然有很多,需要逐帧微调,很难换风格,缩放,做动画过渡等。这个难题就看后面如何解决了。

有了机制基础之后,直接让 AI 实现了 Godot 的地图编辑插件。

地图编辑器

地图编辑器实际上是一个 2D 编辑器,通过涂抹格子快速生成 3D 场景。由于 2.5D 游戏的场景本质上需要 3D,所以我感觉这种方式是一种极快的生成方式。理论上有了地图编辑器之后,游戏就已经可以堆量了,无非就是设计整个地图,在每个地方安排通路,怪物,道具等。

基础 demo

之后暂时没有堆量,而是先继续实现一系列基础能力。

  • 实时地图快照
  • 链接场景的门
  • 肉眼不可见的隐藏通道
  • 可击碎物体
  • 代币收集
  • 物体收集
  • 菜单

这些基础能力使用 AI + Godot 的结合都很容易实现。不过当然,我对这些设计还是有思考与把控的,不然 AI 也不会实现的这么顺利。

至此感觉 AI + Godot 的开发流程基本上跑的比较顺畅,从文档规模来看至此实现了 40 个 spec,还是有点难想象。虽然本 demo 看着很简单,但实际上已经包含了大部分的 2D 类银河恶魔城游戏的机制。

整个过程体验还是非常愉快,因为这实际上是以一个以前无法想象的速度快速实现并搭建可执行的游戏 demo,无疑还是给了我不少动力以及信心的。