Slashdot Mirror


Crowther's Original Adventure Source Code Found

drxenos writes "I don't know how many of you are fans of old-school text adventures (interactive fiction), but Will Crowther's original Fortran source code has been located in a backup of Don Woods's old student account. For fans like me, this is like finding the Holy Grail."

3 of 309 comments (clear)

  1. I must not be old enough by ArcadeX · · Score: 3, Informative

    Had to go to wiki for this one...

    William ("Willie" or "Will") Crowther (born 1936) is a computer programmer and caver. He is best known as the co-creator of Colossal Cave Adventure, a seminal computer game that influenced the first decade of game design and created a new game genre, text adventures.

    [edit] Biography
    During the early 1970s Crowther worked at defense contractor and Internet pioneer Bolt, Beranek and Newman (BBN). Following his divorce from his wife Patricia, Crowther began using his spare time to develop a simple text-based adventure game in FORTRAN on BBN's PDP-10. He created it as a diversion his daughters Sandy and Laura could enjoy when they came to visit. (Montfort, 2003, pp. 85-87)

    In Adventure, the player moves around an imaginary cave system by entering simple, two-word commands and reading text describing the result. Crowther used his extensive knowledge of cave exploration as a basis for the game play, and there are many similarities between the locations in the game and those in Mammoth Cave, particularly its Bedquilt section. (Montfort, 2003, p. 88) In 1975 Crowther released the game on the early ARPANET system, of which BBN was a prime contractor. (Montfort, 2003, p. 89)

    In the Spring of 1976, he was contacted by Stanford researcher Don Woods, seeking his permission to enhance the game. Crowther agreed, and Woods developed several enhanced versions on a PDP-10 housed in the Stanford Artificial Intelligence Laboratory (SAIL) where he worked. (Montfort, 2003, p. 89) Over the following decade the game gained in popularity, being ported to many operating systems, including personal-computer platform CP/M.

    The basic game structure invented by Crowther (and based in part on the example of the ELIZA text parser) was carried forward by the designers of later adventure games. Marc Blank and the team that created the Zork adventures cite Adventure as the title that inspired them to create their game. They later founded Infocom and published a series of popular text adventures.

    The location of the game in Colossal Cave was not a coincidence. Will and his first wife Pat Crowther were active and dedicated cavers in the 1960s and early 1970s--both were part of many expeditions to connect the Mammoth and Flint Ridge cave systems. Pat played a key role in the September 9, 1972 expedition that finally made the connection. (Brucker, 1976, p. 299)

    Will has also played an important role in the development of rock climbing in the Shawangunks in New York State. He began climbing there in the 1950s and continues to climb today. He made the first ascent of several classic routes including Arrow, Hawk, Moonlight, and Senté. Some of these routes sparked controversy because protection bolts were placed on rappel; a new tactic that Crowther and a several others began to use at the time. The community reaction to this technique was an important part of the evolution of climbing ethics in the Shawangunks and beyond.

    --
    An I.T. motto in the hands of an idiot is a dangerous thing...
    1. Re:I must not be old enough by Mr.+Slippery · · Score: 5, Informative

      what the fuck does rock-climbing have to do with "ethics"?

      The same thing leaving a campsite better than you found it has to do with ethics, or not littering has to do with ethics. Altering the environment and depriving others of potential experiences is an ethical issue.

      A quick Googling will reveal that "climbing ethics" is not an invention of the Wikipedia author, but is an active area of discussion among climbers.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
  2. Re:A good example of how coding has progressed by russotto · · Score: 4, Informative
    The code you're quoting isn't grossly messy because of the GOTO statements. It's grossly messy because PDP-10 Fortran didn't have a CHARACTER type -- instead, you could pack 5 characters to a 36-bit integer, with the low-bit unused. The M2 array contained integer masks with one bit set, the low bit of one of the characters. Multiplying that mask by octal 177 got you a mask which selected a single character, except for the first character where the multiplication would overflow. The octal constant 201004020100 is 5 space characters. The "S" flag indicated whether a space had been found yet.


    So the little snippet you posted goes to label 3 if the current character (selected by J for the integer and K for the character within the integer) is a space, and to 2 if no space has been found yet, and continues without branching if a space has been found but the current character is not a space.


    If A were, more sensibly, a character array, the above would be written as

                    IF(A(J:J).EQ.' ')GOTO 3
                    IF(S.EQ.0) GOTO 2

    which is no problem to read at all, despite the gotos.