Agents · 8 August 2026Experiment

One Shot, Six Turns: The Game DeepSeek Flash Did Not Quite Build Alone

A browser stealth game credited to a single prompt. Its own repository documents a six-turn loop, a checklist and a headless test — and the test is the part worth stealing.

Asfandyar Malik
Long-form resourceEvidence-backed researchWatch the reference video

"One shotted with DeepSeek Flash."
The repo says six turns.

A browser stealth game went up on 7 August with a caption that has been quoted everywhere since: one shotted btw with deepseek flash. 3d mmorpg with audio and sfx in threejs. its over.

The author linked the repository himself. It is public, MIT, and it tells a more useful story than the caption does — because it documents exactly how it was built.

Post claiming a 3D MMORPG was one-shotted with DeepSeek Flash in Three.js
@LeeLeepenkman — the claim that started it. 7 August 2026.

It is not a prompt. It is a loop with a stopping condition.

The README documents its own usage, and the documented command is this:

./scripts/mjj.sh exec   --goal "Ship the top unchecked ROADMAP.md item; stop when npm run check passes"   --loop-turns 6

Six turns. A checklist to pop the next item from. A termination condition that is a command, not a judgement. That is a different thing from one prompt, and it is a better thing — because it is the part you can copy.

It is not an MMORPG.

No server, no netcode, no concurrent players. Progress saves to localStorage and "multiplayer" is split-screen on one keyboard — P1 on WASD, P2 on the arrows.

It is a very good single-player stealth game with a local versus mode. That is a category correction, not a takedown, and it is the least interesting thing in the story. Said once, moving on.

Spanish-plaza parkour hide-and-seek.

  • Countdown to climb and hide in olive bushes; a bull then searches for you.
  • Noise draws investigation. A coverage ramp finds you eventually regardless — you cannot simply sit still and win.
  • 100 levels: 4 hand-authored, 96 seeded. Objectives rotate between survive, fetch a relic, and escape by car.
  • Vite and Three.js, skeletal motion blended through a layered tree, wall-aware sight with a detection meter that breaks behind cover.

The gate is the invention, not the model.

The loop stops when npm run check passes. Here is what that is, from the repo's own package.json:

"check": "npm run smoke && npm run sim && npm run build"

Smoke, then a headless simulation, then a production build. That middle one is the whole thing.

A headless sim is an oracle: it lets the loop decide "worse" without a human looking at it. An agent that can only check whether code compiles will happily converge on something that runs and is wrong. An agent that can run the game a thousand times and count the failures cannot.

ROADMAP.md for what is next, AGENTS.md for how this codebase wants to be touched, npm run check for whether it worked. That is the recipe, and none of it is model-specific.

The cache discount is why this pattern shows up here.

A six-turn loop re-sends a nearly unchanged codebase five times. What that costs depends entirely on the cache-hit price, and DeepSeek's first-party numbers are unusual:

  • 1M input tokens, cache miss — $0.14
  • 1M input tokens, cache hit — $0.0028
  • 1M output tokens — $0.28

That is a 98% discount on repeated context, against roughly 90% as the industry norm. At 90% off you pay a tenth, five times over. At 98% you pay a fiftieth. Iterating stops being the expensive way to work.

The model choice follows the pricing sheet, not the other way round.

Terminal-Bench 2.1 scores with prices: GPT-5.6 Sol 85.8 at $5/$30, DeepSeek V4-Flash 82.7 at $0.14/$0.28, Fable 5 80.5 at $10/$50, Sonnet 5 74.5 at $3/$15
Terminal-Bench 2.1, July 2026. Three points behind the leader, at about a thirtieth of the input price.

The model part is exactly true.

The project default is not a guess. It is in .mjj/config.toml:

[agent]
provider = "deepseek"
model = "deepseek-v4-flash"

So a $0.14 model really did write a Three.js game with blended skeletal animation and a working stealth AI. That part of the caption needs no defending — and on the wider board, Flash sits at the left edge of the cost axis while everything at its score level sits far to the right.

Artificial Analysis Intelligence Index v4.1, all 128 models plotted against cost per task on a log scale, with DeepSeek V4 Flash highlighted at the cheap end
All 128 models, intelligence against cost per task. The shaded region is everything more expensive at the same score.

A rebuild, with its own gate.

Making the argument that the oracle matters more than the model, and then shipping an ungated rebuild, would be poor form. So the rebuild ships with one.

experiments/plaza-seeker.html keeps the four mechanics that make the original a game — wall-occluded view cone, a draining detection meter, noise emitted by movement speed, a coverage ramp — and inverts the role. You are the seeker. Three hiders break your sightline. Ninety seconds.

node experiments/check.js     # exit 0 = pass

18 of 18 geometry checks pass, 6000 frames with no exception, detection fires on a clear line and stays flat behind a wall.

It has already paid for itself. The painted view cone shipped with its rotation sign flipped — invisible at yaw 0, wrong at every other angle. The gate caught it. A glance would not have, and that is the entire argument in miniature.

What it cannot show. It is not evidence about DeepSeek. It was not built by the same loop, the same model, or the same prompt, and this resource cites no model claim from it.

Copy the loop, not the caption.

  • Want an agent that converges? Write the oracle first. A checklist plus a command that returns non-zero beats any amount of prompt engineering.
  • Cannot write a headless test for your project? Then a loop will not converge on it, whichever model you point at it. Fix that before adding turns.
  • Iterating a lot over one codebase? The cache-hit price matters more than the headline price. Check the discount, not the sticker.
  • Judging a build from a screenshot? Open the repo. The README here was more informative than every write-up of it.

One commit proves nothing, in either direction.

The repository has a single commit. A squash is equally consistent with one prompt and with sixty turns, so it is evidence of neither. Anyone using it to prove the claim, or to debunk it, is reading a number that does not say what they want it to.

The interesting artefact was never the commit count. It was a ROADMAP, an AGENTS file, and a check command — sitting in the open, ready to be copied.

The rebuild lives in experiments/plaza-seeker.html. One file, Three.js from a CDN, no install and no build step — open it in a browser and it runs.

$ open content/06-Game-Deepseek/experiments/plaza-seeker.html

What it is

The same stealth core as the game this resource is about, with the role reversed. Instead of hiding from a seeker, you are the seeker: three hiders scatter across a plaza during a countdown, then break your line of sight and go quiet while a ninety-second timer runs down.

The systems carried over are the ones that make the original a game rather than a demo:

  • Wall-aware sight. A hider is visible only inside a view cone, within range, and with no wall segment intersecting the ray. Occlusion is tested per frame against the actual level geometry.
  • A detection meter, not a boolean. Holding sight fills a per-hider meter; losing sight drains it. Spotting costs time, so a glance is not a capture.
  • Noise as a second channel. Movement speed emits noise, hiders hear it, and a hider that hears you relocates. Sprinting finds hiders faster and also tells them exactly where you are.
  • A coverage ramp. Your sight range widens as the clock runs out, so a stalemate resolves rather than expiring — the mechanism the original uses to stop hiding in one perfect corner from being a winning strategy.

Why inverting the role is the useful test

Playing the hider tests whether the AI is fun to evade, which is mostly a tuning question. Playing the seeker tests whether the detection model is coherent from the inside — whether "it saw me through a wall" is a bug you can feel. A stealth system that only works from one side is a set of numbers, not a system.

What it cannot show

  • It is not evidence about DeepSeek, or about any model. It is one build of one design, and the resource cites no model claim from it.
  • It is not a reimplementation of the original. It shares a genre and four mechanics; the original's animation blend tree, campaign generator and gamepad support are absent by choice.
  • One build is an anecdote. Turning it into evidence means the same prompt at several settings, recorded as model / setting / tokens / cost / does it run / does it behave — and that has not been done.

It ships with its own gate, because that is the argument

The whole point of the resource is that the oracle matters more than the model, so the rebuild carries one:

$ node experiments/check.js      # exit 0 = pass

It stubs Three.js and the DOM, pulls the game's script straight out of the HTML so there is only ever one copy of the source, runs a hundred simulated seconds with no screen, and asserts the things that have to be exact: no exception on the hot path, tall walls occlude and waist-high crates do not, the detection meter fills on a clear line and stays flat behind a wall, and the hiders actually leave their spawn. Eighteen of eighteen geometry checks pass at the time of writing — and the gate has already earned its place. The painted view cone shipped with its rotation sign flipped, which looks perfectly correct at the opening angle and is wrong at every other one. A glance would not have found that. The check compares the cone against the facing vector at seven angles instead of one, and did.

It says nothing at all about whether the game is any good. That still needs a person watching it, which is the honest limit on this entire pattern and worth naming while the check output is on screen.

Result

Not filled in. The rebuild runs, plays, and passes its own gate; no controlled comparison has been performed, so nothing from it is cited as a finding anywhere in this resource.

Everything above, traceable to a primary source.

Keep exploring

Browse more long-form resources for building and working with AI.