Three ways in: add a game to the catalog, correct a claim about 1983, or put your own machine in the phone book. Everything you touch lives in the public real-wopr-programs pack; you do not need the rest of the engine.
THE GAME CATALOG
The canonical catalog, in order, with current status. LIST GAMES recites every row EXCEPT tic-tac-toe: the film's scrolling list does not include it — David types it directly in the finale — so the slot is catalogued but never recited:
| ID | Title | Status |
|---|---|---|
falkens-maze | Falken's Maze | implemented |
blackjack | Black Jack | implemented |
gin-rummy | Gin Rummy | implemented |
hearts | Hearts | implemented |
bridge | Bridge | placeholder |
checkers | Checkers | implemented |
chess | Chess | placeholder |
poker | Poker | implemented |
fighter-combat | Fighter Combat | placeholder |
guerilla | Guerilla Engagement | placeholder |
desert-warfare | Desert Warfare | placeholder |
air-to-ground | Air-to-Ground Actions | placeholder |
theater-tactical | Theaterwide Tactical Warfare | placeholder |
theater-biotoxic | Theaterwide Biotoxic and Chemical Warfare | placeholder |
tictactoe | Tic-Tac-Toe (unlisted — never recited, always startable) | implemented (reference) — 2 interpretations |
gtw | Global Thermonuclear War | reference spec |
tictactoe is the catalog's first slot with a second reconstruction: beside the official core minimax sits heuristic by daniel, the rule-based player of the era — beatable by a fork, on purpose. LIST TIC-TAC-TOE at the terminal lists both; starting the title bare always runs core.
See the contributing guide to claim a placeholder.
CLAIM A GAME
The games — along with the Lisp Joshua and the dial-in systems — are open source in the public real-wopr-programs pack, each a self-contained program in a language of its era. That is where you add or change one; the hosting exchange imports it. You do not need the engine.
Only tic-tac-toe and Global Thermonuclear War appear in the film; every other entry in the catalog is a placeholder waiting for your interpretation.
- Claim a placeholder (or propose a new game) by opening an issue on real-wopr-programs with its catalog
id. - Add a self-contained Fortran program at
games/<id>/main.f90in the pack that speaks the WOPR/1 wire format — one request frame in, one response frame out. Copy an existing game as the template. - Add its
harness/beside it: amanifest.json, abuild.sh, and atests/directory of golden fixtures. In the manifest setstatus: implemented, anabbrev(the short tag shown in the prompt while your game holds the terminal, e.g.TTT), and"self_resolving": trueif your engine resolves every non-human seat inside the human'sMOVE. You do not declare which inputs are moves: the host attaches the terminal to your game and every line comes to you, so a new game routes with no engine change. - Golden fixtures are the test suite — request/response pairs that must reproduce byte-for-byte. No parsing logic needed; the protocol does the rest.
- Follow the period-authenticity rules: period-plausible Fortran, deterministic given state+input, and a stated memory budget.
Because the host attaches the terminal to your game rather than inspecting what gets typed, a game is a self-contained, self-describing program: your contribution needs no changes to the engine — not the bridge, comms, surfaces, or database. The engine never has to learn your game's input grammar, because it never has to recognise it. See the pack's CONTRIBUTING.md and PACK.md for the full contract.
CORRECT A CLAIM
The feasibility analysis is meant to be argued with. If you lived through this era and a claim is wrong or imprecise:
- Open an issue titled
feasibility: <module>quoting the Claim and Confidence lines. - Provide your correction with a period source where possible (manual, spec sheet, first-hand experience, contemporaneous benchmark).
- We update the module's Claim / What was achievable / What we approximate / Confidence block and credit the contributor in the doc.
Especially wanted: real 300-baud latencies and error rates, period Fortran compiler constraints, time-sharing session-state practices, IMS-vs-relational in defense circa 1982, and the true capabilities of NORAD/SAC display systems. Each module lists its open questions.
RUN AN EXCHANGE
Every number in the phone book is a machine someone runs. Run the pack's stack on your own machine and the hub at wopr.realwopr.ai lists your number in a world's roster for as long as it is online. Hang up, and the slot opens for the next operator.
SLOTS: DIALING HUB…
DESIGN YOUR EXCHANGE
HOST SETUP
The .env lines (logon banner and operator roster) stay on your machine and are never sent to the hub. Run the make host command from a clone of real-wopr-programs; the hub assigns your world and slot when it connects, and the phone book updates within a minute.
A PERMANENT LISTING
The phone book lists a number only while its machine is online. To keep yours printed while it is off, ask for a permanent listing; each one is approved by hand.