GameLogicBench:使用 Tick 级状态断言评估运行时游戏逻辑的编码代理
GameLogicBench: Evaluating Coding Agents on Runtime Game Logic with Tick-Level State Assertions
摘要
编码代理可以跨大型软件项目修改和测试代码。游戏开发是代理必须执行游戏规则的领域。即使在运行过程中违反了规则,游戏也可以以有效状态结束。当前的游戏开发基准会重播固定示例、对视频进行评分或要求另一个模型来判断结果。然而,现有的基准测试还没有在评估者选择的各种场景的整个执行过程中检查游戏规则,同时确保判决的准确可重复性。我们引入 GameLogicBench,这是 Godot 项目中 72 个游戏逻辑任务的基准。自动评估器会在每次模拟时检查每个游戏的规则。在 403 个手工设计的场景中,种子参数变化产生了 1,451 个测试用例。为了确保评估器衡量行为而不是实现选择,它必须接受每项任务的不同正确实现,同时拒绝突变体,即删除了一项所需功能的实现。这些任务涵盖孤立的机制、多系统交互和存储库规模的功能。在 20 种语言模型和支架的组合中,观察到的最佳运行解决了 52.78% 的任务。在 Claude Code 的领导下,随着任务范围从孤立的机制、通过交互系统扩展到存储库规模的功能,所有 12 个模型解决的任务越来越少。与孤立的机械任务相比,代理在存储库规模的任务上更频繁地检查代码并进行更多的工具调用。大多数不成功的提交是可以运行的,但错误地实现了一些所需的游戏行为。我们比较了使用突变体进行验证和未使用突变体构建的基准评估器的版本。如果没有此验证,错误的代理提交就会通过。一项单独的分析发现,当网络访问开放时,代理会从公共存储库复制代码。因此,可靠的评估既取决于测试拒绝的内容,也取决于外部代码代理可以访问的内容。