Asteroids rebuild deck
EASY
The only thing to get right is that there is no friction, and models add damping by reflex, so write "no damping, ever" and the rest falls out in an afternoon.
You will get essentially the whole thing.
The purest physics-feel game on this list and a genuinely great agent test, because the correct answer is to remove friction and most models add it by reflex. Say "no damping, ever" in the prompt. Everything else falls out in an afternoon.
- Difficulty
- EASY · 1 of 5
- First playable
- An evening
- The original
- 1 team-years
- Released
- 1979 · Arcade
- Genre
- Shooter
Build a vector-graphics space shooter in the Asteroids mould. Single HTML file, Canvas 2D, everything drawn as stroked polygons — no fills, no sprites. Requirements: - Newtonian ship: thrust applies acceleration along the facing vector, there is NO friction, and rotation is independent of velocity. Drifting is the game. Add a hyperspace key that teleports randomly with a 15% chance of self-destruction. - Screen wrapping for everything including bullets and the collision checks — an asteroid straddling the edge must be drawn twice and collide on both sides. - Asteroids in three sizes; shooting a large one splits it into two mediums with inherited velocity plus a random spread, mediums into smalls, smalls vanish. Score 20/50/100. - Two saucers: a large one that fires randomly and a small one that leads its shots at the player and gets more accurate as your score climbs. - Ships, asteroids and saucers drawn as line-loop polygons with slight per-instance vertex jitter so no two rocks look alike. Additive glow via shadowBlur to fake the vector monitor. - Explosions are line fragments that fly apart and fade, never particle puffs. - Web Audio: the two-tone heartbeat that speeds up as the wave thins out, thrust rumble, and the saucer siren. Definition of done: I die from my own momentum, not from bad aim.
- Vector monitor glow, which no LCD reproduces honestly
- Atari trademarks
- The specific analogue drift of the original thrust curve
Intercept-lead aiming with an error budget
An enemy that shoots where you are feels broken; one that shoots where you will be feels alive, and a single quadratic gets you there. The second half matters more — a deliberate, dialable aim error, because a solver that never misses is not a difficulty setting, it is a wall.
ScopeAn evening— build just this, not the game
Build a targeting-solver toy in a single self-contained HTML file. Canvas 2D, no build step, no dependencies. - A target drifts across the screen at constant velocity with occasional turns. A fixed turret fires projectiles at a constant speed. - The turret must never aim at the target's current position. It solves for intercept: find the time t at which the distance to the target's extrapolated position equals projectile speed times t — the quadratic in t — take the smallest positive root and fire at that point. Handle no-solution cases (target outrunning the projectile) with a documented pure-pursuit fallback rather than a NaN. - A skill slider from 0 to 1 interpolates two error terms: random angular scatter, and a lag applied to the target position the solver is given. At 1 it fires the exact solution. - Draw the computed intercept point, the aim ray and the error cone. - Print the hit rate over the last 20 shots. Definition of done: at skill 1 the turret hits a crossing target almost every shot, and at skill 0.3 it misses the way a person misses rather than the way a bug misses.
Not a clone — Asteroids 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.
Verdant Same Sofa
Asteroids, but local split-screen instead of online, set in a solarpunk city. Rendered in risograph two-colour print.
Build a browser game called "Verdant Same Sofa". The pitch in one line: a shooter in the spirit of Asteroids, but local split-screen instead of online, set in a solarpunk city. WHAT THIS IS Take the SHAPE of Asteroids — 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 Local split-screen instead of online. Two players, one keyboard or two gamepads, one screen. All the multiplayer fun, none of the distributed systems. 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 solarpunk city. Abundance rather than scarcity, and conflict that comes from competing goods rather than from enemies. 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 Risograph two-colour print. Two spot inks with visible misregistration, halftone dot shading, and paper texture showing through every fill. 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.
- dmcinnes/HTML5-Asteroids — a faithful canvas port
- Matter.js — if you want real physics instead of hand-rolled
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 1 team-years to the counter on the homepage.
Then try these
Questions
How hard is Asteroids to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Asteroids is EASY (1 of 5). You will get essentially the whole thing. The only thing to get right is that there is no friction, and models add damping by reflex, so write "no damping, ever" and the rest falls out in an afternoon. Reckon on an evening to something you can actually play — not to something that matches the 1 team-years Atari spent.
What makes Asteroids hard to rebuild?
The only thing to get right is that there is no friction, and models add damping by reflex, so write "no damping, ever" and the rest falls out in an afternoon. That is why it sits at EASY rather than a tier either side of it. If you want the idea without the project, the transferable part is intercept-lead aiming with an error budget — an evening of work.
How long does it take to build a Asteroids clone?
Wrong question, and it is worth saying why. Nobody rebuilds Asteroids — the original took Atari on the order of 1 team-years, released in 1979 on Arcade. What you can do is reach something playable and genuinely yours in about an evening, 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 Asteroids?
Vector monitor glow, which no LCD reproduces honestly. Atari trademarks. The specific analogue drift of the original thrust curve. 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.