我开始创建《钢铁疯狂》游戏,因为我想要一个清晰的方式来解释我工作的架构。它是一个基于浏览器的机器人游戏,LLM飞行员决定如何移动、什么时候发射子弹,以及何时使用工具卡。AI帮助我快速完成一个可玩的游戏,但是一旦我开始尝试平衡它,速度优势就大部分消失了。其中一个机器人不断被摧毁,我花了很长时间做了我猜想很多人都会做的事情:改变提示、观看几个比赛、并根据我刚刚看到的情况来想出一个解释。

问题是那些解释中有几个是错误的。例如,我们在目标指示中做了更显眼的调整,没有改变arena、奖励、装备、或飞行员角色。第一个30v30测试中,原始版本没有产生任何目标捕获,赢得的分数是15-15。显著版本产生了34个捕获和28-2的赢得分数。在最初看起来像显著成功的情况下,绝大多数这些捕获来自四个异常长的比赛。我们重复了测试,使用了新的匹配种子、交叉条件和不同的推理服务器。在58个完整对中,显著目标奖励击败了默认目标奖励9-1,红方的胜率从20.7%提高到43.1%。这是一个真正的改进,但仍然没有创造平衡,并没有证明我们最初的简单解释。

我们尝试将目标奖励提高到四个点,因为我预计更强的激励会使飞行员更一致地追求它。结果并没有改善,所以我们保留了改变。这个负结果可能比另一个成功演示更有价值,因为它迫使我们区分我们实际测量的内容和我们想要讲的故事。

我现在最重视的项目部分不是AI帮助产生游戏。它是架构为我们提供了一种方法来错误地做事而不失去证据。每场比赛都会写入事件日志并可以重放。实验使用匹配种子,失败的运行仍然留在记录中,我们在运行一批之前写下了预测和停止规则。附带的视频是展示系统工作的一个例子,而不是总体结果的证明。它展示了系统在工作,但结论来自重复的实验。

如果你正在构建AI驱动的游戏行为,我很感兴趣地知道你从观看几个令人信服的运行到确定行为变化是可重复的的过程中如何移动。