Celeste rebuild deck
HARD
Every constant has been published, so the mover arrives in an hour feeling wrong, and the fix is the unglamorous half — sub-pixel remainders, 4px corner correction and buffered input.
You will get the loop working. Then the real work starts.
Nearly every constant here has been published or measured by the community, so an agent will hand you a plausible-looking mover inside an hour. It will still feel wrong, and it will feel wrong because of the unglamorous parts: sub-pixel remainders, corner correction, buffered input. Fix those before you draw a single level. The levels are where the years actually went, and no prompt shortens that.
- Difficulty
- HARD · 3 of 5
- First playable
- A project
- The original
- 6 team-years
- Released
- 2018 · PC
- Genre
- Precision Platformer
Build a precision platformer with an eight-direction air dash. Single self-contained HTML file, Canvas 2D, fixed 60Hz timestep, no build step. Requirements: - Position is stored as float, but movement happens in whole-pixel steps that carry the fractional remainder forward, checking collision at each step, one axis at a time. This is why the game feels crisp and it prevents tunnelling. Build it before anything else. - Corner correction: if an upward move is blocked by 4px or less of a ledge corner, nudge the player sideways and let the jump continue. Same forgiveness for horizontal moves into a low lip. - Constants: gravity 900px/s², halved while vertical speed is under 40 for a floaty apex; max fall 160; jump impulse 105 upward; run acceleration 1000 to a cap of 90; releasing jump early cuts upward speed to 40%. - Dash: a fixed 240px/s in the input direction for 0.15s with gravity disabled, then clamp to 160 in that direction rather than keeping full speed. One dash, refilled on ground contact or a crystal. - Coyote time 0.1s, jump buffer 0.1s, wall jump with a 0.2s horizontal input lock. - Screens are single-room JSON tilemaps with a spawn and an exit. Death respawns in under 300ms with no fade. Definition of done: I can dash diagonally at a corner, catch the wall, wall-jump into a one-tile gap, and holding jump goes visibly higher than tapping it.
- Around seven hundred hand-tuned screens, each introducing one idea and then interrogating it
- Lena Raine's soundtrack, which is roughly a third of why the game lands
- Writing about panic attacks good enough to make people cry at a pixel platformer
- B-sides, C-sides, and a speedrun scene that found tech the authors never put there
One dash charge, and the rule that refills it
A dash you can only spend once turns every gap into a routing question: where do I spend it, and what gives it back. The refill condition is the actual design knob — switch it from ground-only to any-surface and the same room becomes a different game, which is a great deal of content for one line of code.
ScopeAn evening— build just this, not the game
Build a dash-as-resource toy. Single self-contained HTML file, Canvas 2D, fixed 60Hz timestep, no build step. - A character with run, jump and gravity in one small tile room. Keep the mover deliberately boring; the dash is the subject. - One charge. Spending it sets velocity to a fixed 240px/s in the input direction for 0.15s with gravity disabled, then on expiry clamps speed in that direction to 160 rather than keeping it. That clamp is the difference between a dash and a launch. - The refill condition is a dropdown: ground contact only, any surface including walls, a collectable refill pickup, or a 1.2 second cooldown. One room, four different games. - Draw the charge state on the character, and draw the reachable envelope: the set of points a single dash plus a jump can still get to from here, updated live. Definition of done: switching the refill rule from ground-only to any-surface makes a gap I could not cross trivially crossable, with no edit to the room.
Not a clone — Celeste 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.
Gaslight Play By Mail
Celeste, but asynchronous multiplayer — no live server, set in Victorian gothic. Rendered in PS1 low-poly with texture warping.
Build a browser game called "Gaslight Play By Mail". The pitch in one line: a precision platformer in the spirit of Celeste, but asynchronous multiplayer — no live server, set in Victorian gothic. WHAT THIS IS Take the SHAPE of Celeste — 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 Victorian gothic. Fog, gaslight and etiquette. Social rules that constrain movement as hard as walls do. 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 PS1 low-poly with texture warping. Vertex-snap positions to a low-resolution grid in the vertex shader, use affine texture mapping so textures swim, dither to 15-bit colour, and fog the draw distance. 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.
- Maddy Thorson — Celeste and TowerFall Physics
- ExOK/Celeste64 — the studio's own 3D demake, MIT source
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 Celeste to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Celeste is HARD (3 of 5). You will get the loop working. Then the real work starts. Every constant has been published, so the mover arrives in an hour feeling wrong, and the fix is the unglamorous half — sub-pixel remainders, 4px corner correction and buffered input. Reckon on a project to something you can actually play — not to something that matches the 6 team-years Matt Makes Games (now Extremely OK Games) spent.
What makes Celeste hard to rebuild?
Every constant has been published, so the mover arrives in an hour feeling wrong, and the fix is the unglamorous half — sub-pixel remainders, 4px corner correction and buffered input. 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 one dash charge, and the rule that refills it — an evening of work.
How long does it take to build a Celeste clone?
Wrong question, and it is worth saying why. Nobody rebuilds Celeste — the original took Matt Makes Games (now Extremely OK Games) on the order of 6 team-years, released in 2018 on PC. 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 Celeste?
Around seven hundred hand-tuned screens, each introducing one idea and then interrogating it. Lena Raine's soundtrack, which is roughly a third of why the game lands. Writing about panic attacks good enough to make people cry at a pixel platformer. 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.