Games · AI · Browser falling-block game / AI agent experiment
BlockDrop
A flashy falling-block game for the browser. One Claude Opus agent built the playable version from a single prompt in under an hour, with no revisions.
- Role
- Solo developer, built with one Claude Opus agent
- Workflow
- AgentAutoSetup scaffold, one prompt, no revisions
- Platform
- Browser · desktop and phone
- Size
- No runtime dependencies, 17 kB of gzipped JS
Overview
BlockDrop follows the genre’s modern standard rules (the “guideline”): a 7-bag randomizer, SRS rotation with wall kicks, hold, a ghost piece, lock delay, T-spins, back-to-back chains and combos. It wraps them in a canvas renderer with particles, screen shake and easing, and every sound is synthesized through Web Audio, so the game ships without a single asset file.
One prompt, one agent
The repository was scaffolded with AgentAutoSetup: an agent manual, enforced safety rules, git hooks and verification gates from the first commit. Then one Claude Opus agent got one prompt. In under an hour, with no revisions, it delivered the playable version:
- the complete rule set, including T-spin grading, perfect clears and guideline scoring
- pre-rendered block sprites, pooled particles, an eased row collapse, hard-drop trails and a score that rolls up
- keyboard play with auto-repeat, a visible focus ring and a live region that announces the game state
- 111 behavioural checks on the rules, plus gates for purity, reduced motion and the on-screen controls list
- touch controls and gestures
- an online high-score board
Each new gate was first run against a deliberately broken copy to prove it could fail. The rules gate caught two bugs before they were committed: a double clear removed the wrong second row, and the O piece rotated around its box instead of staying put. The process ran fully autonomously from start to finish.
Built to be checked
The rules are pure: no DOM, no clock and no hidden randomness. Time arrives as a delta and randomness as a seed, so every game is reproducible and the rules run in Node in milliseconds. The dependency points one way, so the whole presentation layer could be deleted and the game would still play correctly, and a gate makes sure it stays that way.