Jetpack Joyride rebuild deck
HARD
Thrust as acceleration against constant gravity with a clamped velocity is three lines of code, and finding the ratio between those three numbers is a week with a slider panel.
You will get the loop working. Then the real work starts.
The control is three lines of code and the feel is a week. Build yourself a scruffy slider panel for thrust, gravity and the velocity clamp, because you will change those numbers forty times and reading them out of a JSON file is not remotely the same as feeling them under your thumb. Agents default to random hazard placement, which produces a runner that is unfair roughly one screen in ten and unwinnable one in fifty; authored patterns in data are the only fix.
- Difficulty
- HARD · 3 of 5
- First playable
- A weekend
- The original
- 6 team-years
- Released
- 2011 · Mobile
- Genre
- Endless Runner
Build a hold-to-fly endless side-scrolling runner as a single self-contained HTML file. Canvas 2D, Web Audio, no build step. Requirements: - The character sits at the left third of the screen while the world scrolls past. Hold anywhere to fire the jetpack. - Thrust is an ACCELERATION applied every frame the button is held. It is never an impulse and never a velocity assignment. Gravity always applies. Clamp vertical velocity to roughly plus or minus 620 px/s. Start at thrust 1900 px/s squared against gravity 2200 px/s squared, then tune the ratio until a full hold crosses the screen vertically in about 0.9 seconds. That ratio plus the clamp is most of how this game feels. - Floor and ceiling are survivable. Touching either costs you height and position, nothing more. - Hazards come from a JSON pattern file, never random placement: laser banks that telegraph with a thin red line for 700ms before firing, angled zapper bars, and homing missiles announced by an offscreen warning arrow one second ahead. - Coins are authored shapes in the same data file, arcs and zigzags, so a trail reads as a path worth chasing. - Difficulty ramps by drawing patterns from harder tiers with distance, not by raising speed. - Death is a slide along the floor with the camera still moving, then a summary: distance, coins, best. Definition of done: I can thread a five-laser bank at 900m and it feels like skill rather than luck.
- The vehicles. Mr Cuddles, the gravity suit, Profit Bird, each one a whole separate control scheme
- A rotating three-mission board that quietly runs the entire retention loop
- Halfbrick's animation polish, especially the death slide, which nobody remembers being taught to enjoy
- The coin shop, the gadget economy and a decade of event content on top of it
Hazard chunks that declare their entry heights
Random hazard placement is unfair about one screen in ten and no amount of seed-fiddling fixes it, because the generator has no idea where the player can physically be. Chunks that declare the band of entry heights they are passable from make the spawner trivial and the difficulty honest.
ScopeA weekend— build just this, not the game
Build a chunk-based hazard spawner for a side-scroller as a single self-contained HTML file. Canvas 2D, no build step. - The player is a dot held at the left third with hold-to-rise, gravity-always movement, while the world scrolls past. Feel is not the exercise here, the spawner is. - Hazards never spawn individually and never at random. They live in a JSON library of chunks: a fixed-width slice of screen with hazards placed by hand, plus two declared fields — the band of entry heights it is passable from, and a difficulty tier. - The spawner keeps a bag of chunks whose entry band contains the player's current height, draws from the bag, and refills only when it empties, so nothing repeats until everything has been seen. Tier weighting shifts with distance travelled; scroll speed never changes. - Ship a verifier: run a headless bot through every chunk at eleven entry heights and report any chunk that is unpassable, or passable by simply holding the button. Definition of done: the verifier reports zero unpassable chunks and I can run 2000m without seeing the same chunk twice.
Not a clone — Jetpack Joyride 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.
Blackpowder Play By Mail
Jetpack Joyride, but asynchronous multiplayer — no live server, set in the Wild West. Rendered in anime cel-shade.
Build a browser game called "Blackpowder Play By Mail". The pitch in one line: a endless runner in the spirit of Jetpack Joyride, but asynchronous multiplayer — no live server, set in the Wild West. WHAT THIS IS Take the SHAPE of Jetpack Joyride — 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 Asynchronous multiplayer — no live server. Players take turns hours apart against stored state. You get real multiplayer with none of the real-time netcode. 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 The Wild West. Distance, dust and long reloads. A single main street the whole design hangs off. 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 Anime cel-shade. Hard ink outlines, flat colour fills, specular blobs on hair and metal, and camera cuts that feel like episode storyboards. 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.
- Kenney's sprite packs for placeholder hazards and characters
- Phaser — a sane starting point if you would rather not hand-roll the loop
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 6 team-years to the counter on the homepage.
Then try these
Questions
How hard is Jetpack Joyride to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Jetpack Joyride is HARD (3 of 5). You will get the loop working. Then the real work starts. Thrust as acceleration against constant gravity with a clamped velocity is three lines of code, and finding the ratio between those three numbers is a week with a slider panel. Reckon on a weekend to something you can actually play — not to something that matches the 6 team-years Halfbrick Studios spent.
What makes Jetpack Joyride hard to rebuild?
Thrust as acceleration against constant gravity with a clamped velocity is three lines of code, and finding the ratio between those three numbers is a week with a slider panel. That is why it sits at HARD rather than a tier either side of it. If you want the idea without the project, the transferable part is hazard chunks that declare their entry heights — a weekend of work.
How long does it take to build a Jetpack Joyride clone?
Wrong question, and it is worth saying why. Nobody rebuilds Jetpack Joyride — the original took Halfbrick Studios on the order of 6 team-years, released in 2011 on Mobile. What you can do is reach something playable and genuinely yours in about a weekend, 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 Jetpack Joyride?
The vehicles. Mr Cuddles, the gravity suit, Profit Bird, each one a whole separate control scheme. A rotating three-mission board that quietly runs the entire retention loop. Halfbrick's animation polish, especially the death slide, which nobody remembers being taught to enjoy. 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.