One-Page Arcade
The arcade is a collection of classic games, each rebuilt as one self-contained HTML file: HTML5 Canvas rendering, inline CSS (CRT scanlines, HUD), vanilla JavaScript, and procedural sound via the Web Audio API. No frameworks, no build tools, no external assets — open the file and play.
Conventions
Every game follows the same structure (see the arcade’s ARCHITECTURE.md in the source repo):
resize()— canvas sizingensureAudio()/playSound()— procedural oscillators + noise buffersinitGame()/update()/draw()/loop()— the standard game looplocalStorage— hi-score persistence
Current roster
| Game | Maker | Year |
|---|---|---|
| Asteroids | Atari | 1979 |
| Galaga | Namco | 1981 |
| Depth Charge | Atari | 1977 |
| Elite | Firelight/Lucid Dreams | 1984 |
| Missile Command | Atari | 1980 |
| Tetris | Electronorgtechnika | 1984 |
| Lunar Lander | Atari | 1979 |
| Pitfall! | Atari | 1982 |
| Kung Fu Master | Irem | 1984 |
| Double Dragon | Technos | 1987 |
| Star Wars | Midway | 1983 |
| Star Trek | GT Interactive (Vectrex) | 1983 |
| Zombie City: Last Stand | Original | 2025 |
| Alpine Rush | Original | 2026 |
| Battlezone | Atari | 1990 |
The Original titles are real-time 3D (Three.js inlined in the file); Battlezone is a 3D polygon rebuild of the 1990 Atari arcade classic and Elite is a 3D space-combat rebuild of the 1984 Firelight/Lucid Dreams classic; the rest are 2D canvas builds. More games will be added over time — the index is data-driven, so a new game is one HTML file plus one JSON entry.