Sokoban rebuild deck
HARD
The push rule is an afternoon and every hobby version already has it right; the game is twenty levels ramped properly, which needs a solver in the loop and a designer behind it.
You will get the loop working. Then the real work starts.
The engine is an afternoon. The levels are a career. Every hobby implementation on the internet has an immaculate push rule and ten levels that are either trivial or unsolvable, because designing a good level requires a solver in the loop and the community sets you are tempted to borrow are mostly under copyright. Build the engine, then decide honestly whether you are shipping a toy or starting a level-generation project, which is a much harder and much more interesting job.
- Difficulty
- HARD · 3 of 5
- First playable
- An evening
- The original
- 1 team-years
- Released
- 1982 · Classic
- Genre
- Block Pushing Puzzle
Build a box-pushing puzzle game as a single self-contained HTML file with Canvas 2D. No build step. Requirements: - Levels load from levels.json as standard XSB strings: # wall, @ player, + player on goal, $ box, * box on goal, . goal, space floor. Ship ten levels of your own design, easiest first, and validate each on load — exactly one player, and box count equal to goal count. - The movement rule, stated exactly: the player steps into an adjacent free cell. If that cell holds a box, the move is legal only when the cell directly beyond the box is floor or goal. Exactly one box, never two in a line, and never pulled backwards. Get this wrong in either direction and the entire genre evaporates. - Unlimited undo. Push every move onto a stack recording direction and whether a box moved, so undo restores box positions exactly rather than re-simulating. Bind it to U and ctrl+Z, with restart on R. - Deadlock hint: after each push, fade toward red any box that is off-goal and wedged in a corner of two walls. Warn, never block the move. - Show move count and push count separately; push count is the number solvers care about. - Feel: player and box both travel cell to cell over 90ms linear, with a low scrape on push and a soft click when a box lands on a goal. Definition of done: I push a box into a corner, see it flagged, and undo forty moves cleanly back to the opening position.
- The original twenty levels, still sharper than anything an agent will generate for you
- Forty years of community level sets, nearly all of which carry a licence you have not read
- Solver-verified difficulty grading, without which a level pack lurches instead of ramping
- The 1982 PC-8801 release and the Thinking Rabbit name on the label
Undo as inverse deltas, not snapshots
Record what changed and how to reverse it, and undo becomes exact, unlimited and almost free regardless of world size. Snapshotting the board works beautifully until the map is 200x200, at which point it quietly stops, and re-simulating from move one is worse.
ScopeAn evening— build just this, not the game
Build an undo-system toy as a single self-contained HTML file, Canvas 2D, no build step. A 60x60 grid world with a walker and a dozen pushable crates. Movement is the obvious rule: step into a free cell, or push a single crate when the cell directly beyond it is free. Every accepted move pushes one record onto a stack containing only what changed — the direction moved, and the id of the crate pushed if there was one. Undo pops a record and applies its inverse directly to the world. Do not store board snapshots, and do not rebuild state by replaying the move list from the beginning. Redo is a second stack, cleared by any new move made after an undo. Bind U and ctrl+Z to undo, ctrl+shift+Z to redo, R to restart. Display stack depth and the bytes retained. Definition of done: 500 moves, all 500 undone to a board byte-identical to the opening position, redone again, with the memory readout still measured in kilobytes.
Not a clone — Sokoban 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.
Fathomless One Run
Sokoban, but a roguelike run instead of a campaign, set in cosmic horror. Rendered in photocopied zine.
Build a browser game called "Fathomless One Run". The pitch in one line: a block pushing puzzle in the spirit of Sokoban, but a roguelike run instead of a campaign, set in cosmic horror. WHAT THIS IS Take the SHAPE of Sokoban — 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 A roguelike run instead of a campaign. Twenty to forty minutes, procedurally assembled from hand-authored chunks, permadeath, and a meta-progression drip. Replaces authored content volume with combinatorics. 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 Cosmic horror. The threat should be mostly absent. Information the player uncovers should make things worse rather than better. 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 Photocopied zine. Blown-out high contrast, dithered halftones, visible toner streaks and a page that shifts a pixel or two per frame. 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 Sokoban to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Sokoban is HARD (3 of 5). You will get the loop working. Then the real work starts. The push rule is an afternoon and every hobby version already has it right; the game is twenty levels ramped properly, which needs a solver in the loop and a designer behind it. Reckon on an evening to something you can actually play — not to something that matches the 1 team-years Thinking Rabbit spent.
What makes Sokoban hard to rebuild?
The push rule is an afternoon and every hobby version already has it right; the game is twenty levels ramped properly, which needs a solver in the loop and a designer behind it. 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 undo as inverse deltas, not snapshots — an evening of work.
How long does it take to build a Sokoban clone?
Wrong question, and it is worth saying why. Nobody rebuilds Sokoban — the original took Thinking Rabbit on the order of 1 team-years, released in 1982 on Classic. 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 Sokoban?
The original twenty levels, still sharper than anything an agent will generate for you. Forty years of community level sets, nearly all of which carry a licence you have not read. Solver-verified difficulty grading, without which a level pack lurches instead of ramping. 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.