Games

All written by hand, all running in the browser, none of it saved to a server.

11 built from scratch · 35 in the arcade

Built from scratch

Original work — these don't exist anywhere else.

The arcade

Classics, reimplemented from scratch. No emulation, no borrowed code — every one rebuilt to see whether I could.

2048 2048 with 3×3, 5×5 and Fibonacci-merge boards. Air Hockey Air hockey against the computer, first to seven. Arena Assault Top-down twin-stick shooter. Grunts, shooters and chargers in escalating waves. Asteroids Asteroids in two modes: Classic wave-clearing, and Survival with fuel. Bejeweled Match-three with cascades and special gems, on moves or a sixty-second clock. Bomberman Bombs clear soft blocks and enemies in a cross-shaped blast. Breakout Breakout in two modes: endless Classic, and Arkanoid with power-ups and steel bricks. Centipede Hits split the chain in two, and the mushrooms left behind block later shots. Checkers English draughts against an alpha-beta engine, up to six ply. Chess Chess against an alpha-beta engine, three difficulties. Connect Four Connect Four against an alpha-beta engine, three difficulties. Donkey Kong Barrels roll the girders and take ladders. The bonus timer is your life clock. Endless Runner An endless runner with separate jump and duck inputs. Flappy Bird One input against constant gravity. The gap never narrows. Frogger Frogger in two modes. Gauntlet removes the safe median strip. Galaga Enemies hold formation and peel off one at a time to dive. Hangman Hangman with a categorised word list. Six wrong letters ends it. Joust Collisions resolve by height. The loser leaves an egg that rehatches. Lunar Lander Six pads, finite fuel, and limits on landing speed and angle. Memory Pair-matching memory. Mismatches flip back after a beat. Minesweeper Minesweeper with a guaranteed-safe first click, plus a 5×5 wide-scan mode. Mini Golf Nine holes. Walls bank, slopes curve the roll, water costs a stroke. Missile Command The blast is the weapon, so every shot has to be led. Pac-Man Four ghosts with real chase logic, power pellets, faster every level. Pong Pong with two variants: Curve, where paddle motion adds spin, and single-input Mirror. Simon The sequence grows each round, and Web Audio tones make pitch a second cue. Snake Snake in two modes: Classic with solid walls, Hyper with wrapping edges and hazards. Sokoban Eight hand-built levels. Crates only push, so undo is unlimited. Space Invaders The formation speeds up as it thins. Shields erode both ways. Sudoku Sudoku generated with exactly one solution. Three difficulties. Tempest Ride the rim of a 16-lane tube. One superzapper per level. Territory Capture Qix-style area capture. Close a loop to claim it. Tetris Tetris in two modes: Classic with a ghost piece, and Void, which blinks the piece away. Typing Test A typing test with live WPM and accuracy. Whack-a-Mole A 3×3 grid on a 45-second clock. Trapped moles cost a strike, three ends it.