Long Range Scan: the 1971 galaxy, on the terminal it was written for

An independent rebuild of the 1971 starship patrol game. Eight by eight
quadrants of eight by eight sectors, three digits a quadrant on the chart,
courses round a nine-point compass, and a stardate clock that is the real
opponent.

The name and the nouns are ours and NOTICE.md says why: the mechanics are
free to rebuild, the trademarks are not. Raiders rather than the enemy from
the television programme, beams rather than the energy weapon, and every
sentence the machine prints written for this project rather than borrowed
from a listing.

This is the 1971 skin only -- paper, ink and a print head. The remaster and
the synth come next, and the tokens and the structured transcript are already
shaped for them.
This commit is contained in:
2026-09-08 23:26:22 -07:00
commit 593bbd888f
31 changed files with 7262 additions and 0 deletions
+143
View File
@@ -0,0 +1,143 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Long Range Scan — the 1971 starship game, in your browser</title>
<meta
name="description"
content="Sixty-four quadrants, a clock running down, and raiders scattered somewhere in them. Read three digits a quadrant and go hunting — on the printing terminal it was written for. Free, no account, nothing to install."
/>
<meta name="author" content="John Coffey" />
<!--
Canonical, because the container serving this falls back to index.html
for any path under /scan/ rather than returning a 404. That is right for
the app and wrong for a crawler, which would otherwise be free to index
/scan/anything-at-all as a separate page with identical content.
-->
<link rel="canonical" href="https://games.jcoffey.dev/scan/" />
<meta name="robots" content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="theme-color" content="#3a3a3a" />
<meta property="og:site_name" content="Games · jcoffey.dev" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Long Range Scan — the 1971 starship game, in your browser" />
<meta property="og:url" content="https://games.jcoffey.dev/scan/" />
<meta
property="og:description"
content="Sixty-four quadrants, a clock running down, and raiders scattered somewhere in them. Read three digits a quadrant and go hunting."
/>
<!--
The preview image is served by the site rather than carried in this
repository. Everything here is generated in code -- there is no artwork
file and there is not going to be one -- and a social card is not part of
the game. It sits with the deployment, which is also where the canonical
URL above points, so the two agree about which site this is.
-->
<meta property="og:image" content="https://games.jcoffey.dev/img/scan-social.png?v=2026-09-09a" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta
property="og:image:alt"
content="Long Range Scan — a grid of quadrants, each marked with three digits"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Long Range Scan — the 1971 starship game, in your browser" />
<meta
name="twitter:description"
content="Sixty-four quadrants, a clock running down, and raiders scattered somewhere in them."
/>
<meta name="twitter:image" content="https://games.jcoffey.dev/img/scan-social.png?v=2026-09-09a" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoGame",
"name": "Long Range Scan",
"url": "https://games.jcoffey.dev/scan/",
"description": "A browser recreation of the 1971 BASIC starship game. An eight by eight galaxy of eight by eight sectors, read three digits at a time, with a clock running down and raiders scattered somewhere in it.",
"genre": ["Strategy", "Simulation", "Retro"],
"gamePlatform": "Web browser",
"applicationCategory": "GameApplication",
"operatingSystem": "Any modern web browser",
"playMode": ["SinglePlayer", "MultiPlayer"],
"numberOfPlayers": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 4
},
"author": {
"@type": "Person",
"name": "John Coffey",
"url": "https://jcoffey.dev/"
},
"license": "https://www.gnu.org/licenses/agpl-3.0.html",
"isAccessibleForFree": true,
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"inLanguage": "en"
}
</script>
<!--
The same three steps the way-back link in the footer offers, said in a
form a crawler reads: this game sits under the games site, which sits
under jcoffey.dev.
-->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "John Coffey",
"item": "https://jcoffey.dev/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Games",
"item": "https://games.jcoffey.dev/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Long Range Scan",
"item": "https://games.jcoffey.dev/scan/"
}
]
}
</script>
</head>
<body>
<div id="root"></div>
<!--
What the page says before React has said anything. A crawler that does
not run scripts, and a reader who has them turned off, both get the game
described and a way onwards rather than an empty div.
-->
<noscript>
<h1>Long Range Scan</h1>
<p>
A browser recreation of the 1971 starship game. An eight by eight
galaxy of eight by eight sectors, a clock running down, and raiders
scattered somewhere in it. You find them by reading three digits a
quadrant. It needs JavaScript to play.
</p>
<p><a href="https://games.jcoffey.dev/">The rest of the games</a></p>
<p><a href="https://github.com/Coffey-Labs/long-range-scan">Source, AGPL-3.0-or-later</a></p>
</noscript>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>