Claude Opus 5 用简单提示词一口气生成 FPS 游戏,引发仿效
要点速览
- •Shumer 在模型发布两天后就贴出了一款可运行的射击游戏,并称其没有使用任何外部素材。
- •提示词要求模型对标最新的 Call of Duty,将任务拆分给子智能体,并通过盲测反复对比真实画面。
- •Shumer 表示成品基于 Three.js 和 WebGL2 运行,代码约 55,000 行,分布在 11 个子系统中。
- •他公开的评审日志显示分数从 3.59/10 上升到略高于 5,但仍落后于真实游戏。
- •后来其他人用相同或相似的提示词进行了复现,但后续项目都没有采用 Shumer 那样的盲测。

Claude Opus 5 用一个极其简单的提示词“一次性完成”了一款第一人称射击游戏,结果之好令人难以置信。
但也有人重新运行了这个提示词,并确认结果确实成立。
Claude 辅助游戏的制作者 Matt Shumer 将这种方法称为 Gauntlet Loop:给智能体一个真实的目标门槛,把工作拆分给新的评审者,并且绝不让构建者给自己的作业打分。
就在 Claude Opus 5 发布两天后,AI 投资人、前 HyperWrite CEO Matt Shumer 发布了一段视频,展示这款模型独立构建出的、可完整游玩的第一人称射击游戏。
“Claude Opus 5 one-shotted this game,” 他写道,并补充说,构建中没有加入任何外部素材。
你也许会以为,如此高质量的输出需要一段很长、很细致、很谨慎的提示词,才能引导 AI 模型完成一款精致第一人称射击游戏的复杂构建。
再想想。
Claude Opus 5 one-shotted this game. EVERYTHING you see in this demo is custom code... not a single external asset was used. AI games are going to be amazing. (sound on) pic.twitter.com/zc7C61kgv1 — Matt Shumer (@mattshumer_) July 25, 2026
Claude Opus 5 one-shotted this game.
EVERYTHING you see in this demo is custom code... not a single external asset was used.
AI games are going to be amazing. (sound on) pic.twitter.com/zc7C61kgv1
— Matt Shumer (@mattshumer_) July 25, 2026
这个项目背后的提示词只有三段简短内容,并已完整发布在 GitHub 上。它要求 Opus 5 构建一款达到最新 Call of Duty 游戏水平的射击游戏,将子智能体——每个子智能体都有自己独立的记忆和窄范围任务的工作单元——分散开来,逐个处理不同部分,并对每个部分持续循环,配合另一个严格的评审,直到其在与真实 Call of Duty 画面的盲对比中站得住脚。按提示词要求,最终结果应当“utterly perfect”。
这一做法颠覆了 vibe-coding 热潮中大量提示工程建议。常见建议是用标准而不是形容词来规定要求:说明“好”意味着什么,而不是只说要“好”。
Shumer 的版本几乎正相反,它要求自己的子智能体“utterly wowed”,而真正的定义则交给了 Opus 5 为自己构建的评审。
这几乎就是全部简报内容。Shumer 后来写道,他从未指定渲染器,也没有列出游戏系统,更没有定义 “AAA quality” 应该包含什么。他开始把这种方法称为 Gauntlet Loop:给智能体一个真实、可检验的标准,而不是模糊指令,让它把任务拆成小块,再把每一块交给一个看不到构建者推理过程的评审。
有两个 Claude Code 功能支撑了这个循环。Subagents 会在隔离的上下文窗口中启动,拥有自己的指令和工具访问权限,因此评审武器模型的智能体不会继承构建者关于“为什么它看起来是这样”的借口。Ultracode 则是一个 Claude Code 设置,它会把模型推到最高推理强度,并允许它自行编排工作计划,将任务同时分散给最多 16 个智能体,单次运行上限为 1,000。
Anthropic 内置的 /loop 技能,专为反复的修复-测试-调整循环设计,是让这次运行不会在游戏“看起来还不错”时就停止的关键。Shumer 没有指定循环次数。他让评审不断指出新的缺口,并让构建者连续追赶数小时,直到他自己关闭会话。
最终成品运行在 Three.js 和原生 WebGL2 上,代码约 55,000 行,分布在 11 个子系统中。每个纹理、网格、动画和声音都会在加载时于浏览器内生成——没有下载模型、HDRI、图片文件或音频文件。Shumer 公布的评审日志显示,分数从 10 分制的 3.59 一路升至略高于 5,但每一轮仍落后于真实游戏。
这种透明度也让其他人更容易测试结果,这在一个精修演示常常隐藏大量人工调校的编码世界里很重要。质疑者原本认为其中包含数小时的隐藏手工编码,因此 Shumer 公布了完整提示词和代码库。也正是在那之后,仿效者开始出现。
同样的方法,三个不同的构建者
前对冲基金经理、播客主持人 James Altucher 运行了相同的提示词,并表示自己花了“略多于十小时”的时间,以及大约 1.3 million tokens 才完成。他的作品 Operation Blackout 可以在浏览器中免费运行。
Prompt Silo 的开发者则把同样的请求交给了 OpenAI 的竞争旗舰模型,并发帖写道“Sol 5.6 Ultra with same prompt”——其中 Sol 是 OpenAI 于 July 9 正式开放的三模型 GPT-5.6 家族中的最高档版本,另外还有更便宜的 Terra 和 Luna 版本。
Sol 5.6 Ultra with same prompt. pic.twitter.com/1xwBQw5nRh — Rich · Atom Tan Studio (@atomtanstudio) July 26, 2026
Sol 5.6 Ultra with same prompt. pic.twitter.com/1xwBQw5nRh
— Rich · Atom Tan Studio (@atomtanstudio) July 26, 2026
开发者 Leon Lin 选择了相反的方法,采用了常规的详细提示词。与其复制 Shumer 的短版本,他更像是在“reverse engineer a prompt for this game”,最终写出了一份长达约 20 个部分的文档,内容从布娃娃物理到级联阴影贴图都作了说明。他把这份文档输入 Cursor,使用的是高强度模式下的普通 Opus 5,没有 subagents,也没有 ultracode,结果——一款名为 Dust Corridor 的街区市场射击游戏——同样可以在浏览器中运行,而且画面也很出色。
这些后续作品都没有经过 Shumer 在自己项目上执行的盲测。他的评审日志仍然显示,真实的 Call of Duty 在他记录的每一轮中都获胜——这正是 Altucher 和 Atom Tan Studio 通过他那份精确的三段式提示词追逐的目标,也是 Leon Lin 通过自己那份约 20 个部分的提示词追逐的目标。
这到底有多少是新的?
像 Claude Code 这样的代理式编码工具写软件的方式,就像受监督的初级工程师:它们读取文件、运行代码、查看生成的截图,并把任务拆分给子智能体和评审,由后者根据既定目标检查结果。这个循环确实存在,而 Shumer 的 Gauntlet Loop 也是组织这种循环的一种真实方式。
但仅凭这一点,并不能证明模型是凭想象设计出了一款游戏,而不是重新组合了它早已吸收的代码模式。
Three.js 本身就提供了官方示例形式的 pointer-lock 摄像机控制,而这一基础模式——鼠标视角、WASD 移动、用于开火的射线检测——十多年来一直在 GitHub、gist 和开发者论坛上被分支、复制和教程化。一个在公共仓库上训练的编码模型,在读到 Shumer 提示词之前,几乎肯定已经见过数百甚至数千个近乎相同的射击游戏。
这并不意味着 Claude of Duty 是假的,但这会让“built from scratch”成为一个更难完全采信的说法,因此应当对这些结果保留一些谨慎。
研究代码生成模型的学者把更广泛的问题称为 data contamination:当模型在某个任务上表现很好,主要是因为训练数据里已经存在几乎相同的例子,而不是它推理出了新的东西。
这些第一人称射击游戏构建都没有公布针对这类污染的检查。Shumer 自己的仓库确实包含 Claude 自身的创造性,如果这样称呼是合理的话。这也是为什么应把“one-shotted a AAA game”理解为一个强大的智能体在编程界最文档化的类型之一中工作,而不是证明某个 AI 在完全没有前作可借鉴的情况下设计出了一款射击游戏。