RSS

Monthly Archives: June 2011

The Completed Adventure, Part 3

The PDP-10 system on which Don Woods completed Adventure was an expensive resource shared by many; Stanford did not purchase it to enable virtual spelunking. Perhaps to head off the inevitable complaints of his superiors, Woods built into the program the concept of “Cave Hours.” If someone tried to play during times of peak demand — by default from 8:00 am to 6:00 pm, excluding weekends and holidays — she was allowed only to take a “short exploration,” limited (by default) to 30 minutes and without the option to save her progress. Some design choices also seem calculated to encourage players to play in shorter sessions over a period of weeks or months rather than binging for hours at a time. For instance, during non-peak periods a player can save her progress, but she is forced to immediately quit the game upon doing so, and cannot restore her session and resume playing for 90 minutes. (Of course, things like this also served, in keeping with the philosophy described in my last post, just to make the game hard.)

These restrictions could be altered by an administrator by entering “MAGIC MODE” at an in-game prompt. If she responds correctly to what follows she becomes a sort of root user, able to change the program’s settings:

MAGIC MODE

ARE YOU A WIZARD?   

YES

PROVE IT!  SAY THE MAGIC WORD!

DWARF

THAT IS NOT WHAT I THOUGHT IT WAS.  DO YOU KNOW WHAT I THOUGHT IT WAS?

NO

NODDG

BMAFH

OH DEAR, YOU REALLY *ARE* A WIZARD!  SORRY TO HAVE BOTHERED YOU . . . 
DO YOU WISH TO SEE THE HOURS? 
YES

         Mon - Fri:  Open all day
         Sat - Sun:  Open all day
         Holidays:   Open all day
DO YOU WISH TO CHANGE THE HOURS?   
NO
DO YOU WISH TO (RE)SCHEDULE THE NEXT HOLIDAY?
NO
Length of short game (null to leave at 30):

NEW MAGIC WORD (NULL TO LEAVE UNCHANGED):    

NEW MAGIC NUMBER (NULL TO LEAVE UNCHANGED):  

Latency for restart (null to leave at 90):

DO YOU WISH TO CHANGE THE MESSAGE OF THE DAY?
NO
OKAY.  YOU CAN SAVE THIS VERSION NOW.   

BE SURE TO SAVE YOUR CORE-IMAGE... 
CPU time 0.01   Elapsed time 33.98

EXIT

The administrator must work out the proper response using a complex cipher algorithm based not only on the randomly chosen sequence of characters the game sends to her but also on the exact current system time. This portion of the source code is obfuscated as much as possible for obvious reasons, although I’m sure the sufficiently determined could work it out. Presumably the algorithm must have been passed secretly among administrators, but this is one aspect of Adventure I’ve never heard too much about. If anyone knows anything more about how this was generally handled, by all means leave a comment to tell us about it.

One interesting aspect of the cave hours system is the way that it treats Adventure not as a narrative or even as a game, but rather as a location — specifically, as a sort of virtual amusement park. The visitor who attempts to enter during peak hours is told, “I’M TERRIBLY SORRY, BUT COLOSSAL CAVE IS CLOSED,” followed by details of its “open hours.” This idea is echoed in the endgame, as the player suddenly finds herself dropped into the control room of this underground park. It all serves to emphasize again that Adventure is ultimately all about location, location, location — and that Don Woods apparently had a bit of an amusement-park fetish.

Whatever its other implications, system administrators would soon have reason to bless Woods for including cave hours, even as they probably cursed him for ever unleashing Adventure upon them in the first place. Because, you see, Adventure turned out to be popular — really, really popular. Solving it became the obsession of hackers across the country and, eventually, all over the world; legend has it that IT departments and university computer-science departments pretty much stopped doing much of anything else until they had won. Even disallowing play during business hours is after all of limited utility when all of the people who are supposed to be accomplishing useful things during said business hours are passed out at their desks after playing Adventure all night. One apocryphal quote claims that Adventure set the entire computing industry back by two weeks.

And once that crisis was passed, lots of hackers in lots of places promptly started trying to make their own versions. Adventure-like games became Adventure games became adventure games, and a genre was born. For several years the most complex examples of the new form continued to appear on larger institutional systems in places like MIT University, the Stockholm Computer Center, and Cambridge University. Jason Dyer has been doing a great job of covering that aspect of early adventure gaming, digging into some largely forgotten works as well as the heavy hitters like Zork. At least for now, though — and, as always, as time permits — I want to look at how the innovations of Crowther and Woods, not to mention those of Gregory Yob and Don Rawitsch and so many others, began to come home, on the first practical home computers that were appearing at the same time that Adventure was paralyzing the world of the institutional computer.

Before I say goodbye to Adventure, here’s a final tally of who created what.

Crowther:
basic concept of the text adventure
compass directions
the dwarves
“Maze of Twisty Little Passages, all alike”
geography and some puzzles up to the “Complex Junction”

Woods:
inventory limit
“Maze of Twisty Little Passages, all different”
cave hours
geography and puzzles from the “Complex Junction”
scoring system
save system
the pirate
limited lamp battery life

You have a lot to answer for, Don Woods! But we love you anyway… at least you didn’t implement any hunger timers.

 

Tags:

The Completed Adventure, Part 2

(Warning: spoilers galore in this one, folks.)

Woods replaced virtually none of Crowther’s original text in Adventure, but simply built upon it, by fleshing out Crowther’s minimalist help text and of course adding many more locations to explore. The contrast in the two men’s coding styles has no parallel in their prose, as Woods ably continues in Crowther’s terse but just-evocative-enough style. The player notices no obvious point where Crowther left off and Woods picked up, and, indeed, would probably never guess that the latter parts were written by a different person entirely.

If we insist on finding differences, we might point to Woods’s willingness to indulge in more fantastic and anachronistic elements, as well as a willingness to allow himself a bit more poetic license here and there. As an example in the former category, the vending machine selling batteries feels like something Crowther would never have added. (Of course, it’s also true that Crowther’s lamp never ran out of batteries in the first place, because it was almost certainly conceived by him as a carbide lamp of the sort he took with him on his caving expeditions rather than a battery-powered job; in this case the very different backgrounds of the two men do affect the finished work.) (Edit: Actually, it seems the lamp was electric in Crowther’s original. See the response to rub: “RUBBING THE ELECTRIC LAMP IS NOT PARTICULARLY REWARDING.” Lucky I qualified my “certainly” with an “almost…”) In the latter category, we have the most elaborate and extended room description in the entire game, for the “Breath-Taking View” located deep, deep within the cave complex:

YOU ARE ON THE EDGE OF A BREATH-TAKING VIEW.  FAR BELOW YOU IS AN
ACTIVE VOLCANO, FROM WHICH GREAT GOUTS OF MOLTEN LAVA COME SURGING    
OUT, CASCADING BACK DOWN INTO THE DEPTHS.  THE GLOWING ROCK FILLS THE 
FARTHEST REACHES OF THE CAVERN WITH A BLOOD-RED GLARE, GIVING EVERY-  
THING AN EERIE, MACABRE APPEARANCE.  THE AIR IS FILLED WITH FLICKERING
SPARKS OF ASH AND A HEAVY SMELL OF BRIMSTONE.  THE WALLS ARE HOT TO   
THE TOUCH, AND THE THUNDERING OF THE VOLCANO DROWNS OUT ALL OTHER
SOUNDS.  EMBEDDED IN THE JAGGED ROOF FAR OVERHEAD ARE MYRIAD TWISTED  
FORMATIONS COMPOSED OF PURE WHITE ALABASTER, WHICH SCATTER THE MURKY  
LIGHT INTO SINISTER APPARITIONS UPON THE WALLS.  TO ONE SIDE IS A DEEP
GORGE, FILLED WITH A BIZARRE CHAOS OF TORTURED ROCK WHICH SEEMS TO    
HAVE BEEN CRAFTED BY THE DEVIL HIMSELF.  AN IMMENSE RIVER OF FIRE
CRASHES OUT FROM THE DEPTHS OF THE VOLCANO, BURNS ITS WAY THROUGH THE 
GORGE, AND PLUMMETS INTO A BOTTOMLESS PIT FAR OFF TO YOUR LEFT.  TO   
THE RIGHT, AN IMMENSE GEYSER OF BLISTERING STEAM ERUPTS CONTINUOUSLY  
FROM A BARREN ISLAND IN THE CENTER OF A SULFUROUS LAKE, WHICH BUBBLES 
OMINOUSLY.  THE FAR RIGHT WALL IS AFLAME WITH AN INCANDESCENCE OF ITS 
OWN, WHICH LENDS AN ADDITIONAL INFERNAL SPLENDOR TO THE ALREADY  
HELLISH SCENE.  A DARK, FOREBODING PASSAGE EXITS TO THE SOUTH.


It’s somehow hard to imagine Crowther writing that; it’s a long way indeed from the humble wellhouse by the roadside in Kentucky at which the player began. It’s often been compared with the descriptions of Mount Doom found in The Return of the King, but Woods, while admitting he had read Tolkien before working on Adventure, has denied using him as a conscious inspiration. Oddly, this room has no practical function whatsoever. Perhaps Woods conceived of it as a reward of sorts for the persistent player who made it this far underground.

And what sort of challenges must a player who made it so far have overcome? Well, I divide them into three categories.

First there are the logistical challenges — or, if you prefer, the emergent challenges. These involve the practical difficulties of getting about in the 140 intricately interconnected rooms that make up Adventure‘s storyworld and returning all 15 treasures found therein to the wellhouse: managing the lamp’s limited power reserves, dealing with the limited carrying capacity of the player’s avatar, and, most of all, mapping, mapping, mapping. A player who wants to get anywhere in the game has to plan her underground expeditions much like one of Crowther’s caving teams would have. I’ve already stated my belief that, at least in Crowther the caver’s mind, this was the real heart of the game, its real challenge. If that seems a stretch, imagine playing Adventure for the first time in 1976 or 1977, with no knowledge about how text-adventure geographies are supposed to work; imagine trying to figure out how to map that maze when the old dropping-items-in-each-room trick wasn’t second nature. Modern IF may have largely rejected many of the tropes found under this category, but they are a fundamental part of what Adventure really is, and, I would argue, even an important part of the appeal it held for so many back in the days of yore.

Then there are the good puzzles. These are simple, straightforward challenges, solvable with a bit of basic logic and common sense. So, you must find another exit from the cave since you can’t carry the gold nugget (must be one hell of a nugget!) up the stairs; you must employ the trident to pry open the giant clam shell; etc. In contrast to the sort of conundrums Infocom and others would be offering up in just a few years, these are gentle indeed.

But then we come to the bad puzzles. There aren’t too many of them, but they’re a scary lot. There’s the dragon puzzle: when the player types, “KILL DRAGON,” the game responds, “WITH WHAT? YOUR BARE HANDS?” Whereupon she must type, “YES,” to get the reply, “CONGRATULATIONS! YOU HAVE JUST VANQUISHED A DRAGON WITH YOUR BARE HANDS! (UNBELIEVABLE, ISN’T IT?)” In presaging some of the ridiculous puzzles in the inexplicably delightful The Hitchhiker’s Guide to the Galaxy of many years later, this is almost amusing enough to be forgivable. Not so the climactic puzzle, in which the player is expected to intuit a heretofore nonexistent property of the black rod she’s been toting around almost since the game began. She’s expected to “BLAST” the control room of what has now been revealed to be a sort of amusement park rather than a natural cave complex. She can only “BLAST,” mind you. No “BLAST WITH ROD,” no “WAVE ROD.” Unless I’m missing something, this action and this phrasing of it are utterly unmotivated. It’s perhaps the most egregious example of guess the verb and just about the worst puzzle in general I’ve ever seen, playing like a satire of the worst of old-school text-adventure tropes.

Upon encountering such delights, one is left shaking one’s head and trying to figure out how we got from category-two to category-three puzzles, with no gradation in between. It’s particularly surprising to encounter puzzles like these in light of the fact that in some ways Adventure is surprisingly friendly and progressive; consider, for example, the automated hint system that dispenses clues here and there when the player has floundered long enough in one of its trickier sections.

We might find an answer if we consider the capabilities of the Adventure program itself. Woods was working with an extremely simplistic world model joined to a two-word parser. Such a system imposes a real limit on how intricate a puzzle an author can devise. Even some of Adventure‘s better puzzles are made more frustrating than they should be by parser limitations. Consider the case of the bear that the player can tame and lead around to scare away the troll. It’s kosher enough as a puzzle — except that the player must divine the syntax “TAKE BEAR” (presumably not quite what she’s actually doing) to accomplish it. Perhaps Adventure‘s underlying technology can really only support two kinds of puzzles: the extremely simple and the blatantly unfair. Guess the verb, after all, is always easy to code.

And of course we have to consider cultural differences. There seems to have been a real sense on everyone’s part that Adventure should be hard, that getting to the end of it should be a huge accomplishment. Thus all the emphasis the game places on scoring points. Like with the coin-op arcade games of the day, players would compare scores for sessions that resulted in eventual “defeat,” and would be satisfied with at least getting further than the rest of the office had managed. Less competitive types, meanwhile, could form teams to work on the game together, a natural result of the social environment in which PDP-10s were inevitably placed.

Finally, the enterprising could always turn to the freely distributed source code. Considering that most of the first people to play the game were hardcore hackers, I suspect that this was the way that the absurd “BLAST” puzzle first got solved. (EDIT: Or perhaps with a machine-language debugger. Tim Anderson states in Infocom’s “History of Zork” that this was the method used to figure out how to get the “last lousy point.” It does appear from anecdotes like these that Adventure was first distributed only in binary format, and that the source came afterward.)

I’ve gone on about these things at length because I think they will be relevant not just for understanding Adventure but also for understanding many of the games that would come afterward, many of which would be so infuriating that plenty of people even today can’t mention text adventures without cursing. Next time I’ll finish up this little miniseries on Adventure by talking about the game’s rapturous reception and legacy — and I’ll provide a final tally of exactly who was responsible for what parts of the final design, so you can know to whom to send your bouquets and your brickbats.

 

Tags:

The Completed Adventure, Part 1

Don Woods was a graduate student in computer science at Stanford University when he first heard about Adventure in early 1977 from another student who had found it on, of all places, the Stanford Medical Center’s computer system. How it got from Crowther’s employer at the time he wrote it, BBN Technologies in Boston, to northern California is likely to remain a mystery. We do know, however, that Woods was intrigued enough by the game to secure a copy and install it on the PDP-10 minicomputer at the Stanford Artificial Intelligence Laboratory (SAIL), the place where he spent most of his time hacking. After plumbing its (limited) depths as a player, Woods conceived the idea of picking up where Crowther had left off and finishing the thing. Unfortunately, he had only the binary executable, not the FORTRAN source code. What followed is one of the legendary anecdotes of hacker lore, but it’s amusing enough that I’ll repeat it here.

Crowther’s program — as you can verify for yourself if you like — contains only one clue about its origin. In the in-game instructions it says, in Crowther’s inimitable terse diction, “ERRORS, SUGGESTIONS, COMPLAINTS TO CROWTHER.” Crowther had apparently never anticipated the program, at least in this incomplete state, getting beyond the small circle of BBN hackers who would immediately know who “CROWTHER” was and how to contact him. To make things even more difficult, Crowther had left BBN by the time Woods discovered Adventure, and was now employed by Xerox in California. (Perhaps Adventure actually came west with him?) Woods’s solution was to attempt to send an email to crowther@xxx, where “xxx” represented every single current domain on the Internet. In addition to laying claim to being the first spammer, Woods found Crowther at Xerox and secured his permission to complete the game and, most importantly, the precious source code. The Internet was a smaller place in those days…

Woods was not yet 23 when he discovered Adventure, but he had already secured a place for himself in hacker history by co-creating the joke programming language INTERCAL, one of the more bizarre and elaborate examples of hacker humor. In Hackers, Steven Levy makes much of the alleged contrast between East Coast and West Coast hacker culture:

“The difference began with the setting, a semicircular concrete-glass-and-redwood former conference center in the hills overlooking the Stanford campus. Inside the building, hackers would work at any of sixty-four terminals scattered around the various offices. None of the claustrophobia of Tech Square. No elevators, no deafening air conditioning hiss. The laid-back style meant that much of MIT’s sometimes constructive acrimony — the shouting sessions at the TMRC classroom, the religious wars between grad students and hackers — did not carry over. Instead of the battle-strewn imagery of shoot-’em-up space science fiction that pervaded Tech Square, the Stanford imagery was the gentle lore of elves, hobbits, and wizards described in J.R.R. Tolkien’s Middle Earth trilogy. Rooms in the AI lab were named after Middle Earth locations, and the SAIL printer was rigged so it could handle three different Elven type fonts.”

My own feeling is that Levy probably overemphasizes the cultural divide between the alleged crew-cut-wearing, conservative Heinlein fans clustered around MIT and the gentle Tolkien dudes of Stanford. Certainly the groups shared common preferences in hardware (DEC PDP systems), operating systems (TOPS-10), programming languages (no BASIC please!), and the general way that computing “should” be done that gave them much more in common with each other than either group had with the populists of the People’s Computer Company. I do think, however, that we can see some differences in the approaches that Crowther and Woods took to programming, differences which are not so much down to geography as temporality. Before I explain that, though, let me back up quickly and introduce some technical background.

Adventure ran on a DEC PDP-10 under the TOPS-10 operating system. As I’ve already mentioned in passing, DEC’s machines were the unqualified favorites of hackers for at least 20 years, from 1960 to 1980. Both the machines and the company that produced them were consistently innovative, large enough to get the job done but small enough to be flexible. Most importantly, DEC not only understood hacker ideals but embraced them, using cutting-edge research facilities like MIT and Stanford as laboratories to refine and even develop both software and hardware, and sometimes hiring the best and the brightest from that world to come work for them directly. The contrast to a condescending and stodgy behemoth like IBM could hardly have been more stark. TOPS-10, meanwhile, was as beloved as the hardware, having been developed and refined by DEC consistently since the late 1960s with the active assistance of the hacker community. Until Unix and DEC’s own successor OS TOPS-20 took its place, something that was already slowly beginning to happen in 1977, TOPS-10 was simply the hacker OS.

Adventure was written in FORTRAN (Formula Translating System), which was already a very old programming language when Crowther and Woods used it. It was in fact the very first significant high-level programming language to appear, having been introduced by IBM on its mainframe systems in the late 1950s. The version Crowther and Woods used obeyed the so-called FORTRAN IV standard, which dated from 1965. For all the grief that hackers gave BASIC, FORTRAN IV wasn’t much better, requiring as it did line numbers and copious use of the dreaded GOTO statement to get anything done. It was if anything particularly unsuited for writing a text adventure, including as it did almost no text storage or manipulation abilities whatsoever. That’s the reason Crowther chose to put all of the game’s text into an external file; it was just easier to deal with that way. Ironically, FORTRAN 77, a major expansion of the language that included proper string variables and heaps of other improvements, appeared the same year that Woods completed Adventure — but too late to be of use for that project.

So, then, why FORTRAN? Well, beyond FORTRAN and assembly language, in which a program like Adventure would have been tedious indeed to implement, normal TOPS-10 programming languages at this time included only the scorned BASIC and the perhaps even more loathed COBOL, a rigidly inflexible language designed for non-interactive batch processing — i.e., dull billing jobs and other rote calculating tasks that hackers found utterly uninteresting. Displaying plenty of vitriol if not much diversity of wit, Edsger Dijkstra made almost the same statement about COBOL as he had about BASIC: “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.” So, FORTRAN it was.

Crowther and Woods may both have been working in the same language, but the differences in their coding styles are immense. Crowther’s original source is itself a “maze of twisty little passages,” a huge pile of spaghetti code that is commented only sporadically and tersely. Efficient it undoubtedly is, but readable and maintainable, at least for anyone other than Crowther, it isn’t. Woods’s final version of Adventure is, by contrast, a model of clarity: commented frequently and at length, and structured as cleanly and logically as the limited tool that is FORTRAN IV will allow. Given the limitations Woods was working under, it’s a joy to read. Indeed, its clarity might help explain why Adventure was so quickly and so frequently ported to other languages and platforms; Woods’s code makes doing so almost a mechanical exercise.

Of course, we are comparing a complete with an incomplete program, and that is not entirely fair to Crowther. Certainly it’s unlikely that Woods’s code was so clean and readable during development as it became when the time came to release. Still, I think there might be something else going on here as well. Partly we might see a difference in personalities; Crowther had a reputation as a brilliant but a solitary programmer, after all, and doesn’t strike me as the kind of fellow interested in explaining himself or coddling those who followed in his footsteps. In addition, though, Crowther and Woods came from different hacker generations. Crowther came up in the 1960s, when the rules of “proper” coding were still largely unwritten and the emphasis was on just getting things done in whatever way the primitive hardware of the day could be coaxed into doing it. Woods came up in the 1970s, when the importance of structure, readability, and maintainability were becoming clear, and computer scientists were laying down the rules of good programming practice which we still follow — with a few additions, of course — today.

Next up, some observations on actually playing the completed Adventure.

 

Tags:

An Oregon Trail Postscript

My good friend Harry Kaplan recently sent me a link to a little Oregon Trail short story by Caitlin Horrocks. The whole joke here — and it’s a cute one — is in the fun it pokes at the game’s narrative limitations. However, it’s also interesting that its storyworld could inspire an established writer in this way, even if the result is more gentle satire than gritty reality. It just reinforces my view of The Oregon Trail as the first really successful ludic narrative — more successful on a narrative level, actually, than Adventure. (Does anyone imagine herself inside Adventure‘s storyworld like so many do inside that of The Oregon Trail?) If I taught junior-high or high-school English, I might have my students each play the game and “novelize” the story that results, even at the risk of reading dozens of reenactments of the Donner Party tragedy, just to see what they came up with.

 

Tags: