These moved from the Coffey-Labs org to jcoffey-dev, where they belong. GitHub redirects a transferred repository, so nothing was broken by leaving them -- but a source link that lands via a redirect is still naming an owner that no longer holds the code, and the redirect only lasts as long as nobody creates a repository of the same name in the old place. Only the seven repositories that actually moved are rewritten. Every other Coffey-Labs URL is left alone: ihasmail, cairnobs and the rest are still there.
106 lines
5.0 KiB
Markdown
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/jcoffey-dev/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.*
|