Skip to content

slabgorb/arcade

Repository files navigation

arcade

A home for a series of browser-based, vector-style arcade games — glowing lines on black, Canvas 2D, no backend, no game engine. Each game is small, self-contained, and playable in a browser.

This repo is the orchestrator: it coordinates the games, shared tooling, and development workflow. Each game lives in its own repository.

Games

Game Description Repo Stack
Tempest Faithful clone of Atari's 1981 vector arcade game — ride the rim of a tube and blast enemies climbing the lanes. slabgorb/tempest TypeScript · Vite · Vitest

More games to come — each added as a sibling repo and registered here.

Design principles

  • Vector aesthetic — glowing vector lines on black, rendered with HTML5 Canvas 2D. No 3D engine, no physics engine.
  • Pure-sim core — game logic is a deterministic, framework-free simulation (src/core), kept separate from the rendering/audio/input shell (src/shell). This keeps the logic unit-testable without a DOM.
  • No backend — everything runs client-side; high scores live in localStorage.
  • Share late — games share a visual language but not code. A shared library gets extracted only once a second game proves the duplication is real.

Repo layout

arcade/                  # this orchestrator repo
├── .pennyfarthing/      # multi-agent dev workflow (pf) + repos.yaml registry
├── justfile            # task runner — `just serve` runs the whole arcade
├── lobby/              # arcade lobby shell (tracked separately)
└── tempest/            # game repo, developed alongside (tracked separately)

The orchestration tooling is Pennyfarthing, a multi-agent development framework.

Running the arcade

The canonical way to serve the whole arcade — the lobby plus every game — is a single command at the orchestrator root:

just install-all     # once per fresh checkout (installs lobby + every game)
just serve           # serve the cabinet: lobby on :5270, tempest on :5273

just serve is the one authoritative launch command. The live arcade (arcade.slabgorb.com, via a Cloudflare tunnel) is simply whichever checkout currently has just serve bound to the pinned ports — strictPort means only one server can hold :5273 / :5270 at a time, so the directory name a checkout lives in doesn't matter. See CLAUDE.mdServing the arcade (canonical) for the full workflow.

Working on a game

just dev-tempest     # start tempest's dev server  (http://localhost:5273/tempest/)
just dev-lobby       # start the lobby dev server  (http://localhost:5270/lobby/)
just test-all        # run tests across every game
just build-all       # build every game
just status          # git status across orchestrator + games

About

Orchestrator for a series of browser-based vector-style arcade games (first: tempest)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors