Clash Royale rebuild deck
BRUTAL
Two phones agreeing on where a knight is standing is the entire product, and behind that sits a balance team that has been operating the game as a live service since March 2016.
The hard part is not game design at all.
Insist on the fixed-tick simulation in the first sentence of your prompt, because retrofitting determinism onto a requestAnimationFrame loop means rewriting everything that touches a position. Agents handle the flow field and the card data fine; where they fail you is re-targeting, which they implement as nearest-enemy-per-frame and which turns every match into a shapeless scrum. Balance is not something you tune once, it is something you operate, and Supercell has been operating it since the March 2016 global launch with a team you do not have.
- Difficulty
- BRUTAL · 5 of 5
- First playable
- A project
- The original
- 150 team-years
- Released
- 2016 · Mobile
- Genre
- Card Battler
Build a real-time lane battler for the browser: single self-contained HTML file, Canvas 2D, portrait, versus a scripted opponent. No server. Requirements: - The simulation runs on a fixed 20Hz tick with integer or fixed-point positions, entirely separate from rendering, which interpolates between the last two ticks. Do this first, before anything else. Replays, a rematch button, and any future multiplayer are impossible to retrofit onto a variable timestep, and everybody learns that the expensive way. - An 18x32 tile arena, two lanes joined by two bridges, three towers per side. Units cross only at bridges. Path with a precomputed flow field per lane rather than running A* per unit. - Targeting rules carry the design. Each unit has a preference (buildings only, ground only, or anything) plus an aggro radius, and re-targets ONLY when its current target dies or leaves that radius. That single rule is what produces lane commitment and lets a player pull an attacker across the map. - Resource regenerates at one per 2.8 seconds, capped at ten, doubling for the final 60 seconds of a three-minute match. - Cards in JSON: cost, HP, damage, hit speed, move speed, range, target preference, deploy count. Ship twelve. - Opponent AI reacts to the player's spend using a counter table in JSON, with a deliberate one to two second delay so it feels human. Definition of done: replaying an identical input sequence twice produces a bit-identical match result.
- Authoritative low-latency netcode with reconnection, which is the actual product
- A decade of balance patches informed by hundreds of millions of real matches
- Matchmaking, the trophy ladder, clans, and a funded esports league
- Card art and tower personality, which is why anyone tolerates losing
Deterministic lockstep with a fixed input delay
Sending inputs rather than state is what makes real-time multiplayer affordable, and it costs nothing at runtime and everything in discipline: one Math.random, one float in simulation state, and two machines quietly play different matches. Build it once with a state hash comparing every second and you will recognise the constraint everywhere afterwards, including in replays and rematches on a single machine.
ScopeAbout a week— build just this, not the game
Build a deterministic lockstep demo. Single self-contained HTML file, Canvas 2D, no server, no build step. - Two independent simulation instances in one page, ideally in separate Web Workers, sharing no state, plus a fake network layer with sliders for latency, jitter and packet loss. - The simulation is a pure function of previous state plus every player's inputs for that tick, and advances only once all inputs for that tick have arrived. Local input is scheduled for tick current+delay, so a command executes on the same tick everywhere. - Ban the sources of divergence outright: no Math.random, no Date.now, no wall-clock deltas, no iteration over unordered maps, no floats in simulation state. Integers or fixed point, and one seeded integer PRNG advanced only inside the tick. - Every sixty ticks each instance hashes its full state; the layer compares and halts loudly on the first mismatch, naming the tick. - Two views side by side, an input delay slider, a desync banner. Definition of done: at 250ms latency with 5 percent loss both views stay hash-identical for ten thousand ticks, and adding one Date.now() call inside the tick produces a named desync within seconds.
Not a clone — Clash Royale 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. 24,360 ways to land.
Sidebar Hands Off
Clash Royale, but an auto-battler — you set up, it plays itself, set in a courtroom drama. Rendered in clean product UI 3D.
Build a browser game called "Sidebar Hands Off". The pitch in one line: a card battler in the spirit of Clash Royale, but an auto-battler — you set up, it plays itself, set in a courtroom drama. WHAT THIS IS Take the SHAPE of Clash Royale — 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 An auto-battler — you set up, it plays itself. The player only makes decisions between rounds. Combat resolves deterministically from board state and seed, so a replay is exact. 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 A courtroom drama. Objections, exhibits and a verdict. Rhetoric is the combat system; one bad question sinks the case. 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 Clean product UI 3D. Soft studio lighting, muted brand palette, UI chrome that looks shippable, and zero grit — intentional polish. 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.
- Excalibur — TypeScript engine with a fixed-timestep loop out of the box
- Kenney — tower defence and card art packs for placeholder units
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.
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 150 team-years to the counter on the homepage.
Then try these
Questions
How hard is Clash Royale to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Clash Royale is BRUTAL (5 of 5). The hard part is not game design at all. Two phones agreeing on where a knight is standing is the entire product, and behind that sits a balance team that has been operating the game as a live service since March 2016. Reckon on a project to something you can actually play — not to something that matches the 150 team-years Supercell spent.
What makes Clash Royale hard to rebuild?
Two phones agreeing on where a knight is standing is the entire product, and behind that sits a balance team that has been operating the game as a live service since March 2016. That is why it sits at BRUTAL rather than a tier either side of it. If you want the idea without the project, the transferable part is deterministic lockstep with a fixed input delay — about a week of work.
How long does it take to build a Clash Royale clone?
Wrong question, and it is worth saying why. Nobody rebuilds Clash Royale — the original took Supercell on the order of 150 team-years, released in 2016 on Mobile. 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 Clash Royale?
Authoritative low-latency netcode with reconnection, which is the actual product. A decade of balance patches informed by hundreds of millions of real matches. Matchmaking, the trophy ladder, clans, and a funded esports league. 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.
One email when new games go on the list. No other reason to email you, ever.