Prevent tampering with PRNG parameters in save
[open-adventure.git] / history.adoc
index 743ed619af2d0fd906572abfa50c9ec83e3b08f6..085394462c7f300a0669a25d0a2a46d0b9c40e40 100644 (file)
@@ -1,9 +1,9 @@
 = A brief history of Colossal Cave Adventure =
 by Eric S. Raymond
 
-Adventure is the fons et origo of all later dungeon-crawling games,
-the grandaddy of interactive fiction, and one of the hallowed artifacts
-of hacker folklore.
+Adventure is the fons et origo of all later dungeon-crawling computer
+games, the grandaddy of interactive fiction, and one of the hallowed
+artifacts of hacker folklore.
 
 The very first version was released by Crowther in 1976, in FORTRAN on
 the PDP-10 at Bolt, Beranek, and Newman. (Crowther was at the time
@@ -13,7 +13,7 @@ Kentucky, including fewer of the D&D-like elements now associated with
 the game.
 
 Adventure as we now know it, the ancestor of all later versions, was
-was released on a PDP-10 at the Stanford AI Lab by Don Woods in 1977
+released on a PDP-10 at the Stanford AI Lab by Don Woods in 1977
 (some sources, apparently erroneously, say 1976). That version is
 sometimes known as 350-point Adventure.
 
@@ -23,15 +23,16 @@ in the 1995 release of Adventure 2.5, also known as 430-point Adventure
 
 The earliest port to C was by Jim Gillogly under an early Unix running
 at the Rand Corporation in 1977; this version was later, and still is,
-included in the BSD Games collection.  It was blessed by Crowther and
-Woods and briefly marketed in 1981 under the name "The Original
-Adventure".
+included in the BSD Games collection.  I have it from Don Woods directly
+that "[Jim Gillogly] was one of the first to request and receive a copy 
+of the source" but that Woods did not actually know of the BSD port
+until I briefed him on it in 2017.  (This contradicts some implications
+in third-party histories.)
 
 Many other people ported and extended the game in various directions.
 A notable version was the first game shipped for the IBM Personal
-Computer in 1981; this, for which neither Crowther nor Woods nor
-Gillogly were paid royalties, what "The Original" was competing
-against.
+Computer in 1981; neither Crowther nor Woods nor Gillogly were paid
+royalties.
 
 The history of these non-mainline versions is complex and
 murky. Functional differences were generally marked by changes in the
@@ -40,17 +41,18 @@ ports of some versions existed - some in FORTRAN, some in C,
 some in other languages - so the maximum point score is not
 completely disambiguating.
 
-Same articles at <<DA>> are a narrative of the history of the
-game.  There is an in-depth study of its origins at <<SN>>.
-Many versions are collected at The Interactive Fiction Archive
-<<IFA>>; note however that its dates for the earliest releases
-don't match other comments in the code or the careful reconstruction
-in <<SN>>.
+Same articles at <<DA>> are a narrative of the history of the game.
+There is an in-depth study of its origins at <<SN>>.  Many versions
+are collected at The Interactive Fiction Archive <<IFA>>; note however
+that IFA's historical claims are thinly sourced and its dates for the
+earliest releases don't match either comments in the code or the
+careful reconstruction in <<SN>>.
 
-Future versions of this document may attempt to untangle some of the
-non-mainline history. For now, it will suffice to explain the chain of
-provenance that led from the original Adventure to the version
-distributed with this document.
+An attempt to untangle and document a lot of the non-mainline history
+has been made by Arthur O'Dwyer at <<QUUX>>.  For our purposes, it
+will suffice to explain the chain of provenance that led from the
+original Adventure to the Open Adventure distributed with this
+document.
 
 The original 350-point ADVENT on the PDP-10 had been one of my
 formative experiences as a fledgling hacker in 1976-77. Forty years
@@ -64,7 +66,7 @@ open-source licensing were not yet fully established. The Makefile
 contained a rights reservation by Don Woods and that was it.
 
 I wrote to Don asking permission to release 2.5 under 2-clause BSD;
-he replied on 15 May giving both permission and encouragement.
+he replied on 15 May 2017 giving both permission and encouragement.
 
 Here is what Don said about differences between the original Adventure
 and 2.5:
@@ -114,55 +116,27 @@ There is record of one earlier dungeon-crawling game called "dnd",
 written in 1974-75 on the PLATO system at University of Illinois
 <<DND>>.  This was in some ways similar to later roguelike games but
 not to Adventure.  The designers of later roguelikes frequently site
-Adventure as an explanation, but not dnd; like PLATO itself, dnd seems
-not to have become known outside of its home university until
+Adventure as an influence, but not dnd; like PLATO itself, dnd seems
+not to have become known outside of its own user community until
 rediscovered by computer historians many years after Adventure
 shipped.
 
 There was also Hunt The Wumpus <<WUMPUS>>, written by Gregory Yob in
-1972. Though the wumpus was later included as a monster in the Nethack
-roguelike game, there is no evidence that Yob's original (circulated
-in BASIC among microcomputer enthusiasts) was known to the ARPANET- and
-minicomputer-centered culture Crowther and Woods were part of until well
-after Adventure was written.
-
-== Nomenclature ==
-
-This project is called "Open Adventure" because it's not at all clear
-to number Adventure past 2.5 without misleading or causing
-collisions. Various of the non-mainline versions have claimed to be
-versions 3, 4, 5, 6, 7 and for all I know higher than that.  It seems
-best just to start a new numbering series while acknowledging the
-links back.
-
-We have reverted to "advent" for the binary to avoid a name collision
-with the BSD Games version.
-
-== Functional changes in Open Adventure ==
-
-By default, advent issues "> " as a command prompt.  This feature
-became common in many variants after the original 350-point version,
-but was never backported into Crowther & Woods's main line before now.
-The "-o" (oldstyle) version reverts the behavior.
-
-A "seed" command has been added.  This is not intended for human use
-but as a way for game logs to set the PRNG (pseudorandom-number generator) so
-that random events (dwarf & pirate appearances, the bird's magic word)
-will be reproducible.
-
-A -l command-line option has been added. When this is given (with a
-file path argument) each command entered will be logged to the
-specified file.  Additionally, a generated "seed" command will be put
-early in the file capturing the randomized start state of the PRNG
-so that replays of the log will be reproducible.
-
-Using "seed" and -l, the distribution now includes a regression-test
-suite for the game.  Any log captured with -l (and thus containing
-a "seed" command) will replay reliably, including random events.
-
-The adventure.text file is no longer required at runtime.  Instead, it
-is compiled at build time to a source module containing C structures,
-which is then linked to the advent binary.
+1972. There is no evidence that Yob's original (circulated
+in BASIC among microcomputer enthusiasts) was known to the ARPANET-
+and minicomputer-centered culture Crowther and Woods were part of
+until well after Adventure was written.
+
+(I was a developer of the Nethack roguelike early in that game's
+history, in the late 1980s; we knew nothing of PLATO dnd.  We did know
+of Hunt The Wumpus then from its early Unix port, but it didn't
+influence us either, nor in any apparent way the designers of other
+early roguelikes. After my time the wumpus was included as a monster
+in Nethack, but this was done in a spirit of conscious museumization
+after historians rediscovered Yob's game.)
+
+Neither of these games used an attempt at a natural-language parser
+even as primitive as Adventure's.
 
 == Sources ==
 
@@ -177,3 +151,5 @@ which is then linked to the advent binary.
 - [[[DND]]] https://en.wikipedia.org/wiki/Dnd_(video_game)
 
 - [[[WUMPUS]]] https://en.wikipedia.org/wiki/Hunt_the_Wumpus
+
+- [[[QUUX]]] https://github.com/Quuxplusone/Advent