(Deleted from Intel site, recovered thanks to archive.org!)
MAGIC WORD XYZZY
For computer geeks of a certain age, such as yours truly, it was an opportunity to relive the glorious past when Dennis Jerz announced that an early 1977 version of Will Crowther’s Adventure game source code had been discovered. Adventure was one of the first puzzle-exploration games and it not only captured the imagination of computer users worldwide when it became more widespread in 1978, but it inspired many future games such as the popular Zork and even many of today’s graphics-heavy computer games. Not bad for a text-only game written in Fortran. Right, Fortran.
A HOLLOW VOICE SAYS ‘PLUGH’
Crowther’s game was inspired by Mammoth Caves, a real-life cave system in Kentucky. In the game, you explore the cave and give one or two word commands to move or perform actions. As you go, you collect items that may or may not be useful in other parts of the game, and often there is a sequence you need to follow in order to complete a task. Don Woods expanded the game and the version most well known was released in 1978.
I first encountered Adventure soon after I joined the VAX Fortran compiler project in 1978, as it had been released on a DECUS (Digital Equipment Computer Users Society) library tape and made its way into the compiler’s test system, where a script had it play a perfect game. (Factoid: Another game in the VAX Fortran test system was a program that played Scrabble against a human opponent. When the VAX-11/730, a low-cost model, was being tested in 1980, we were puzzled to find that the 730 played a different game than the previous 750 and 780 models did. It turned out that the program had a 30-second limit to its search for the optimal play, and the 730 was enough slower that it exceeded this on certain plays, leading it to choose a different word.)
Like many others, I spent many hours exploring the game and drawing up a “map” of the various rooms with notes as to what commands were valid and what to do in each room. Many of the game’s phrases and “magic words” became part of the programmer’s vernacular in the following years.
I found it interesting to compare the “original” version of the code with the one I knew. For example, the original did have the set of eight connected rooms all of which described themselves as “You are in a maze of twisty little passages, all alike”, but lacked the additional set of the newer version which were variously “You are in a twisty maze of little passages, all different”, “You are in a maze of little twisty passages, all different”, etc. (This inspired my usual description of Linux as “A maze of twisty little distros, all different.”)
It was amusing to see the Slashdot crowd examine the Fortran code and try to make sense of constructs many had never before seen, such as computed GOTO and arithmetic IF, not to mention such oddities (and extensions) as comparing a REAL variable to a five-character string (Crowther developed the code on the 36-bit DEC PDP-10 which had 6-bit characters, uppercase only).
If you’re interested in learning more, or want to play the game yourself, explore Rick Adams’ Colossal Cave Adventure Page. For building with Intel Fortran, the “Adventure 6” version can be used. Turn off array bounds checking and note that the ADVSETUP program needs to be built and run once before running the game. Happy spelunking!