Project
Roulette

Tetris

Seven pieces, wall kicks, and a lock delay that feels right.

IntermediateWeb appGame12–26hAI-buildable 3/5no setup

Tetris is a masterclass in game feel hiding behind simple rules. Rotation with wall kicks, the seven-bag randomiser, lock delay, and hold — get these right and it feels correct; get them wrong and it feels subtly awful for reasons players can't name.

UI
Logic
Useful

Hosting · Free forever

Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.

Deploy it and share a link.

Core features · 7

  • All seven pieces with correct rotation states
  • Wall kicks allow rotation against walls and floor
  • A seven-bag randomiser rather than pure random
  • Lock delay lets a piece be adjusted after landing
  • Hold piece and a next-pieces preview
  • Line clears with scoring for multi-line clears
  • Soft drop and hard drop with correct scoring

The interesting part

  • Wall kick tables are specific and unintuitive but essential to feel
  • Lock delay that resets on movement without allowing infinite stalling
  • Input handling with correct repeat delay and rate

Once it works

  • Add T-spin detection and bonus scoring
  • Add a ghost piece showing the landing position
  • Add marathon and sprint modes

Suggested stack

reacttypescripttailwindcanvas-api

Track it