.io类游戏凭借极简机制与即时反馈极具成瘾性。为测试AI代理的代码生成能力,笔者要求Claude Code、OpenAI Codex及Google Antigravity分别构建一款无需安装的浏览器3D计时竞速游戏。需求包含三条赛道、奖牌目标及“幽灵车”对比功能,并需兼容DualSense手柄。测试中,三款代理均处于高努力模式,使用面向免费用户的模型:Claude Code调用Sonnet 5.5,Codex使用GPT-5.6 Terra,Antigravity采用Gemini 3.8 Flash。

提示词策略:重体验轻清单

为避免模型仅机械堆砌功能而忽视可玩性,提示词刻意避免提供详细功能清单,而是以玩家口吻描述理想游戏体验:“构建一款我想反复重玩的浏览器3D赛车游戏,包含车辆、三条短赛道、金银铜牌目标时间及显示最佳圈速的幽灵车,兼容手柄与键盘。”每个代理仅获一次尝试机会,无后续交互。

Codex:完成度低的空中赛车

Codex耗时3分16秒,仅输出一个HTML文件。虽然满足了赛道、目标时间及本地存储最佳圈速等基本要件,但视觉效果粗糙:赛道悬浮空中,车辆仅为带红条纹的楔形体。更致命的是,DualSense手柄无法控制启动或重置,每次重试均需鼠标介入,缺乏重玩价值。

Antigravity:功能完备但操控反人类

Antigravity耗时约12分钟,生成了包含小地图、漂移、视角切换等功能的完整文件夹。然而实际体验糟糕:方向控制反转,如同“交叉双臂开车”;且未说明基准时间设定方式,导致初始圈速远低于奖牌标准。尽管其功能丰富度远超Codex,但因核心操控缺陷,难以构成有趣的游戏体验。

Claude Code:自研引擎与自动化测试

Claude Code耗时35分46秒,表现截然不同。Sonnet 5.5未依赖Three.js等第三方库,而是从头编写3D渲染器,合成引擎与轮胎音效,并构建了精细的车辆与天空模型。

其最显著优势在于自主测试能力。在交付前,Claude Code在内置浏览器中反复运行游戏,检查幽灵车逻辑与终点屏幕。代码显示,它甚至通过注入模拟手柄并脚本化按键操作来“伪造”Dualense输入,以验证按钮映射:

// 模拟手柄按键按下与释放
const tap = async (i, ms) => {
pad.buttons[i].pressed = true;
pad.buttons[i].value = 1;
await sleep(ms || 90);
pad.buttons[i].pressed = false;
pad.buttons[i].value = 0;
await sleep(90);
};
// 测试Options键暂停功能
await tap(9);
log.push('options->' + S.state);

此外,它还基于自我观察迭代赛道设计,修正了自我交叉、弯道过急或过缓等问题。最终游戏手感极佳,转向灵敏度与摇杆幅度线性相关,DualSense在压路肩和漂移时提供细腻震动反馈。机制上,长按L1/R1可积蓄加速,但漂移会牺牲速度,迫使玩家谨慎操作。多视角切换及实时幽灵车差距显示,极大地增强了“超越自我”的核心乐趣。

结论:具备玩家本能的AI

虽然三者均将提示词转化为可运行代码,但仅Claude Code交付了一款具备高可玩性的产品。它不仅理解了显性需求,更捕捉到了.io游戏简单、易上手且令人沉迷的本质,成功模仿了开发者未明确陈述的玩家本能。