THE TERMINAL ARCADE / OPEN FOR PLAY
One more
game.
ONE COMMAND
ASTEROID HIGH 1380 ╭────────────────────────────────────────────────────────────────────────╮ │ ▗▚ │ │ ▌ ▌ │ │ ▟▀▀▟▖ │ │ │ │ │ │ │ │ ▗▄▄▄ │ │ ▄▞▘ ▀▀▌ │ │ ▄▀ ▐ ▗▄▖ │ │ ▐ ▌ ▄▀▀▘ ▝▖ │ │ ▚ ▞ ▗▄▄▖ ▞ ▗▘ │ │ ▀▄ ▐ ▗▞▀▘ ▝▀▀▄ ▝▚▄▖ ▄▀ ▄▄▄▄ │ │ ▀▄▄▄▀▀▘ ▞▘ ▐ ▝▀ ▗▀ ▀▌ │ │ ▌ ▌ ▝▖ ▄▘ │ │ ▀▚▄▖ ▄▘ ▀▄▄▄▞ │ │ ▄▖ ▝▀▚▖ ▄▀ │ │ ▄▞▀ ▝▚▖ ▝▀ │ │ ▄▀ ▝▀▄▖ │ │ ▞ ▐▘ │ │ ▝▚ ▗▞ ▗▖ │ ╰────────────────────────────────────────────────────────────────────────╯ SCORE 000020 WAVE 1 ▲ ▲ ▲ ←/→ turn · ↑ thrust · space fire
Asteroid, Tetris and Brickough, rendered in Unicode pixels. A small arcade for the terminal you already have.
go run github.com/aviorstudio/termcade@latest TRUECOLOR TERMINAL / 80×24 OR LARGER / PLAY OFFLINE IN THE STARTER PACK
Pick your
next high score.
- 01
ASTEROID
Asteroids-style rock shooter. An inertial ship on a wrapping field, and big rocks that split into faster small ones.
BUNDLED / PLAY OFFLINE - 02
TETRIS
Falling-block stacker with Super Rotation System kicks, a 7-bag randomizer, ghost piece, lock delay, and gravity that tightens by level.
BUNDLED / PLAY OFFLINE - 03
BRICKOUGH
Breakout-style brick breaker: steer the ball with paddle english, clear the wall, survive the speed-up.
BUNDLED / PLAY OFFLINE
TERMCADE_PIXELS
One ship. Four ways to cut up a cell.
Every setting draws the same game into the same terminal cells; only the sharpness, and what the font has to
know how to draw, change. Below is Asteroid's ship at the start of a wave, captured four times over and
blown up — the same five columns of cells every time, a different number of pixels inside them. In the
arcade p cycles the style and keeps it, and TERMCADE_PIXELS overrides the saved
choice for a single run.
▗ ▗▘▚ ▟▄▞▖ ▝▘ ▝▀
Unicode 1.0 block elements. Renders anywhere, and the default.
🬦 🬞🬄🬣 🬔🬭🬁🬓 🬉🬂 🬂🬍
Sharpest, near-square pixels. Needs Unicode 13, or you get tofu.
▄ ▄▀▄ ▄ ▄▀▄ ▀ ▀▀
The original look, for fonts that struggle with the rest.
- ::: .:_:, -" "-
A density ramp and line characters. No block glyphs at all.
The front door
Find a game. Make it yours.
The arcade opens on Marketplace. Use Ctrl+N to open the sidebar and switch to Library. Browse without signing in; Add saves a game to your account, while Play downloads and installs it. Your installed games stay in Library even when you are signed out.
The live registry is api.termca.de. Package bytes pass through it and are checked against the
sha256 recorded when the release was published before either the terminal or web app runs them. TERMCADE_REGISTRY selects a local registry for development.
Library capture from an earlier release. Current releases open on Marketplace.
termcade | open the arcade on Marketplace; Ctrl+N opens the sidebar |
|---|---|
termcade add author/slug | add a marketplace game to your account and this machine |
termcade list | what is in your arcade |
termcade remove author/slug | take one off, and off your synced library |
termcade signup | create an account — or termcade login, termcade logout |
termcade dev new you/mygame | scaffold a game that is already playable |
termcade dev build | package a game directory into a .tcade |
termcade dev install build/game.tcade | install a local package while developing |
termcade dev
The arcade you play with is the dev kit.
termcade dev new you/mygame scaffolds a game that already runs,
termcade dev build turns the directory into a .tcade, and
termcade dev install puts the local build on your own menu. A game is a Go package implementing
one interface — and because the boundary is a frozen wasm ABI rather than a Go one, Go is a convenience and
not a requirement.
- Ticks
- Update() runs exactly 60 times a second, stepped off the measured clock rather than drifting
- Input
- four directions, two action buttons and start — with real releases where the terminal sends them
- Drawing
- a canvas in square logical units; the game never sees the pixel grid it lands on
- HUD
- labelled fields and a hint. The shell owns every pixel of the styling
- Dependencies
- the sdk module, which depends on nothing outside the standard library
- Boundary
- wasm ABI v1, frozen. A host refuses a guest whose version it does not speak
THREE GAMES IN THE BOX. THE REST IS YOURS.
The arcade you play with
is the dev kit.
Sandboxed WebAssembly games. A fixed 60-tick update loop. Four directions, two action buttons and start.