Colossal Cave Adventure

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Colossal Cave Adventure
ADVENT -- Will Crowther's original version (vector).svg
Opening page of Will Crowther's original Adventure running on a PDP-10
Developer(s) William Crowther and Don Woods
Publisher(s) CRL
Platforms Many (initially PDP-10)
Release date(s) 1976 (Crowther); 1977 (Woods)
Genre(s) Adventure game
Mode(s) Single player

Colossal Cave Adventure (also known as ADVENT, Colossal Cave, or Adventure)[1] is one of the earliest computer adventure games and a precursor form of role playing video game.[2] The original version was designed by Will Crowther, a programmer and caving enthusiast who based the layout on part of the Mammoth Cave system in Kentucky.[3]

History

Will Crowther was a programmer at Bolt, Beranek & Newman, which developed the ARPANET (a forerunner of the Internet). Crowther was an experienced caver, who applied his experience in Mammoth Cave (in Kentucky) to create a game that he could enjoy with his young daughters.[4]

Crowther had explored the Mammoth Cave in the early 1970s, and created a vector map based on surveys of parts of the real cave, but the text game is a completely separate entity, created during the 1975-76 academic year[2] and featuring fantasy elements such as an axe-throwing dwarf and a magic bridge.

Crowther/Woods Adventure (1977) running on a PDP-10

The version that is best known today was the result of a collaboration with Don Woods, a graduate student who in 1976 discovered the game on a computer at Stanford University[5] and during 1976–1977 made significant expansions and improvements, with Crowther's blessing. A big fan of Tolkien, he introduced additional fantasy elements, such as elves and a troll.

When Roberta Williams and her husband Ken discovered the game, and were subsequently unable to find anything similar, they were inspired to create their own software house, founding On-Line Software (later Sierra Online, and then Sierra Entertainment), which created the first graphical adventure game (Mystery House), and quickly became a dominant player in the entertainment software market for the next two decades, creating successful adventure series such as King's Quest, Space Quest, and Leisure Suit Larry.

Technology

Crowther's original game consisted of about 700 lines of FORTRAN code,[6] with about another 700 lines of data, written for BBN's PDP-10 timesharing computer. The data included text for 78 map locations (66 actual rooms and 12 navigation messages), 193 vocabulary words, travel tables, and miscellaneous messages. On the PDP-10, the program loads and executes with all its game data in memory. It required about 60k words (nearly 300kB) of core memory, which was a significant amount for PDP-10/KA systems running with only 128k words.

Woods also developed his game in FORTRAN for the PDP-10.[7][8] His work expanded Crowther's game to approximately 3000 lines of code and 1800 lines of data. The data consisted of 140 map locations, 293 vocabulary words, 53 objects (15 treasure objects), travel tables, and miscellaneous messages. Like Crowther's original game, Woods' game also executed with all its data in memory, but required somewhat less core memory (42k words) than Crowther's game.

The Adventure FORTRAN code took full advantage of the machine-dependent 36-bit architecture of the PDP-10. Each PDP-10 word (an integer) packed five 7-bit ASCII characters in the high order 35 bits of a 36-bit word, and programmers could compare integers in FORTRAN directly with five-character strings. This architecture was evident to the game player too, since the game only distinguished the first five characters of all the vocabulary words it understood. The "monitor" (TOPS-10) operating system for the PDP-10 also had the platform-dependent ability to save, restore, and restart execution of a program's core memory image, even after a program terminated, known today as application checkpointing. This feature was the original basis for saving, or suspending, an adventure game. Suspending a game in this manner saved an entire copy of the game program to disk, rather than just player specific data. These PDP-10 dependencies made it difficult to port the Crowther/Woods Adventure to other platforms.

Later versions of the game moved away from general purpose programming languages such as C or Fortran, and were instead written for special interactive fiction engines, such as Infocom's Z-machine.

Later versions

Colossal Cave Adventure running on a PDP-11/34 displayed on the minicomputer's VT100 serial console.
ADVENT running on an Osborne 1 Computer circa 1982
Later versions of the game added pictures, such as this MS-DOS version by Level 9 Computing.

Many versions of Colossal Cave have been released, generally titled simply Adventure, or adding a tag of some sort to the original name (e.g. Adventure II, Adventure 550, Adventure4+, ...). Large value numeric tags denoted the maximum score a player can achieve after playing a perfect game. Hence, Crowther/Woods Adventure, the first with a point scoring system, is also synonymous with Adventure 350. Russel Dalenberg's Adventure Family Tree page provides the best (though still incomplete) summary of different versions and their relationships.[9]

Until Crowther's original version was found,[10] the "definitive original" was generally considered to be the version that Don Woods expanded in 1977. As part of that expansion, Woods added a scoring system that went up to 350 points. Extended versions with extra puzzles go up to 1000 points or more. The AMP MUD had a multi-player Colossal Cave.

In 1977, Jim Gillogly of the RAND Corporation spent several weeks porting the code from FORTRAN to C under Unix, with the agreement of both Woods and Crowther. It can be found as part of the BSD Operating Systems distributions, or as part of the "bsdgames" package under most Linux distributions, under the command name "adventure".

The game was also ported to Prime Computer's super-mini running PRIMOS in the late 1970s, utilising FORTRAN IV, and to IBM mainframes running VM/CMS in late 1978, utilizing PL/I. In the late 1970s a freeware Commodore PET version was produced by Jim Butterfield; some years later this version was ported to the Commodore 64.

The Software Toolworks in 1981 released The Original Adventure. Endorsed by Crowther and Woods, it was the only version for which they received royalties.[11] Microsoft released a version of Adventure in 1981 with its initial version of MS-DOS 1.0 as a launch title for the IBM PC, making it the first game available for the new computer.[12] It was released on a single-sided 5​14 inch disk, required 32K RAM, and booted directly from the disk; it could not be opened from DOS. Microsoft's Adventure contained 130 rooms, 15 treasures, 40 useful objects and 12 problems to be solved. The progress of two games could be saved on a diskette.[13]

Microsoft also released versions of Adventure in 1980 for the Apple II Plus and TRS-80 computers.

A generic version of the game was developed in 1981 by Graham Thomson for the ZX-81 as the Adventure-writing kit. This stripped-down version had space for 50 rooms and 15 objects and was designed to allow the aspiring coder to modify the game and thus personalize it. The game's code was published in April 1982.[14]

Dave Platt's influential 550 points version (released in 1984) was innovative in a number of ways. It broke away from coding the game directly in a programming language such as FORTRAN or C. Instead, Platt developed A-code – a language for adventure programming – and wrote his extended version in that language. The A-code source was pre-processed by a FORTRAN 77 (F77) "munger" program, which translated A-code into a text database and a tokenised pseudo-binary. These were then distributed together with a generic A-code F77 "executive", also written in F77, which effectively "ran" the tokenised pseudo-binary.

Platt's version was also notable for providing a randomised variety of responses when informing the player that, for example, there was no exit in the nominated direction, introducing a number of rare "cameo" events, and committing some outrageous puns.

Memorable words and phrases

Xyzzy

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

"Xyzzy" is a magic word that teleports the player between two locations ("inside building" and the "debris room"). Entering the command from other locations produces the disappointing response "Nothing happens." As an in-joke, many later computer programs (not only games but also applications) include a hidden "xyzzy" command – the results of which range from the humorous to the straightforward.[15] Explanations of the origin and meaning of the term are similarly wide-ranging, but Crowther has said "I made it up out of whole cloth just for the game", and "I was considering working for XEROX at the time, which probably suggested starting with an X."[2]

Maze of twisty little passages

"You are in a maze of twisty little passages, all alike" is a memorable line from the game, popular in hacker culture (where "passages" may be replaced with a different word, as the situation warrants). This phrase came to signify a situation when whatever action is taken does not change the result.[citation needed] The line was used by Nick Montfort in the title for his book Twisty Little Passages: An Approach To Interactive Fiction, a history of the interactive fiction genre.[2][3]

The "all alike" maze was created by Crowther; Woods created a second maze, described as "all different".[2] In the "all different" maze, the player's current location is described in eleven different ways with each description providing a clue as to available exits from that particular point (e.g., "little maze of twisting passages" may have an exit north, while "maze of little twisty passages" may have exits north and south):

  • Little maze of twisting passages
  • Little maze of twisty passages
  • Little twisty maze of passages
  • Maze of little twisting passages
  • Maze of little twisty passages
  • Maze of twisting little passages
  • Maze of twisty little passages
  • Twisting little maze of passages
  • Twisting maze of little passages
  • Twisty little maze of passages
  • Twisty maze of little passages

Don Woods was doing doctoral research in graph algorithms, and he designed this maze as (almost) a complete graph, with two exceptions important to gameplay.

Plugh

When the player arrives at a location known as "Y2", the player may (with 25% probability) receive the message "A hollow voice says 'PLUGH'." This magic word takes the player between the rooms "inside building" and "Y2". A popular theory is that the word is short for "plughole" (allegedly a caver term) but no evidence supports this claim, and the game does not feature a plughole in this location.

Some other games recognize "PLUGH" and will respond to it, usually by making a joke.[16] The adventure game Prisoner 2 contained a cavern with the word "PLUGH" written on the wall; if the player typed this word into the command parser, he was sent back to his starting point. The TRS-80 adventure game Haunted House – one of the few commercial adventure games playable with only 4K of RAM – requires the player to type PLUGH to enter the haunted house. If the player types PLUGH inside the haunted house, the game replies, "Sorry, only one PLUGH per customer." Another TRS-80 game, Bedlam, replies to PLUGH with "You got better."


Plugh.com[17] gives further historical background to the name, allegedly by Don Woods.

Plover

"PLOVER" is a magic word that transports the player between the "plover" room, and the "Y2" room. Outside of those rooms, "plover" (like "building") is one of many destination words that players may use to reach an adjacent location. Since the game uses "plover" in multiple contexts, discovering the magic word context is a difficult, if not accidental, challenge.

Bedquilt

There is a degree of randomness in the Bedquilt area. If a player persistently tries going in a single direction then they will usually be returned to Bedquilt, but will occasionally be randomly transported to another room. Players can also reliably navigate from Bedquilt to adjacent rooms. For example, "slab" will usually get a player from Bedquilt to the Slab Room.

Fee Fie Foe Foo

One of the treasures the player needs to collect are golden eggs that can be found in the Giant room. If you say the magic phrase written on the wall of that room (one word at a time), "Fee Fie Foe Foo", the eggs will be moved back to the Giant room, wherever they are and wherever you are. For example:

  • Take the eggs from the Giant room and say the magic phrase. The program replies that the eggs have disappeared. If you go back to the Giant room, you see that they have gone back there.
  • Take the eggs from the Giant room and leave them behind somewhere. Say the magic phrase. The program replies "Done!" without revealing exactly what has happened.

You can use the golden eggs to pay the troll later by throwing them at him. Thanks to the magic phrase, you can get the eggs back.

If you say "fum" instead of "foo", the game commands you to start the phrase over.

Other lines

Other lines from the game are:

  • Rubbing the electric lamp is not particularly rewarding. Anyway, nothing exciting happens.
  • A huge green fierce snake bars the way!
  • (When trying to kill the snake, a dragon, or such:) With what? Your bare hands?
  • (When trying to kill a dragon, and answering "yes" to the above reply:) Congratulations! You have just vanquished a dragon with your bare hands! (Unbelievable, isn't it?)
  • (When trying to kill the bear:) With what? Your bare hands? Against *his* bear hands??
  • (If you try to feed the bird:) It's not hungry (it's merely pinin' for the fjords). – a reference to Monty Python's Dead Parrot sketch
  • (If you hit the bear after feeding it:) The bear is confused; he only wants to be your friend.
  • The game responds to a frustrated player's swearing with Watch it! and to commands to eat inappropriate things (e.g., the bird, the snake) with I think I just lost my appetite.
  • A sign posted on the bridge reads, "Stop! Pay troll!"
  • (If you type the word blast:) Blasting requires dynamite.

Continued development

According to author Dale Peterson, Don Woods continued releasing updated editions through to at least the mid-1990s.[18]

Dave Platt

Lua error in package.lua at line 80: module 'strict' not found. Dave Platt's 550-point version of Colossal Cave – perhaps the most famous variant of this game other than the original, itself a jumping-off point for many other versions including Michael Goetz's 581 point CP/M version – included a long extension on the other side of the Volcano View. Eventually, the player descends into a maze of catacombs and a "fake Y2". If the player says "plugh" here the player is transported to a "Precarious Chair" suspended in midair above the molten lava. (The 581-point version was on SIGM011 from the CP/M Users Group, 1984.)

Critical analysis

Graham Nelson's Inform Designer's Manual presents "Advent" as the pioneer of the three-part structure typical of 1980s adventure games; he identifies the "prologue" with the aboveground region of the game "whose presence lends a much greater sense of claustrophobia and depth to the underground bulk of the game", the transition to the middle game as the "passage from the mundane to the fantastical", and the endgame or "Master Game".[19]

In popular culture

Adventure is a key plot point in episode 5 of the AMC TV series, Halt and Catch Fire, a period drama taking place in the early days of the personal computing revolution. The chief software designer uses the game as a competency test to determine which programmers will remain on the team. Those who hack the code and find the backdoors are retained.[20][21]

See also

References

  1. Crowther, 1976; Crowther & Woods, 1977.
  2. 2.0 2.1 2.2 2.3 2.4 Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 Montfort, Nick (2003). Twisty Little Passages: An Approach To Interactive Fiction. Cambridge: The MIT Press. ISBN 0-262-13436-5
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Crowther W., Crowther's original FORTRAN source code for Adventure, 1976
  7. Crowther W., Woods D., PDP-10 FORTRAN source code advent-original.tar.gz, 1977
  8. Crowther W., Woods D., PDP-10 FORTRAN source code adv350-pdp10.tar.gz, 1977
  9. Lua error in package.lua at line 80: module 'strict' not found.]
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Thompson, Graham. Scot, Duncan, ed. Adventure. Your Computer. Vol.2, No.4. Pp.24-27. April 1982.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found. A web page giving responses to "plugh" in many games of interactive fiction
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Peterson, Dale: "Genesis II: Creation and Recreation with Computers", (1983)
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. http://tvtropes.org/pmwiki/pmwiki.php/Series/HaltAndCatchFire author=multiple
  21. http://mashable.com/2014/06/30/halt-and-catch-fire-episode-5-recap-im-your-sledgehammer

External links