Skip to content
👾 Arcade1991CapcomVERY HARD

Street Fighter II rebuild deck

VERY HARD

The engine is a weekend of frame counters and hit IDs; the game is twelve characters of hand-drawn animation and forty people arguing over whether a move recovers in eleven frames or thirteen.

You will get a good prototype. The product is what comes after.

You can get a competent fighting engine out of an agent in a weekend, and it will still be nothing like the thing. What you are missing is not code, it is around forty people over two years deciding that a move recovers in eleven frames and not thirteen. Two failures show up every time: the model reaches for delta-time movement instead of a fixed frame counter, and it forgets hit IDs so multi-frame active windows multi-hit. Fix both on day one or you will be debugging phantom combos forever.

Difficulty
VERY HARD · 4 of 5
First playable
A project
The original
25 team-years
Released
1991 · Arcade
Genre
Fighting Game
The one-shot build prompt
Build a two-player one-on-one 2D fighting game as a single self-contained HTML file. Canvas 2D, Web Audio, no build step. Two characters is plenty; the engine is the deliverable, not the roster.

Requirements:
- A fixed 60Hz simulation driven by an integer frame counter. Everything is expressed in frames, never milliseconds. Every move declares startup, active and recovery frames in moves.json, with per-frame hitbox and hurtbox rectangles.
- Hit resolution: each attack carries a hit ID, and a target already struck by that ID cannot be struck again. Skip this and a four-frame active window registers four hits, which makes every exchange nonsense.
- Blocking is holding back while not in hitstun. Blocked attacks deal chip damage and strictly less blockstun than hitstun, which is what makes offensive pressure work at all.
- Input is a rolling 12-frame buffer of direction and button state. Recognise quarter-circle-forward by scanning that buffer with leniency rather than matching an exact sequence. Charge moves need 45 frames of held input before release.
- Cancels: a normal that has connected may be cancelled into a special during its active or recovery frames when the move data permits it.
- Best of three rounds, 99-second clock, dizzy state from accumulated stun that decays over time.
- Coloured rectangles for art are fine. Render hitboxes behind a debug flag.

Definition of done: I can land a light punch, cancel it into a quarter-circle special, and see exactly two hits on the counter.
What you lose
  • Twelve characters of hand-drawn animation, thousands of frames, every one of them a balance decision
  • Yoko Shimomura's soundtrack, which is half of why the character select screen is memorable
  • Three decades of accumulated competitive knowledge, and the community that holds it
  • The six-button panel and the stranger who put their coin on the cabinet edge
What to steal

Moves defined as startup, active and recovery frames

An attack that is a timeline rather than an event is what lets a player learn a fight instead of guessing at it, and it moves balance out of code into a file you can edit between rounds. The hit ID is not optional — without it a four-frame active window registers four hits and nothing you tune afterwards means anything.

ScopeAbout a week— build just this, not the game

Build an attack-timeline test bed as a single self-contained HTML file, Canvas 2D, no build step.

Run a fixed 60Hz simulation off an integer frame counter, never delta time. One controllable rectangle, one training dummy. Three attacks, each defined entirely in a JSON block: startup, active and recovery frame counts, a hitbox rectangle per active frame, and damage.

Two rules to get right. Every attack instance carries a unique hit ID, and a target already struck by that ID cannot be struck again by it. And hitstun on the dummy is strictly longer than blockstun, which is the only reason pressing an attacking opponent is ever a risk.

Render hurtboxes blue, hitboxes red, and a scrolling timeline strip along the bottom colouring startup, active and recovery. Add a step-one-frame key and an on-page editor for the frame numbers that applies live.

Definition of done: I widen one attack's active window from 2 frames to 8 in the editor and the hit counter still reads exactly one.
Make it different

Not a clone — Street Fighter II re-themed and cut down to something you can finish. The angle is the important reel: it is what turns a project into a weekend. 5,880 ways to land.

Shogun Turn Order

Street Fighter II, but turn-based instead of real-time, set in feudal Japan. Rendered in claymation with baked light.

Themefeudal Japan
Angleturn-based instead of real-time
Lookclaymation with baked light
Build a browser game called "Shogun Turn Order".

The pitch in one line: a fighting game in the spirit of Street Fighter II, but turn-based instead of real-time, set in feudal Japan.

WHAT THIS IS
Take the SHAPE of Street Fighter II — its core loop, and whatever makes that loop good — and rebuild it as your own game in a different world at a smaller scope. Use your own names, art and audio, which you want anyway: a reskin of somebody else's game is less interesting than a new one that works the same way.

THE ANGLE — this is the important constraint, honour it above everything else
Turn-based instead of real-time. Time only advances when the player acts. Removes every timing, netcode and animation-blending problem and turns reflexes into decisions.
This is what makes the project finishable. If a decision would push the scope back towards the original's, take the smaller option every time.

THE THEME
Feudal Japan. Duels decided before the first strike, weather and season as mood, and restraint in everything including the interface.
The theme is not a coat of paint. Let it change what the mechanics mean — a reload, a health pack and a locked door should all be things that make sense in this world and nowhere else.

LOOK
Claymation with baked light. Soft rounded geometry, a fingerprint-style normal texture, stop-motion timing at 12fps for characters while the camera stays at 60.

REQUIREMENTS
- Runs in a browser with no build step. Canvas 2D unless the angle genuinely requires 3D, in which case three.js.
- Fixed-timestep update loop with interpolated rendering, so it behaves the same at 60Hz and 144Hz.
- Every tuning constant in one CONFIG object at the top, exposed as live sliders in a debug panel. You will find the feel by dragging those, not by prompting.
- All content — levels, entities, balance numbers — in JSON or plain data files, never inline in the logic.
- Audio generated with the Web Audio API rather than asset files.
- Respect prefers-reduced-motion: keep the fades, drop the shake and the parallax.

BUILD ORDER
1. The core loop with placeholder rectangles, at the reduced scope the angle demands. No theme, no art, no audio. Make it fun as rectangles first.
2. The angle's consequences. Cutting to bots, or to turn-based, or to one level changes the design rather than just shrinking it — find out how and rewrite step 1.
3. The theme, as content and data.
4. The look, applied last as a rendering layer over a game that already works.

Start by writing a one-page plan: the core loop, what the angle removes and what that frees you to do properly, and what you are deliberately leaving out. Wait for me to approve it before writing code.
Prior art — read before you build

Half the time one of these already does what you wanted, and the other half it saves you a week of solving a problem someone documented in 1997.

Did you build it?
0Share on X

One count per game. No account — it is tied to a salted hash of your IP, which is not stored in a form anyone can reverse. Every build adds 25 team-years to the counter on the homepage.

Questions

How hard is Street Fighter II to rebuild with an AI agent?

Yes — every game is buildable at some scope. The question is how hard, and Street Fighter II is VERY HARD (4 of 5). You will get a good prototype. The product is what comes after. The engine is a weekend of frame counters and hit IDs; the game is twelve characters of hand-drawn animation and forty people arguing over whether a move recovers in eleven frames or thirteen. Reckon on a project to something you can actually play — not to something that matches the 25 team-years Capcom spent.

What makes Street Fighter II hard to rebuild?

The engine is a weekend of frame counters and hit IDs; the game is twelve characters of hand-drawn animation and forty people arguing over whether a move recovers in eleven frames or thirteen. That is why it sits at VERY HARD rather than a tier either side of it. If you want the idea without the project, the transferable part is moves defined as startup, active and recovery frames — about a week of work.

How long does it take to build a Street Fighter II clone?

Wrong question, and it is worth saying why. Nobody rebuilds Street Fighter II — the original took Capcom on the order of 25 team-years, released in 1991 on Arcade. What you can do is reach something playable and genuinely yours in about a project, and then keep going for as long as it stays interesting. Any figure that claims otherwise is measuring a prototype and calling it a game.

What do I lose by building my own Street Fighter II?

Twelve characters of hand-drawn animation, thousands of frames, every one of them a balance decision. Yoko Shimomura's soundtrack, which is half of why the character select screen is memorable. Three decades of accumulated competitive knowledge, and the community that holds it. Those are the parts a prompt will not hand you.

Which AI coding agent should I use to build it?

Any of Claude Code, Codex or Cursor will handle this prompt. Paste it as your first message, let the agent scaffold the project, then iterate on feel — the second, third and tenth prompts are where a game actually gets good. Work in an empty folder or a fresh git branch so you can throw it away cheaply.

Get the next game

One email when new games go on the list. No other reason to email you, ever.