Files
wumpus/NOTICE.md
T
jcoffey-dev 6485f9b161 Hunt the Wumpus, in two skins
A browser recreation of Gregory Yob's 1973 game. The rules are his and are
free to use; the sentences he wrote to explain them are not, and none of them
are here. Every line this game prints was written for it. NOTICE.md sets out
what is ours, what is not, and why -- the same argument the lemonade stand
makes about its own text, made before shipping rather than after.

Two skins over one game, and the period one is a Teletype rather than a
television. Wumpus is six years older than the Atari the lemonade stand runs
on. It lived on a timesharing service you telephoned and it printed on paper,
which is why the game asks you to remember things: there is no screen to look
back at. So 1973 is fanfold and black ink and a print head hammering out one
character at a time, and the remaster is the same cave with the lamp on. The
rules never differ, and neither does a single word.

The cave is proved rather than trusted. The adjacency table is typed out by
hand, because a generated dodecahedron comes out with an arbitrary numbering
and this is the numbering every listing has used since 1973 -- so a transcript
from a magazine still makes sense against it. Typed out means it can be typed
wrong, and a wrong table would not crash: it would quietly stop being a
dodecahedron while the game still played. cave.test.ts checks degree three,
symmetry, connectivity, a diameter of exactly five, and three pentagons
through every room.

The map is not allowed to know more than the paper. CaveMap draws only from
the rooms the hunter has stood in and the warnings those rooms gave, and it
marks suspects rather than answers. That guarantee is asserted in the engine
rather than in the component, because it is a property of the engine and would
still have to hold if the map were thrown away.

Drawing a solid flat took two attempts. Rooms 6 to 15 are not two pentagons at
different depths, they are one ten-room ring alternating inward and outward
wiring, and getting that wrong still draws and still looks cave-shaped. It is
much harder to read. The test checks the property that actually matters --
that no tunnel crosses another -- and was confirmed to fail against the bad
layout before it was believed.

The dial-in is a real Bell 103 call rather than a noise: dial tone at 350 and
440 Hz, Touch-Tone dialling, ringback at 440 and 480, the far modem's 2225 Hz
mark tone, then both ends keying at once through a telephone band. The screech
everybody remembers is a V.34 handshake from the 1990s and could not have
existed here.

38 tests. Typecheck clean.
2026-09-08 22:32:31 -07:00

106 lines
5.0 KiB
Markdown

# Notice, credits and provenance
## What this is
An independent reimplementation of *Hunt the Wumpus*, the cave-hunting game
that went round timesharing systems and then every home computer of the
following decade, written from scratch in TypeScript in 2026.
## Credit where it is due
- **Gregory Yob**, 1973 — wrote the original, reportedly out of irritation at
how many computer games of the day were played on a grid. Hanging the rooms
on a dodecahedron instead is the whole idea, and it is his.
- **People's Computer Company** and **Creative Computing**, who carried the
listing and the article that explained it.
- Every type-in book and school terminal that passed it along, which is how
most people met it.
This project is not affiliated with or endorsed by anyone connected to the
original. No original source code was used, consulted or copied.
## How this code came to exist
Clean-room, and worth being specific about because it is what makes the licence
below meaningful:
- **The rules are not ours to own, and we use them freely.** Twenty rooms,
three tunnels each, two pits, two bats, one wumpus, five crooked arrows that
fly through five rooms, a wumpus that wakes three times in four. Game
mechanics are ideas rather than expression; nobody gets to fence them off,
and so may you use them.
- **The cave is the cave.** `src/game/cave.ts` uses the room numbering every
listing of this game has used since 1973 — room 1 leads to 2, 5 and 8 — so
that a transcript from a magazine still makes sense against it. A numbering
is a fact about a graph, not a piece of writing. It is written out by hand
and then *proved* to be a dodecahedron in `cave.test.ts` rather than
trusted.
- **The artwork and the music are ours.** Every mark on the map is SVG
generated from the graph in code, and every note is generated by the synth in
`src/audio/`. There are no imported assets of any kind.
- **The synth is shared with its sibling.** `src/audio/synth.ts` is the same
engine as the one in [lemonade](https://github.com/Coffey-Labs/lemonade) —
same author, same licence. What is written for it here is new.
## The words on screen are ours, deliberately
This is the part worth reading, because the obvious thing to do was the wrong
thing.
The 1973 game has famous lines in it. Anyone who played it can still quote the
one about the bats. Those sentences are Gregory Yob's writing, not a rule and
not a fact — and a project released under a copyleft licence has no business
licensing words it did not write. The sibling project went back and took the
original's wording out of itself for exactly this reason; this one never
shipped with it.
So every line the machine prints here was written for this project:
| What the game has to say | Where the words came from |
| --- | --- |
| the three warnings | ours (`SENSE_TEXT` in `src/game/constants.ts`) |
| the four deaths, and the kill | ours (`DEATH_TEXT`, `WIN_TEXT`) |
| being carried off by bats | ours (`BATS_TEXT`) |
| the refusal, the prompts | ours |
| the instructions screen | ours — the rules are Yob's, the sentences are not |
Two things are still not original, and neither is a copyright question:
- **The name.** It is still *Hunt the Wumpus*, and the animal is still a
wumpus. Names and short titles are not subject to copyright, and it is kept
deliberately — calling it something else would be pretending this is a
different game, which would be less honest rather than more.
- **`YOU ARE IN ROOM 12` and `TUNNELS LEAD TO 3 11 13`.** These are the only
sensible words for what they report, and the order follows from the fact
that you need to know where you are before the exits mean anything. There is
no creative expression in them to own.
## One rule that is ours
Yob's game is a single cave: you kill the wumpus or it kills you, and either
way that is the end. Here a kill is a door rather than an ending — you go
deeper, into a fresh cave with the same twenty rooms and whatever arrows you
did not spend, until something gets you. It is a frame around the 1973 game
rather than a change to it: every hunt inside it is the original, unaltered,
and the reasoning is in `src/game/constants.ts`.
## Licence
Copyright (C) 2026 John Coffey.
This program is free software: you can redistribute it and/or modify it under
the terms of the **GNU Affero General Public License** as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version — see [LICENSE](LICENSE).
AGPL rather than plain GPL because the leaderboard is a network service: §13
means anyone who runs a modified copy of this for other people over a network
has to offer them its source. Running the game without the scores service is
entirely supported and imposes nothing extra.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
*None of the above is legal advice.*