Skip to content
🃏 Classic1984Alexey PajitnovFIDDLY

Tetris rebuild deck

FIDDLY

SRS wall kicks are a published lookup table, and every attempt to derive rotation instead costs you an evening wondering why an S-piece will not tuck.

You will get it, but one specific system will fight you.

Everyone thinks this is a two-hour build and then discovers SRS wall kicks. Tell the agent to implement the published kick tables verbatim rather than deriving rotation, or you will spend an evening wondering why an S-piece will not tuck. The gameplay is a solved problem; the tuning constants are the whole product.

Difficulty
FIDDLY · 2 of 5
First playable
An evening
The original
2 team-years
Released
1984 · Classic
Genre
Puzzle
The one-shot build prompt
Build a modern falling-block puzzle game to the Tetris Guideline spec. Single HTML file, Canvas 2D, 60fps.

Requirements:
- 10x20 visible playfield with a 20-row buffer above. Seven pieces using the standard rotation system (SRS) including wall kicks — implement the kick tables, do not improvise them.
- 7-bag randomiser: shuffle all seven pieces, deal them, repeat. Never pure random.
- Hold piece (once per drop), next-piece queue of five, ghost piece showing the landing position.
- Lock delay of 500ms with a maximum of 15 move/rotate resets, so a piece resting on the stack can still be adjusted but not stalled forever.
- Scoring: single 100, double 300, triple 500, tetris 800, all multiplied by level. T-spin detection with the 3-corner rule, scoring 400/800/1200. Back-to-back bonus of 1.5x.
- Gravity table by level, soft drop at 20x with 1 point per cell, hard drop with 2 points per cell.
- DAS 133ms / ARR 10ms, both configurable in a settings panel — feel is everything here.
- Line clear: 300ms flash-and-collapse, screen shake on a tetris, particles on a T-spin.

Definition of done: I can perform a T-spin double and the game scores it correctly.
What you lose
  • The right to call it Tetris — the name and the brand are aggressively enforced
  • Official multiplayer, rankings, and the modern guideline tuning players have muscle memory for
  • The music, which you also cannot use
What to steal

Kick tables: try offsets before refusing a move

The gap between an input that feels precise and one that feels stiff is usually a short ordered list of nearby positions you try before telling the player no. Write kick tables once and you start seeing them everywhere — corner correction in a platformer, ledge grabs, snapping in an editor.

ScopeA weekend— build just this, not the game

Build a rotation-with-kicks test bed as a single self-contained HTML file, Canvas 2D, no build step.

A grid holding a four-cell piece and a stack of fixed blocks you paint in with the mouse. Rotating tests the naive rotated position first; if it collides, walk an ordered table of candidate offsets for that specific from-state to to-state transition — one right, one left, up, down-and-across — and accept the first that fits. If none fits, refuse the rotation.

Keep the offset table in a JSON block, one list per transition pair, editable at runtime so I can see bad tables produce bad feel.

Then draw what happened: every offset tried outlined in grey, the accepted one in green, and a line like "kick 3 of 5" in an on-screen log.

Definition of done: I paint an overhang, rotate underneath it, and watch the piece tuck into the gap on the fourth candidate offset with all four attempts visible.
Make it different

Not a clone — Tetris 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.

Leviathan Flatland

Tetris, but 2D instead of 3D, set in a kaiju attack. Rendered in 16-colour pixel art.

Themea kaiju attack
Angle2D instead of 3D
Look16-colour pixel art
Build a browser game called "Leviathan Flatland".

The pitch in one line: a puzzle in the spirit of Tetris, but 2D instead of 3D, set in a kaiju attack.

WHAT THIS IS
Take the SHAPE of Tetris — 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
2D instead of 3D. Canvas 2D and sprites. The mechanics survive the dimension drop; the asset budget falls by an order of magnitude.
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
A kaiju attack. Scale as the entire design: the player is either the enormous thing or a very small thing near it, and the city is a physics object.
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.
Prior art — read before you build

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.

Did you build it?
0Share on X

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 2 team-years to the counter on the homepage.

Questions

How hard is Tetris to rebuild with an AI agent?

Yes — every game is buildable at some scope. The question is how hard, and Tetris is FIDDLY (2 of 5). You will get it, but one specific system will fight you. SRS wall kicks are a published lookup table, and every attempt to derive rotation instead costs you an evening wondering why an S-piece will not tuck. Reckon on an evening to something you can actually play — not to something that matches the 2 team-years Alexey Pajitnov spent.

What makes Tetris hard to rebuild?

SRS wall kicks are a published lookup table, and every attempt to derive rotation instead costs you an evening wondering why an S-piece will not tuck. 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 kick tables: try offsets before refusing a move — a weekend of work.

How long does it take to build a Tetris clone?

Wrong question, and it is worth saying why. Nobody rebuilds Tetris — the original took Alexey Pajitnov on the order of 2 team-years, released in 1984 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 Tetris?

The right to call it Tetris — the name and the brand are aggressively enforced. Official multiplayer, rankings, and the modern guideline tuning players have muscle memory for. The music, which you also cannot use. 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.

Get the next game

One email when new games go on the list. No other reason to email you, ever.