Line Rider rebuild deck
FIDDLY
Lines need a side: collide from both and the rider clips the underside of every loop, which looks correct for ten seconds and then makes long tracks impossible to draw.
You will get it, but one specific system will fight you.
One-sided line collision is a genuinely beautiful piece of design pretending to be a physics hack: it quietly turns a constraint solver into a drawing instrument. An agent will give you two-sided collision unless you spell it out, and the difference only becomes obvious once you try to draw your first loop. Vendor nothing here, because the entire thing is Verlet integration and a dot product, and once it works you will lose an evening to it, which is the correct outcome.
- Difficulty
- FIDDLY · 2 of 5
- First playable
- A weekend
- The original
- 1 team-years
- Released
- 2006 · Browser
- Genre
- Physics Sandbox
Build a drawing toy in which a sledder rides freehand-drawn lines under gravity. Single self-contained HTML file, Canvas 2D, hand-written Verlet physics, no build step.
Requirements:
- The rider is point masses joined by distance constraints: sled base, body, head, two arms, two legs. Fixed 40Hz simulation step, several constraint iterations per step, gravity as a constant acceleration.
- Lines are SEGMENTS WITH A SIDE. Store each line's draw direction, derive its normal from that, and only resolve a collision when a point is crossing from the normal's positive side. This is the whole trick. It is why the rider can pass through the underside of a loop instead of clipping it, and it is what makes long tracks buildable at all. Two-sided collision looks correct for ten seconds and then ruins everything.
- Resolution: project the point onto the segment, and if it lies within a fixed thickness of about 10 units on the correct side, push it out along the normal and apply friction along the tangent by scaling the point's implicit velocity.
- Three line tools: normal, accelerating (adds tangential velocity), and scenery (drawn, no collision).
- Pan, zoom, an undo stack, play/pause/rewind, and a frame scrubber.
- Save and load tracks as JSON, an array of {x1, y1, x2, y2, type}.
- Bucket lines into a spatial grid or a 5000-line track will crawl.
Definition of done: I can draw a loop, ride it without falling through, rewind, add a boost line, and watch the rider clear a gap it previously missed.- Almost nothing mechanically. The whole simulation is a few hundred lines of Verlet
- Twenty years of absurdly long community tracks synced to classical music
- Track file compatibility, which means not one of those tracks will load in yours
- Bosh's scarf, which is doing far more emotional work than it has any right to
Deterministic sim you can scrub backwards
Rewind is not a feature you bolt on, it is a property you get free the moment the simulation is a pure function of state plus recorded input. Get determinism first and the same work also hands you replays, shareable runs, and a debugger you can drag a slider across.
ScopeAn evening— build just this, not the game
Build a rewind toy. Single self-contained HTML file, Canvas 2D, no build step, no dependencies. - A small scene: thirty point masses under gravity bouncing inside a box, integrated at a fixed 1/60 s step. No Math.random at runtime — seed a tiny PRNG once from a fixed integer. - State is a flat array of numbers, and step(state, input) is a pure function of those two things and nothing else. Player input (a mouse-dragged attractor) is recorded per tick into a list. - Rewind and scrubbing work by replaying from tick zero, not by storing a frame per tick. Snapshot the state every 120 ticks so seeking to tick 4000 restores the nearest snapshot and re-steps forward, in under 16 ms. - A timeline bar under the canvas: drag to scrub, play/pause, single-step, live tick counter. - A button that hashes the state at tick 600 and prints the hash. Definition of done: scrubbing back to tick 200 and playing forward reproduces the identical motion, and the tick-600 hash is the same on every reload.
Not a clone — Line Rider 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.
Build In Public Endless
Line Rider, but an endless survival mode instead of levels, set in indie hackers building in public. Rendered in neon synthwave.
Build a browser game called "Build In Public Endless". The pitch in one line: a physics sandbox in the spirit of Line Rider, but an endless survival mode instead of levels, set in indie hackers building in public. WHAT THIS IS Take the SHAPE of Line Rider — 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 endless survival mode instead of levels. One arena, escalating waves on a data-driven timeline, a run timer and a score. Replaces level design with a difficulty curve. 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 Indie hackers building in public. A tiny product, a public launch, and an audience meter. Every feature is a bet against runway. 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 Neon synthwave. Magenta-cyan split lighting, grid horizons, sun stripes, and chrome reflections on every hard surface. 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.
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 Line Rider to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Line Rider is FIDDLY (2 of 5). You will get it, but one specific system will fight you. Lines need a side: collide from both and the rider clips the underside of every loop, which looks correct for ten seconds and then makes long tracks impossible to draw. Reckon on a weekend to something you can actually play — not to something that matches the 1 team-years Boštjan Čadež spent.
What makes Line Rider hard to rebuild?
Lines need a side: collide from both and the rider clips the underside of every loop, which looks correct for ten seconds and then makes long tracks impossible to draw. That is why it sits at FIDDLY rather than a tier either side of it. If you want the idea without the project, the transferable part is deterministic sim you can scrub backwards — an evening of work.
How long does it take to build a Line Rider clone?
Wrong question, and it is worth saying why. Nobody rebuilds Line Rider — the original took Boštjan Čadež on the order of 1 team-years, released in 2006 on Browser. 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 Line Rider?
Almost nothing mechanically. The whole simulation is a few hundred lines of Verlet. Twenty years of absurdly long community tracks synced to classical music. Track file compatibility, which means not one of those tracks will load in yours. 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.