在所有关于《Fable》和《Astra》的帖子中,来点不一样的吧。你好,呃……Quank?

一些重要细节:

  • 游戏完全由 JavaScript + WebGL 编写,这意味着它本身就是源代码,并且完全在前端运行
  • 目前游戏比视频中展示的更完善,但我想展示的是大约一个月内(含间歇)完成的一个版本
  • 它采用了类似《毁灭战士》或《毁灭公爵3D》的区块系统,大幅优化了渲染几何体,并实现了镜子、非欧几里得关卡等特性
  • 600 KB 的体积适用于压缩版本,否则大约为 2 MB
  • 我计划在游戏完成后将其开源,并附带关卡编辑器

通过「氛围编程」完成的部分:

  • 游戏的大部分内容,包括基于区块的渲染引擎(尽管某些部分基于非常具体的指令)
  • 敌人模型、骨骼绑定和动画(含少量手动修改)
  • 关卡编辑器和模型可视化工具

手动完成的部分:

  • 参数和标志调整(例如物理数值、敌人速度、爆炸范围等)
  • 表面纹理(虽然它们很大程度上基于 AI 生成的程序化纹理)
  • 关卡设计,由于编辑器是「氛围编程」的,因此只允许使用其支持的功能

工作流程:

坦白说,我的工作流程并不花哨(例如,除了无头测试外,我没发现其他技能有什么用处),因为这是我第一个使用 Claude Code 进行「氛围编程」的练习项目。

该项目最初主要在 Opus 4.6 上完成,我将功能拆分成小块,以便在 Claude 每次 5 小时的休息间隙中处理。我决定创建一个内部 git 忽略的目录,其中包含 .md 格式的「待办」文件,通常详细说明功能算法(例如区块系统)应如何工作,然后在计划模式下让 Claude Code 处理所需的任务,必要时协商结果,要么保留,要么回滚并尝试其他方法。

我最近切换到了 Opus 4.8,它稍微便宜一些,在智能编程和测试方面表现更好,但有一个恼人的习惯:喜欢在代码下堆砌大量注释。

AI 最难处理的是区块几何(浮点误差等)以及关卡编辑器的绘制函数。另一方面,它在模型绑定和动画方面出乎意料地擅长。

顺便说一句,从头开始进行「氛围编程」并优化 3D 渲染引擎,处理各种浮点和几何误差,这让我对 90 年代制作《毁灭战士》和《雷神之锤》的 id Software 团队(包括那位穿越维度的时空巫师天才、真正的火箭科学家约翰·卡马克)肃然起敬。

音乐改编自 SubspaceAudio 的《400 首独立游戏音乐循环》合集(已购买)。