我是来自巴西的独自开发者,正在为真实的超级任天堂(Super Nintendo)制作新游戏。为此我开发了 SNES Studio,这是一个浏览器应用,能够将一部分 TypeScript 编译为 65816 代码,即 SNES 处理器的指令集。

AI 在此项目中扮演了重要角色,我诚实地向您介绍我是如何使用它的:

  • 代码:AI 编写了大量的类型定义、编译器通道、运行时以及游戏代码。我负责整体架构、语言子集以及所有设计决策。保持理性的规则是:AI 永远不会拥有最后的话语权,硬件才是。每一次修改都需要通过构建 ROM 并在模拟器中运行测试脚本来验证。

  • 音乐和文本:AI 帮助了音乐草稿以及文档和开发日志的撰写。所有内容均由人工进行编辑。

  • 平衡:在 Tiny Run(一款卡牌类游戏)中,我编写了能够以不同牌组和构筑进行数千局运行的 AI 对手。这帮助我发现了人工难以察觉的平衡问题。

让我惊讶的几点:

  1. 受限语言对 AI 非常有帮助。一个小而文档化的子集(snes-studio.pages.dev/language)意味着更少的虚构 API,也更可能在 3.58 MHz 的 CPU 上实际编译。

  2. 严格的限制(512 KB 卡带、128 KB RAM)使得 AI 输出易于检查:要么符合规格,要么不符合。

  3. 基准胜过直觉。我们保留一个速度页面(snes-studio.pages.dev/speed),用来比较生成代码与手写汇编的性能;目前大约在 1.04 倍左右。

您可以直接在浏览器中尝试:https://snes-studio.pages.dev。我们的三款冲刺游戏(Super Wolf、Tiny Run、Space Blasting)可在 https://vsgamesretro.itch.io 上玩。

如果您有关于 AI 在极限受限目标上写代码的工作流程经验,我很乐意听取并回答问题。