Matt Shumer’s July 25, 2026 X demo put a simple claim in front of 1M+ views: Claude Opus 5 one-shotted this game — and everything on screen was custom code, not a single external art asset. Hours later the prompt and MIT code landed as Claude of Duty: a browser FPS on Three.js r180 / WebGL2, ~55k lines, 11 subsystems, zero models/HDRIs/image/audio files.
Skeptics immediately cried “days of iteration, never one-shot.” Shumer’s reply: the prompt and code are public. Both sides can be true. This explainx.ai guide is the builder decode — what the prompt actually asks for, what the harness proves, how far it is from real CoD, and what to steal for your own Opus 5 agent loops. Pair it with the same-week Opus 5 Rocket League clone: demos are the new launch charts.
Update — July 28, 2026: The prompt template got its first genre remix. Builder @mikeluan123 modified this exact structure — fan-out, harsh critic, blind comparison, /loop — into a Homeworld-style space RTS on Opus 5, publishing a $632.65 token-cost breakdown alongside the clip and an earlier Kimi K3 attempt for comparison. Full breakdown →
Update — July 29, 2026: Collected nine more public Opus 5 game prompts — including a procedural desert explorer built from a full implementation brief instead of a one-paragraph seed. Top 10 Claude Opus 5 game prompts →
TL;DR — What People Are Asking
| Question | Answer |
|---|---|
| Repo? | mshumer/Claude-of-Duty (MIT) |
| Engine? | Three.js r180 + WebGL2 only |
| Art assets? | None — all procedural |
| Lines / systems? | ~55k / 11 subsystems |
| “One-shot”? | One seed prompt + agent fan-out + /loop |
| Matches CoD? | No — critics ~5.05/10 peak |
| Killer lesson? | Harness beats vibes (imagediff, profile) |
| Agent process? | Sequential owners beat parallel fan-out |
| Run? | npm i && npm run dev → :5173 |
| Prompt file? | prompt.md in-repo |
The Entire Prompt (Yes, Really)
From the repo’s prompt.md — this is the published seed:
I want you to build a first-person shooter at the level of the most recent Call of Duty games. It should be utterly perfect, visually beautiful, with every single thing done at AAA quality—from textures to physics to anything you could think of.
Fan out sub-agents and have sub-agents tackle each one individually so that the game is utterly perfect. You should /loop on each item and have a separate sub-agent check it visually to ensure it looks triple A. That separate sub-agent should be a really harsh critic, and if it doesn't look triple A, it should keep going.
Don't stop until each sub-agent is utterly wowed with the quality when compared with the actual Call of Duty game. It should literally compare them side by side blind and say which one looks better. Do this in ThreeJS. /loop until it's utterly perfect. Fan out sub-agents and ultracode.
That is not “write me a cube shooter.” It is an orchestration brief: fan-out, harsh visual critics, blind A/B vs CoD, /loop until wow. Marketing “one-shot” = one human paste. Engineering reality = multi-agent search against a visual bar the README later admits was never fully cleared.
If you are writing agent prompts this week, note the pattern: impossible quality bar + explicit critic role + stop condition tied to comparison, not “looks fine to me.” That is closer to specs-not-tricks than to vibecoding folklore.
What Shipped — 11 Subsystems, One Dependency
| Subsystem | Job |
|---|---|
render | HDR, CSM shadows, GTAO, TAA, motion blur, Karis bloom, EV100 metering, AgX |
materials | GPU texture forge — 19 procedural surfaces, POM, triplanar, edge wear |
sky | Scattering, TOD, PMREM, volumetric fog / shafts |
world | ~120×120 m market street, enterable interiors, instanced props |
physics | From scratch — BVH, swept capsule, CCD, PBD ragdolls, penetration |
player | Move SM, slide/mantle/lean, camera feel |
weapons | Procedural guns, ADS, recoil, ballistics |
fx | Particles, decals, tracers, muzzle, explosions |
ai | Skinned soldiers, navmesh, cover, ragdoll death |
ui | DOM HUD — crosshair, minimap, killfeed |
audio | Web Audio synthesis only — HRTF, occlusion, reverb |
ARCHITECTURE.md is the contract agents worked against: directory ownership, event vocabulary, shared surface types. That file is the real “skill” — not the X clip. Same lesson as thin prompts / thick artifacts: the durable artifact is the interface map.
Procedural everything also puts this next to img2threejs and Bunpav procedural audio — different products, same bet that code is the asset pipeline.
The Interesting Part Is the Harness
Shumer’s README says it out loud: the tooling may matter more than the game.
| Tool | Role |
|---|---|
capture.mjs | One named GPU headless shot |
shotset.mjs | Fast 11-shot review (leaky state) |
baseline.mjs | Isolated page per shot — bit-identical |
imagediff.mjs | Per-pixel gate; nonzero exit on any change |
profile.mjs | Real DPR gameplay; hitch attribution via WebGL program counts |
playtest.mjs | Scripted move/fire smoke |
Two measurement bugs that almost lied to them
1. Median FPS theater. Static-camera benches said ~94 fps while real Retina gameplay (3.34 MP internal) ran 12–17 fps with 728–1236 ms stalls from 34+ lazy WebGL shader compiles mid-frame. profile.mjs reporting p50/p95/p99 + program counts is what made the hitch visible.
2. Non-reproducible screenshots. Reusing one page across 11 shots leaked particles, decals, exposure — 10/11 shots differed across “identical” runs. baseline.mjs fresh pages made imagediff a real gate.
After optimization (constrained to zero visual change, proven by imagediff):
| Metric | Before | After |
|---|---|---|
| fps p50 | 12–17 | 28–30 |
| fps p99 | 4–9 | 14–17 |
| worst frame | 728–1236 ms | 66–82 ms |
| shader compiles in play | 34–35 | 0 |
| boot | ~9–12 s | 3.7–4.6 s |
Shader pre-warm killed stalls. Making pre-warm pixel-neutral required fixing clocks that animated off performance.now() instead of the engine clock — boot-time changes were shifting “identical” frames. That is elite harness thinking, not demo fluff.
Builder takeaway for Claude Code / agent fleets: if you cannot diff pixels and attribute hitches, you are optimizing vibes. See also agent harness guide and Claude Code model vs effort.
Honest Assessment — It Is Not CoD
The README refuses cope:
The goal was to match a modern Call of Duty. It does not.
Critic scores: 3.59 → 4.14 → 4.05 → 5.05 / 10. Two shots “CLOSE”; rest “AMATEUR”. Blind A/B: every critic every round picked real CoD.
Called-out gaps: blocky hands, procedural-noise materials up close, mannequin enemies, approx GI, 28–30 fps at Retina after art passes nearly doubled triangle cost (5.9M → 11.3M).
Unfixed root cause: viewmodel light rig ~20× the irradiance of the world — black material in view scene still renders bright from F0; weapon albedos cheated to ~⅓ physical, capping material separation on the most-looked-at object.
That honesty is why this demo is useful. Compare to launch-week Opus 5 charts — demos sell the ceiling; READMEs that admit the floor teach you how to run agents without self-delusion.
Process Note — Parallel Fan-Out Lost
Three rounds of six agents each owning a directory moved score only +0.46 and left frame-ruining defects higher (60 → 47 → 66) because tonemap / sky / indirect light are one coupled system — isolated agents broke each other’s assumptions.
One sequential pass with a single owner per coupled concern: +1.00 score, defects 66 → 26.
Best single insight: critics kept saying the weapon was “untextured.” It was not — it was specular-dominated (diffuse L=26 vs shipped L=67). Prior rounds crushed albedos to fight “too bright,” which killed diffuse and made the complaint worse. The winning agent contradicted the brief and raised diffuse instead.
That is the map is not the territory lesson in game form: critic language is a lossy sensor; measure the actual L values.
“One-Shot” — How to Talk About It Without Lying
| Phrase | Accurate meaning here |
|---|---|
| One-shot | One human seed prompt / session intent |
| Not one-shot | One forward pass, no loops, no critics, no harness |
| Opus 5 role | Frontier model powering the agent fleet (per Shumer) |
| What shipped | Orchestrated multi-subsystem codebase + eval tools |
X commenters who assumed hidden day-long manual coding still owe the public prompt.md a read — but you also should not claim “55k LOC in one completion.” Precision keeps demos credible next to Rocket League Opus play and Shumer’s earlier voxel Manhattan prompting work.
Run It Locally
git clone https://github.com/mshumer/Claude-of-Duty.git
cd Claude-of-Duty
npm install
npm run dev
Open http://127.0.0.1:5173, click canvas to lock pointer. Controls: WASD, mouse, LMB fire, RMB ADS, R reload, Shift sprint, Ctrl crouch, Space jump, Q/E lean, Esc release.
Expect Apple-silicon Retina numbers in the mid-20s fps on ultra unless you lower preset — the README already set expectations.
What Builders Should Steal This Week
- Publish the prompt with the demo — kills half the bad-faith replies.
- ARCHITECTURE.md as agent contract before fan-out.
- Pixel gates for visual work; don’t trust “looks better to me.”
- Profile real gameplay DPR, not static benches.
- Sequential ownership on coupled systems (lighting, tone, sky).
- Let agents contradict the brief when measurements disagree with critic slang.
- Write the honest assessment into the README — it becomes the citation others trust.
Related on explainx.ai
- Claude Opus 5 games viral wave (Aug 2026)
- Opus 5 remade Pokémon in 3D — and the starter scene is unsettling
- Top 10 Claude Opus 5 game prompts — full text, 10 builders
- Opus 5's procedural desert explorer, decoded — no assets, GPU harness
- Opus 5 built a Homeworld-style space RTS — same prompt, new genre, $632.65
- Top 10 Claude Opus 5 use cases
- Claude Opus 5 launch — benches, charts, Fast mode
- Opus 5 Rocket League clone — then Opus played it
- Opus 5 for developers — migrate, Fast mode, effort
- img2threejs — procedural photo → Three.js
- Bunpav procedural 3D game audio
- Matt Shumer — GPT-5.6 Sol voxel Manhattan prompting
- What is an agent harness?
- Thin prompts, thick artifacts, thin skills
- Ethan Mollick — specs not tricks
Primary sources: GitHub — mshumer/Claude-of-Duty · in-repo README.md / prompt.md / ARCHITECTURE.md · Matt Shumer’s July 25–26 X demo and follow-ups.
Stars, fps numbers, and critic scores are as published in the repo README around July 26, 2026. Re-clone before citing — demos iterate fast.
