100 small, addictive, creative games — built with vanilla JavaScript and HTML5 Canvas. No frameworks, no dependencies. Mobile-friendly. All playable in your browser.
This project started as an experiment: can AI agents build 100 unique, playable games in under 24 hours?
Using Claude Code (Anthropic's AI coding agent), every game was designed, coded, and polished from a single prompt — each one a self-contained HTML5 canvas game with no external dependencies. The AI handled game mechanics, physics, sound design (Web Audio API oscillators), touch/mouse input, responsive sizing, and visual polish.
The result: 100 games spanning physics, puzzles, rhythm, strategy, word games, arcade action, and more — all built in a single session. No copy-paste templates. Each game has unique mechanics and its own personality.
Tools used:
- Claude Code — AI agent for code generation
- Vanilla JavaScript + HTML5 Canvas — no frameworks
- Web Audio API — synthesized sound effects, no audio files
- GitHub Pages — free hosting
100games/
├── index.html # Homepage — game gallery with live previews
├── play.html # Game player with carousel and side menu
├── game-01-drift/
│ └── index.html # Each game is a single self-contained HTML file
├── game-02-flick/
│ └── index.html
├── ...
├── game-100-gauntlet/
│ └── index.html
└── README.md
Each game is a single index.html file containing all HTML, CSS, and JavaScript. No build step, no bundler, no external assets. Open any game file directly in a browser to play.
| # | Game | Description |
|---|---|---|
| 01 | DRIFT | Descend into the deep — dodge coral obstacles and collect pickups in a neon-lit abyss |
| 02 | FLICK | Flick to victory — aim and launch with precision |
| 03 | SPLAT | Water balloon mayhem — tap balloons and ducks as they move along the path |
| 04 | PATINTERO | Cross all lines — Filipino-inspired court game, evade AI guards |
| 05 | BARRAGE | Incoming! Survive relentless waves of projectiles |
| 06 | SWARM | They're coming — hold off wave after wave of swarming enemies |
| 07 | SORT IT | Planet sorting puzzle — drag and drop planets into the right order |
| 08 | SLAP DECK | Card battle — slap the right cards faster than your opponent |
| 09 | CAST | Gone fishing — time your cast perfectly to hook the big one |
| 10 | CHOPPER | Stay airborne — tap to flap and dodge everything in your path |
| 11 | BASH | Something's hiding — punch the shaking bricks before creatures break through |
| 12 | HUSTLE | Follow the coin — watch the hands shuffle, then pick where it's hiding |
| 13 | HARVEST | Grow crops, shoo crows, harvest at the right time, and sell for coins |
| 14 | DIG | Tap crabs, clams, starfish and coins surfacing from the sand |
| 15 | PYRAMID | Race the AI to stack 10 stones into a pyramid |
| 16 | LUKSONG TINIK | Filipino jumping game — leap over the growing tinik |
| 17 | ARCHER | POV bow-and-arrow — aim at the target while birds disturb your shot |
| 18 | RING TOSS | Fairground ring toss — swipe to throw rings onto pegs and bottles |
| 19 | DECODE | Matrix-style word hunt — spot words in the falling cascade |
| 20 | BOOMERANG | Throw a boomerang to knock fruits off trees before birds steal them |
| 21 | MINE | Dig minerals in a cave grid — dodge bats and hide in lantern safe zones |
| 22 | MAZE | Navigate a procedurally generated maze — hide from pursuers |
| 23 | FENCE | Fencing duel against AI — attack, parry, advance, retreat |
| 24 | REGATTA | Steer your boat down a river — collect flags, dodge rocks |
| 25 | DUNES | Desert buggy race against AI — collect turbo boosts and gems |
| 26 | SEE-SAW | Balance the beam — tip it and lose a life |
| 27 | PADDLE RACE | Dodge rocks, collect buoys, beat the AI |
| 28 | WELL CLIMB | Jump ledges to escape before the water rises |
| 29 | PINBALL | Classic arcade pinball |
| 30 | SPELUNK | Descend the cave, collect gems |
| 31 | PIKO | Filipino hopscotch |
| 32 | HILO | Higher or lower — guess the next card |
| 33 | ROPE CLIMB | Swing left and right to dodge falling obstacles |
| 34 | PATTERN | Spot what comes next in the sequence |
| 35 | FIVE | Five-card draw — hold your best hand |
| 36 | SLOTS | Pull the lever and match the reels |
| 37 | BAZAAR | Roll dice, buy low, sell high |
| 38 | SWITCHBOARD | Route calls through the old switchboard |
| 39 | NEXUS | Connect the nodes |
| 40 | LIGHTHOUSE | Rotate the beam — guide ships to safety |
| 41 | CATAPULT | Fling rocks, topple the tower |
| 42 | PINWHEEL | Swipe to spin — keep the power flowing |
| 43 | SANDSTORM | Shelter from the storm, collect supplies |
| 44 | FLOOD | Fill the board before moves run out |
| 45 | LOUPE | Move the lens — find the odd one out |
| 46 | TUG | Tap fast — don't get pulled over the line |
| 47 | FOSSIL | Brush slowly — unearth ancient bones |
| 48 | FUSE | Cut the right wire before the fuse burns out |
| 49 | STACK | Drop the block — build the tallest tower |
| 50 | KENO | Pick your numbers — watch them get drawn |
| 51 | ECHO | Watch the pattern — repeat it back |
| 52 | CROSSFIRE | Dodge bullets flying from all sides |
| 53 | CURL | Slide the stone — sweep to steer it |
| 54 | PIPES | Connect the pipes before the water flows |
| 55 | JUGGLE | Keep them all in the air |
| 56 | KITE | Ride the wind — collect coins |
| 57 | LASSO | Rope the targets before they escape |
| 58 | PIVOT | Rotate to hit the target angle |
| 59 | UNDERTOW | Swim against the current |
| 60 | STAMPEDE | Herd the buffalo through the gate |
| 61 | SPINDLE | Wind the thread onto the spool |
| 62 | PLUCK | Swipe up to pluck the weeds |
| 63 | SWITCHWORD | Change one letter at a time |
| 64 | ANTONYM | Tap the antonym before time runs out |
| 65 | FLICKER | Shield the candles from the wind |
| 66 | GRIDLOCK | Slide cars to free the red one |
| 67 | FERMENT | Add ingredients at the perfect moment |
| 68 | WELD | Trace the seam at a steady speed |
| 69 | TIDE | Open gates to fill the right chambers |
| 70 | COMET | Tap planets to bend the comet's path |
| 71 | SLALOM | Carve through the gates on the way down |
| 72 | TRAMPOLINE | Bounce higher, collect stars, dodge spikes |
| 73 | TOPPLE | Stack blocks and knock down the opponent's tower |
| 74 | RICOCHET | Bounce shots off walls to hit targets |
| 75 | AVALANCHE | Dodge falling rocks while climbing |
| 76 | PENDULUM | Swing hook to hook across the chasm |
| 77 | METRONOME | Tap to the beat — BPM keeps rising |
| 78 | FREEFALL | Skydive, collect coins, land on target |
| 79 | ORBIT | Launch satellites into stable orbits |
| 80 | TANGRAM | Fit the shapes into the silhouette |
| 81 | CIRCUIT | Wire puzzles to light up all bulbs |
| 82 | CIPHER | Crack the substitution cipher |
| 83 | MIRROR | Reflect lasers to hit the sensors |
| 84 | DOMINO | Set up the chain reaction |
| 85 | ALCHEMY | Combine elements to discover new ones |
| 86 | TIGHTROPE | Balance the walker across the wire |
| 87 | CRANE | Grab prizes with the claw machine |
| 88 | DRIP | Catch water drops, avoid oil |
| 89 | SWAT | Whack bugs — spare the bees |
| 90 | PICKPOCKET | Steal items without getting caught |
| 91 | FIREFLY | Catch glowing fireflies in a jar |
| 92 | GEYSER | Jump between erupting geysers |
| 93 | ROOTS | Grow roots underground to reach water |
| 94 | ICEBREAK | Crack ice to free trapped fish |
| 95 | BLACKOUT | Memory match with blackout zones |
| 96 | ABACUS | Slide beads to match the number |
| 97 | BID | Auction bluffing against AI |
| 98 | ANAGRAM | Unscramble the letters |
| 99 | SEMAPHORE | Decode flag signal messages |
| 100 | GAUNTLET | The grand finale — 5 micro-challenges with fireworks |
Open index.html in a browser to see the game gallery. Click any game to play. Use the carousel or side menu to switch between games.
python3 -m http.server 8000
# then open http://localhost:8000Push to GitHub and enable GitHub Pages (Settings → Pages → Deploy from main). No build step, no dependencies.
The project includes two automated test suites powered by Playwright.
npm install # (no package.json needed — Playwright is used via npx)
npx playwright install chromiumVerifies all 100 games load without errors, render a canvas, and respond to a click.
node scripts/test-all-games.js- Loads each game in a headless browser
- Checks for JS console errors, canvas presence, and non-zero dimensions
- Simulates a click and checks for errors after interaction
- Generates
scripts/test-report.htmlwith before/after screenshots
Simulates 10 seconds of actual gameplay per game and tests rendering at 3 viewport sizes.
node scripts/test-gameplay.js- Simulates realistic input: clicks, drags, keyboard events across the canvas
- Verifies the game animates (pixel change detection between before/after)
- Tests responsive rendering at 3 sizes:
- Mobile — 375 × 667 (iPhone SE)
- Tablet — 768 × 1024 (iPad)
- Desktop — 1440 × 900
- Generates
scripts/test-gameplay-report.htmlwith 500 screenshots
scripts/
├── test-all-games.js # Smoke test suite
├── test-gameplay.js # Gameplay + responsive test suite
├── test-report.html # Smoke test visual report
├── test-gameplay-report.html # Gameplay test visual report
├── screenshots/ # Smoke test screenshots (200 images)
├── screenshots-gameplay/ # Before/after gameplay screenshots (200 images)
└── screenshots-responsive/ # Mobile/tablet/desktop screenshots (300 images)
- Vanilla JavaScript — no frameworks, no libraries
- HTML5 Canvas — all rendering via 2d context
- Web Audio API — synthesized sound effects using oscillators, no audio files
- Single-file games — each game is one self-contained
index.html - Mobile-first — touch + mouse input, responsive sizing, iOS Safari compatible
- Google Analytics — tracks page views and game popularity
- Playwright — automated testing across all 100 games (dev only)
MIT