Update INSTALL.adoc to provide extra help for those getting an error regarding yaml...
[open-adventure.git] / history.adoc
index 1686645f08430c74d070059ff43a7d5aac1bae7d..5181ffbf00693c959dea30e28a266fa7f8fa70f0 100644 (file)
@@ -2,9 +2,11 @@
 by Eric S. Raymond
 
 Adventure is the fons et origo of all later dungeon-crawling computer
-games, the grandaddy of interactive fiction, and one of the hallowed
+games, the granddaddy of interactive fiction, and one of the hallowed
 artifacts of hacker folklore.
 
+== Origin and history ==
+
 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
 writing what we could now call firmware for the earliest ARPANET
@@ -13,7 +15,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 +25,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 +43,20 @@ 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>>.
+
+== Open Adventure ==
 
-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 +70,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:
@@ -108,66 +114,44 @@ and 2.5:
 > also details like just what _can_ you do in the dark...?
 ............................................................................
 
+Great care has been taken to preserve 2.5's exact gameplay as intended
+by Don.  We have added a "version" command.
+
+However, under the hood Open Adventure is rather different from 2.5.
+Where 2.5 was written in FORTRAN mechanically translated into
+extremely ugly C, Open Adventure has been translated into much more
+modern and idiomatic C.  The extremely cryptic and opaque format of
+the original database of rooms, objects, and strings has been moved to
+YAML; this makes the brilliant design of it much easier to comprehend.
+
 == Earlier non-influences ==
 
 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
+not to Adventure.  The designers of later roguelikes frequently cite
 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 (much) later included as a monster in the
-Nethack roguelike game, this was done in a spirit of conscious
-museumization well after early roguelikes. 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.
+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
+well after historians rediscovered Yob's game.)
 
 Neither of these games used an attempt at a natural-language parser
 even as primitive as Adventure's.
 
-== 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.
-
 == Sources ==
 
 [bibliography]
@@ -181,3 +165,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