X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=history.adoc;h=86f49034250544adb7364605496f07b2ad169951;hp=f64fef91296d467dd492802b24c8890cdda99d15;hb=2ddd09189336df222ef88099a3041584ec5b327e;hpb=681ecd9a4fa939a2e57c14bb263d8f288e3b14c9 diff --git a/history.adoc b/history.adoc index f64fef9..86f4903 100644 --- a/history.adoc +++ b/history.adoc @@ -1,19 +1,21 @@ = 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 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 routers.) It was a maze game based on the Colossal Cave complex in -Kentucky, lacking most of the D&D-like elements now associated with +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 <> are a narrative of the history of the -game. There is an in-depth study of its origins at <>. -Many versions are collected at The Interactive Fiction Archive -<>; note however that its dates for the earliest releases -don't match other comments in the code or the careful reconstruction -in <>. +Same articles at <> are a narrative of the history of the game. +There is an in-depth study of its origins at <>. Many versions +are collected at The Interactive Fiction Archive <>; 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 <>. + +== 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 <>. 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,11 +70,12 @@ 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: +............................................................................ > The bulk of the points come from five new 16-point treasures. (I say "bulk" > because I think at least one of the scores included some padding and I may > have tweaked those.) Each of the new treasures requires solving a puzzle @@ -105,39 +112,43 @@ and 2.5: > succumb even given access to the game source. You really need to fit > together not only the goals and the map and use of inventory space, but > also details like just what _can_ you do in the dark...? - -== 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. - -I have reverted to "Advent" for the binary to avoid a name collision -with the BSD Games version. - -== Functional changes in Open Adventure == - -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. +............................................................................ + +Great care has been taken to preserve 2.5's exact gameplay as intended +by Don. 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 +<>. This was in some ways similar to later roguelike games but +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 <>, written by Gregory Yob in +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. == Sources == @@ -145,6 +156,12 @@ which is then linked to the advent binary. - [[[IFA]]] http://rickadams.org/adventure/ -- [[[[DA]]] http://www.filfre.net/sitemap/ +- [[[DA]]] http://www.filfre.net/sitemap/ - [[[SN]]] http://www.digitalhumanities.org/dhq/vol/1/2/000009/000009.html + +- [[[DND]]] https://en.wikipedia.org/wiki/Dnd_(video_game) + +- [[[WUMPUS]]] https://en.wikipedia.org/wiki/Hunt_the_Wumpus + +- [[[QUUX]]] https://github.com/Quuxplusone/Advent