Snake rebuild deck
EASY
Nothing is hard, provided the body is a queue rather than a per-segment copy and food spawns from a free-cell list rather than by rejection sampling.
You will get essentially the whole thing.
The 1976 ancestor is Gremlin's Blockade, a two-player trail game with no food in it; the version you are asking for is the one Nokia shipped in 1997. Two failure modes, both quiet. An agent that reimplements the body as a per-segment copy every tick gives you something fine at 25x25 and embarrassing at 200x200, and you will not notice until you scale the grid. The second is rejection-sampled food placement, invisible until a player gets good and the last few free cells take thousands of retries to land on. Ask explicitly for interpolated rendering, because a grid-stepped worm at eight ticks a second looks broken next to a smooth one.
- Difficulty
- EASY · 1 of 5
- First playable
- An evening
- The original
- 1 team-years
- Released
- 1976 · Arcade
- Genre
- Grid Arcade
Build a grid-based growing-worm game as a single self-contained HTML file. Canvas 2D, Web Audio, no build step, no dependencies.
Requirements:
- 25x25 grid of 20 px cells. The body is an array of {x, y} cells treated strictly as a queue: each tick, push the new head and shift the tail off the end. Do NOT walk the array copying each segment into its predecessor's position. When food is eaten, skip the shift for that tick.
- Food placement must build the list of cells NOT occupied by the body and pick one at random from it. Never retry random positions until one is free, or a nearly full board locks the tab.
- Buffer input: queue the next direction and apply it at the start of a tick, rejecting any direction opposite the one currently in effect. Otherwise pressing up then left inside a single tick reverses the body into itself.
- Fixed tick of 120 ms, dropping 4 ms per food eaten, floor of 60 ms. Interpolate rendering between ticks so movement reads as smooth rather than stepped.
- Wall contact and self contact both end the run. Death holds for 400 ms before the game-over panel.
- Grid size, tick timings and the colour palette in a JSON config block, not scattered through the loop. High score in localStorage.
- Web Audio: 660 Hz blip on eat, 110 Hz saw on death.
Definition of done: I can fill most of the board without a frame hitch, and food never spawns underneath my own body.- Nothing you would miss. The mechanic is public domain in every sense that counts
- The monochrome Nokia LCD and the specific resistance of a 6110 keypad under your thumb
- The playground currency of a high score somebody else has to beat on your handset
Spawn from a free-cell set, not rejection
Rejection sampling on an occupancy grid is fine until the grid fills, at which point it is unbounded — and the failure only shows up for good players, which is precisely the population you should never punish. A free-cell array plus a cell-to-index map makes spawning O(1) forever and answers "is there any room left" for nothing.
ScopeAn evening— build just this, not the game
Build an occupancy-set benchmark. Single self-contained HTML file, Canvas 2D, seeded PRNG, no build step. A grid whose cells are occupied and freed over time by a scripted sequence, and two implementations of "give me a random free cell". - Rejection: pick random coordinates until one is free, with a watchdog that aborts after ten thousand attempts and counts every abort. - A maintained free set: an array of free cells plus a map from cell to its index in that array. Occupying swap-removes and fixes up the moved entry's index; freeing pushes and records. Occupy, free and random pick are all O(1), and the array length tells you whether the board is full. Drive both from the identical seeded sequence, filling from empty to 99.9 percent. Plot attempts per spawn and microseconds per spawn against fill percentage on two live charts. Definition of done: past 95 percent fill the rejection curve leaves the top of the chart and the watchdog fires, while the free-set curve stays a flat line the whole way.
Not a clone — Snake 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.
Deniable No Reflexes
Snake, but a puzzle version — same fiction, no reflexes, set in Cold War espionage. Rendered in 16-colour pixel art.
Build a browser game called "Deniable No Reflexes". The pitch in one line: a grid arcade in the spirit of Snake, but a puzzle version — same fiction, no reflexes, set in Cold War espionage. WHAT THIS IS Take the SHAPE of Snake — 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 puzzle version — same fiction, no reflexes. Keep the world and the tension, remove execution difficulty entirely. Every encounter has a correct answer discoverable by thought. 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 Cold War espionage. Nobody can be trusted including your own side, and the failure state is exposure rather than death. 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 16-colour pixel art. A fixed 16-colour palette (start from a Lospec palette), a hard pixel grid, and no sub-pixel movement — snap all rendering to whole pixels. 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 Snake to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Snake is EASY (1 of 5). You will get essentially the whole thing. Nothing is hard, provided the body is a queue rather than a per-segment copy and food spawns from a free-cell list rather than by rejection sampling. Reckon on an evening to something you can actually play — not to something that matches the 1 team-years Gremlin Industries spent.
What makes Snake hard to rebuild?
Nothing is hard, provided the body is a queue rather than a per-segment copy and food spawns from a free-cell list rather than by rejection sampling. 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 spawn from a free-cell set, not rejection — an evening of work.
How long does it take to build a Snake clone?
Wrong question, and it is worth saying why. Nobody rebuilds Snake — the original took Gremlin Industries on the order of 1 team-years, released in 1976 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 Snake?
Nothing you would miss. The mechanic is public domain in every sense that counts. The monochrome Nokia LCD and the specific resistance of a 6110 keypad under your thumb. The playground currency of a high score somebody else has to beat on your handset. 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.