From: Eric S. Raymond Date: Sat, 3 Jun 2017 18:29:44 +0000 (-0400) Subject: Use "adoc" extension for asciidoc, it's the GitLab convention. X-Git-Tag: 0.90~22 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=681ecd9a4fa939a2e57c14bb263d8f288e3b14c9;p=open-adventure.git Use "adoc" extension for asciidoc, it's the GitLab convention. --- diff --git a/Makefile b/Makefile index 8cdf1b3..b3500c3 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ ifeq ($(UNAME_S),Linux) endif OBJS=main.o init.o actions1.o actions2.o score.o misc.o database.o -SOURCES=$(OBJS:.o=.c) COPYING NEWS README TODO adventure.text advent.text control advent.h funcs.h +SOURCES=$(OBJS:.o=.c) COPYING NEWS README TODO adventure.text advent.adoc control advent.h funcs.h .c.o: $(CC) $(CCFLAGS) $(DBX) -c $< @@ -48,9 +48,9 @@ check: advent cd tests; $(MAKE) --quiet # Requires asciidoc and xsltproc/docbook stylesheets. -.asc.6: advent.txt +.asc.6: advent.adoc a2x --doctype manpage --format manpage $< -.asc.html: advent.txt +.asc.html: advent.adoc a2x --doctype manpage --format xhtml -D . $< rm -f docbook-xsl.css diff --git a/README.adoc b/README.adoc index 3426278..b513dc4 100644 --- a/README.adoc +++ b/README.adoc @@ -5,7 +5,7 @@ This code is a forward-port of the Crowther/Woods Adventure 2.5 from development written by the original authors. The authors have given permission and encouragement for this release. -The file history.txt contains a more detailed history of this game +The file history.adoc contains a more detailed history of this game and its ancestors. This project is called "Open Adventure" because it's not at all clear diff --git a/advent.adoc b/advent.adoc new file mode 100644 index 0000000..7280b03 --- /dev/null +++ b/advent.adoc @@ -0,0 +1,39 @@ += advent(6) = +:doctype: manpage + +== NAME == +advent - Colossal Cave Adventure + +== SYNOPSIS == +*advent* [-l logfile] [-o] + +== DESCRIPTION == +The original Colossal Cave Adventure from 1976 was the origin of all +text adventures, dungeon-crawl (computer) games, and computer-hosted +roleplaying games. + +This is the last version released by Crowther & Woods, its original +authors, in 1995. It has been known as "adventure 2.5" and "430-point +adventure". To learn more about the changes since the 350-point +original, type 'news' at the command prompt. + +There is an 'adventure' in the BSD games package that is a C port by +Jim Gillogly of the 1976 ancestor of this game. To avoid a name +collision, this game builds as 'advent', reflecting the fact that the +PDP-10 on which it originally ran limited filenames to 6 characters. + +This version is released as open source with the permission and +encouragement of the original authors. + +== OPTIONS == + +-l:: Log commands to specified file. + +-o:: Old-style. Restores original interface, no prompt. + +== REPORTING BUGS == +Report bugs to Eric S. Raymond . The project page is +at http://catb.org/~esr/advent + +== SEE ALSO == +wumpus(6), adventure(6), zork(6), rogue(6), nethack(6). diff --git a/advent.txt b/advent.txt deleted file mode 100644 index 7280b03..0000000 --- a/advent.txt +++ /dev/null @@ -1,39 +0,0 @@ -= advent(6) = -:doctype: manpage - -== NAME == -advent - Colossal Cave Adventure - -== SYNOPSIS == -*advent* [-l logfile] [-o] - -== DESCRIPTION == -The original Colossal Cave Adventure from 1976 was the origin of all -text adventures, dungeon-crawl (computer) games, and computer-hosted -roleplaying games. - -This is the last version released by Crowther & Woods, its original -authors, in 1995. It has been known as "adventure 2.5" and "430-point -adventure". To learn more about the changes since the 350-point -original, type 'news' at the command prompt. - -There is an 'adventure' in the BSD games package that is a C port by -Jim Gillogly of the 1976 ancestor of this game. To avoid a name -collision, this game builds as 'advent', reflecting the fact that the -PDP-10 on which it originally ran limited filenames to 6 characters. - -This version is released as open source with the permission and -encouragement of the original authors. - -== OPTIONS == - --l:: Log commands to specified file. - --o:: Old-style. Restores original interface, no prompt. - -== REPORTING BUGS == -Report bugs to Eric S. Raymond . The project page is -at http://catb.org/~esr/advent - -== SEE ALSO == -wumpus(6), adventure(6), zork(6), rogue(6), nethack(6). diff --git a/history.adoc b/history.adoc new file mode 100644 index 0000000..f64fef9 --- /dev/null +++ b/history.adoc @@ -0,0 +1,150 @@ += 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. + +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 +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 +(some sources, apparently erroneously, say 1976). That version is +sometimes known as 350-point Adventure. + +Between 1977 and 1995 Crowther and Woods themselves continued to work +intermittently on the game. This main line of development culminated +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". + +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. + +The history of these non-mainline versions is complex and +murky. Functional differences were generally marked by changes in the +maximum score as people added puzzles and rooms; however, multiple +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 <>. + +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. + +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 +later, in February 2017, while doing some casual research into the +history of text adventure games, I looked through some source code at +<> and was delighted to learn of Adventure 2.5, a version of the +Crowther-Woods mainline later than I had ever played. + +Adventure 2.5 had been shipped long enough ago that today's conventions of +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. + +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 +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. + +== Sources == + +[bibliography] + +- [[[IFA]]] http://rickadams.org/adventure/ + +- [[[[DA]]] http://www.filfre.net/sitemap/ + +- [[[SN]]] http://www.digitalhumanities.org/dhq/vol/1/2/000009/000009.html diff --git a/history.txt b/history.txt deleted file mode 100644 index f64fef9..0000000 --- a/history.txt +++ /dev/null @@ -1,150 +0,0 @@ -= 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. - -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 -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 -(some sources, apparently erroneously, say 1976). That version is -sometimes known as 350-point Adventure. - -Between 1977 and 1995 Crowther and Woods themselves continued to work -intermittently on the game. This main line of development culminated -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". - -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. - -The history of these non-mainline versions is complex and -murky. Functional differences were generally marked by changes in the -maximum score as people added puzzles and rooms; however, multiple -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 <>. - -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. - -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 -later, in February 2017, while doing some casual research into the -history of text adventure games, I looked through some source code at -<> and was delighted to learn of Adventure 2.5, a version of the -Crowther-Woods mainline later than I had ever played. - -Adventure 2.5 had been shipped long enough ago that today's conventions of -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. - -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 -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. - -== Sources == - -[bibliography] - -- [[[IFA]]] http://rickadams.org/adventure/ - -- [[[[DA]]] http://www.filfre.net/sitemap/ - -- [[[SN]]] http://www.digitalhumanities.org/dhq/vol/1/2/000009/000009.html