Test for more unusual cases.
[open-adventure.git] / history.txt
index d1725b09939d10edb840da95697681a08f8658fb..f64fef91296d467dd492802b24c8890cdda99d15 100644 (file)
@@ -2,14 +2,15 @@
 by Eric S. Raymond
 
 Adventure is the fons et origo of all later dungeon-crawling games,
-the gandaddy of interacive fiction, and one of the hallowed artifacts
+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
 writing what we could now call firmware for the earliest ARPANET
 routers.) It was a maze game based on the Colossal Cave complex in
-Kentucy, lacking the D&D-like elements now associated with the game.
+Kentucky, lacking most 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
@@ -43,7 +44,7 @@ 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 eother comments in the code or the careful reconstruction
+don't match other comments in the code or the careful reconstruction
 in <<SN>>.
 
 Future versions of this document may attempt to untangle some of the
@@ -65,6 +66,46 @@ 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.
 
+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
+> that's definitely at the tricky end of the scale for Adventure.  Much of the
+> new stuff involves trying new directions and/or finding new uses for stuff
+> that already existed; e.g. the forest outside is no longer a small number of
+> locations with partially random movement, but is a full-fledged maze, one
+> that I hope has a character different from either of the previous two.
+> 
+> As the text itself says, V2.5 is essentially the same as V2, with a few more
+> hints.  (I think I came up with a better one for the endgame, too.)  I don't
+> seem to have a copy of the similar text from V2, so I don't know whether/how
+> it described itself to new and seasoned players.
+> 
+> The other big change, as I mentioned above, was I added a way of docking
+> points at a certain number of turns.  This was my second attempt to do what
+> the batteries had been for: require being efficient to achieve top score.
+> Alas, the batteries led to players deliberately turning the lamp off/on
+> whenever they weren't moving or were in a lit area, making the game take
+> even longer!  I set the requirement at what felt like a hard but fair
+> number of turns, then applied several sneaky tricks to shave off another
+> twenty.
+>
+> I hacked up a wrapper around the game (still in Fortran, most likely, but
+> I forget) that would try each initializing the RNG using each second of a
+> given day, while feeding in a script that either worked or aborted early
+> if anything went wrong (such as a dwarf blocking my path).  As I recall,
+> it took less than a day's worth of RNG seeds to find one that worked.
+>
+> I verified my script could work given a favorable RNG, and stuck
+> that number in the message.
+> 
+> I like how that final puzzle, unlike the game itself, does not readily
+> 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
@@ -72,9 +113,32 @@ 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" to avoid a name collision
+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.
+
 == Sources ==
 
 [bibliography]