Adds the cel-shaded skin, the score and the sound, and puts the skin machinery back so the toggle under the frame has somewhere to go. The remaster is a bridge rather than a paper column: the ship down the left as meters and pips, a cel-shaded sensor grid in the middle, the log down the right. Both panels are devices -- break the short range sensors and the sector grid goes dark, break the computer and the chart does, and the chart draws what has been scanned rather than the galaxy as it is. Scans are drawn instead of printed, so the log gets the sentences and stops being eight rows of ASCII squeezed into a strip. One theme, two arrangements, so switching skin re-scores the piece rather than changing the record: brass, strings and timpani for the remaster, the same eight bars as a three-channel chiptune for 1971. Written in the idiom rather than quoted from it, for the same reason the game is not called what you expect -- NOTICE.md now argues both. Effects are the ship's: warp, beams, torpedo, hit, explode, klaxon, dock, and the print head on paper only. The boot dials in for real: Bell 103 at the real frequencies, which is what a 110-baud acoustic coupler sounded like and not the modem noise everybody remembers. The synth engine is the siblings', unforked. Tests cover the music the only way a test can: a mistyped note name does not throw, it silently removes a voice, so every step of every track is checked against the parser.
4.9 KiB
Long Range Scan
A browser recreation of the 1971 starship patrol game — the one you played on a printing terminal, hunting through sixty-four quadrants by reading three digits at a time.
It is called Long Range Scan rather than the name you are thinking of, and NOTICE.md explains why at length. The short version: the rules are free to rebuild and the trademarks are not, so the mechanics are exact and the vocabulary is ours. The same goes for the music -- it is the idiom, written from scratch, not the theme.
It ships in two skins over one game. 1971 is the machine as it was: a printing terminal, black ink on fanfold paper, the print head hammering out one character at a time and nothing on screen you have not read. Remaster is the same patrol with the sensors drawn -- a bridge console with the ship down one side, a cel-shaded grid in the middle and the log down the other. The rules never differ between them, and neither does a single word the machine says. Switch any time with the button under the frame.
React + TypeScript + Vite, and not one binary asset: every mark on the sensors is SVG generated from the game state, and every note is generated by a small synth on the Web Audio API.
Playing
npm install
npm run dev
The leaderboard is a separate service; run games-scores alongside this if you want one, or do not, and the board will say so rather than break.
You dial in rather than switch on, because in 1971 the game was not on your machine — it was on somebody else's, down a telephone line.
One to four captains share the keyboard, hot-seat style. A turn is one whole patrol rather than one command: you fly yours until the raiders are gone or something ends you, and only then does the next captain sit down. Each gets their own galaxy, dealt off the same seed.
- The galaxy is eight by eight quadrants, each of eight by eight
sectors. A long range scan reads three digits per quadrant — raiders,
starbases, stars — so
205is two raiders, no base and five stars. Reading those is the whole game. - Courses run 1 to 9 anticlockwise: 1 along the row, 3 up, 5 back, 7 down, and 9 is 1 again so that 8.5 has somewhere to go. Warp 1 is eight sectors.
- 3000 units of energy and ten torpedoes. Energy moves you, fires the beams, and fills the shields; it is all one pool, and that is the entire economy of the game.
- Eight devices can break when you are hit. Damage control only works while you fly, which is why a hurt ship has to keep moving.
- Moor beside a starbase and you are full again — tanks, racks, and a day of repairs. There are rarely more than three or four in a galaxy.
- A raider hits harder the closer it is, and spends itself doing it. Sit at range and you take less and give less. Close in and it is settled either way in two exchanges.
- A torpedo goes where it is pointed and nowhere else. A star swallows it. So does your own starbase, and that ends the patrol in the worst way there is.
- The clock is the real opponent. Twenty-five to thirty-five days, and sixty-four quadrants to look in.
High scores
One board, shared by everybody. Ending a session posts every captain in the party, and the top 50 comes back ranked best first: raiders destroyed, then days left on the orders, then torpedoes still in the racks.
There is no way to clear it. A captain leaves the list only by being pushed off the bottom by a better one.
What is not built yet
- The remaster. The 1971 skin is the machine as it was: paper, ink, and a
print head. The cel-shaded tactical view is next, and everything is already
shaped for it — every colour is a token, the transcript is structured data
rather than strings on a page, and
Line.kindis what the map will read. - Sound. The synth arrives with the remaster. The dial-up boot in
screens.tsxis already written to a schedule so it can be played rather than only printed. - Registration on the shared board.
games-scoresneeds one file forscanbefore anything posts; until then the game plays fine and the board says it is not answering.
Layout
| Path | What is in it |
|---|---|
src/game/constants.ts |
every number, and every word the machine says |
src/game/galaxy.ts |
the compass, the scatter, laying out a quadrant |
src/game/engine.ts |
the rules: warp, beams, torpedoes, being shot at |
src/game/reducer.ts |
phases, and the only place a turn changes hands |
src/audio/ |
the synth, and the two bands written for it |
src/components/ |
the paper, the bridge, the console, and the screens either side |
npm test proves the parts that are arithmetic rather than judgement: that
the compass closes, that a scattered galaxy is always worth flying, that a
warp stops at the rim and short of anything in the way, that every way a
patrol can end, ends it, and that every note in every tune is one the synth
can find.