TERMINAL NINE · GUIDE

FIELD SERVICE DOCUMENT · OKB-9 · FOR ENGINEERS AND CURIOUS OPERATORS

HOW THIS MACHINE
WAS BUILT

Terminal Nine is a playable text adventure disguised as a surviving station console: CSS hardware, JavaScript memory, and one story still warm in the tube.

§1 THE CONCEPT

A relay station above Ganymede was ordered cold in 2087, but its OKB-9 console kept one program alive. The site treats the webpage as a live uplink, not a museum placard: the first screen is the operating deck, the beige terminal is the primary object, and every later artifact exists to deepen the same question: what do you owe a machine that waited for you?

§2 STORY.SYS — THE STATE MACHINE

The adventure lives in main.js as NODES: 14 story nodes plus the title gate. A node owns text(), opts(), optional look copy, and sometimes enter(). The only inventory puzzle is honest and visible: the mess-hall jacket adds keycard; the corridor vault route checks G.inv.has('keycard') before allowing the SIGNAL ending.

handleCommand() parses global commands, option numbers, and typed verbs. VERB_STRIP turns “walk to the mess hall” into a keyword, while matchOption() compares it with each live choice. doLook(), doMap(), and doStatus() keep failures in character. localStorage persists found endings, so the ledger below the machine unseals as players finish routes.

§3 OUTPUT, HUD & MOTION

Text output is queued by TW, one requestAnimationFrame loop that pauses when document.hidden. charDelay() gives punctuation weight and lets occasional glyphs mount as .flickc spans for phosphor twitch. TW.flush() powers ENTER-to-skip, TURBO, and reduced motion. updateHud() writes the sticky .screen-hud location, inventory, and phase labels so the tube behaves like an instrument, not just a text box.

§4 THE TUBE — CRT IN PURE CSS

§5 PALETTE & TYPE

#020503VOID BLACK — page
#33FF66P1 PHOSPHOR — signal
#7EE89ABODY GREEN — prose
#FFB000AMBER — warnings
#D8CDB2BEIGE — the machine

VT323 carries terminal prose and output at generous sizes. Silkscreen is reserved for chrome: nav, labels, headings, HUD, and model plate. The core tokens are #020503 void black, #33FF66 P1 phosphor, #7EE89A body green, #FFB000 warning amber, and #D8CDB2 machine beige.

§6 REPRODUCE THIS

Prompt an AI agent roughly like this:

"Build a playable text adventure as a single-page static site. Put the live terminal in the first viewport. Write 10-14 story nodes plus a title gate in one JS object; include one inventory item that gates the best ending and 3 endings total. Render the game inside a CSS-only CRT with a beige bezel, scanlines, shimmer, barrel curve, text-shadow bloom, screen HUD, typed commands, clickable choices, and a physical reveal for the best ending. Use a rAF typewriter with skip/TURBO and reduced-motion support."

The order matters: story first, machine second. A beautiful tube running a thin story is only a screensaver.