One-Page Arcade

2026-08-24 · arcade · games

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 sizing
  • ensureAudio() / playSound() — procedural oscillators + noise buffers
  • initGame() / update() / draw() / loop() — the standard game loop
  • localStorage — hi-score persistence

Current roster

GameMakerYear
AsteroidsAtari1979
GalagaNamco1981
Depth ChargeAtari1977
EliteFirelight/Lucid Dreams1984
Missile CommandAtari1980
TetrisElectronorgtechnika1984
Lunar LanderAtari1979
Pitfall!Atari1982
Kung Fu MasterIrem1984
Double DragonTechnos1987
Star WarsMidway1983
Star TrekGT Interactive (Vectrex)1983
Zombie City: Last StandOriginal2025
Alpine RushOriginal2026
BattlezoneAtari1990

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.