RSS

Will Crowther’s Adventure, Part 1

What remains to be said about Adventure? It has long and rightfully been canonized as the urtext not just of textual interactive fiction but of a whole swathe of modern mainstream videogames. (For example, trace World of Warcraft‘s lineage back through Ultima Online and Richard Bartle’s original MUD and you arrive at Adventure.) It’s certainly received its share of scholarly attention over the years, from Mary Ann Buckles’s groundbreaking 1985 PhD thesis “Interactive Fiction: The Computer Storygame Adventure” to Dennis Jerz’s superb 2007 article for Digital Humanities Quarterly, “Somewhere Nearby is Colossal Cave.” Still, since this blog has kind of turned into a history of early digital narratives without my entirely realizing it, it’s worthwhile to talk about its background. And having recently played it in its original Crowther-authored form as unearthed by Jerz in the course of researching his aforementioned article, I join Jason Dyer in having a few things to say about the experience. Finally, I’d like to make it as painless as possible for you to experience it in that authentic form as well, if you’re interested.

The outline of Adventure‘s history is probably familiar to many reading this, but in a nutshell it goes like this:

Back in 1975 a programmer and spelunker named Will Crowther had just gotten divorced. Missing his children and feeling somewhat at loose ends generally, he started to write a game in his spare time with the vague idea that he could share it with his two daughters, who now lived with their mother and whom he missed desperately. The game, which he named Adventure, combined his three biggest interests at the time: programming, caving, and playing a new tabletop game called Dungeons and Dragons.

How so? Well, the player would explore a geography loosely based on the Bedquilt branch of Kentucky’s Mammoth Cave, a place Crowther had spent years laboriously exploring and mapping; she would encounter treasures and creatures drawn from D&D in the process; and to win she would have to solve intricate puzzles while always maintaining close attention to detail, just like a programmer. Crowther had just invented the world’s first text adventure, in the process prototyping much that remains with the form to this day.

Those are the broad strokes. But let’s back up for a moment. Just who was Will Crowther? Where Wizards Stay Up Late, Katie Hafner and Matthew Lyon’s history of the development of the ARPANET (predecessor to the modern Internet), paints a pretty good picture of Crowther. His eccentricities have become so associated with the hacker mentality that they almost read like items on a checklist today. To wit:

He was almost disturbingly non-verbal, and rarely displayed any affect at all. He refused to dress up for any reason, even visiting the Joint Chiefs of Staff at the Pentagon in sneakers. And “he was a notoriously finicky eater (anything beyond the culinary level of a plain bologna sandwich was a risk), making him an impossible dinner guest or dining companion.” For all that, though, Crowther was a very unusual computer nerd in at least some ways. For one, he loved outdoor adventures, particularly rock climbing and of course caving. As befits an adventurer, he kept himself in excellent shape, in part by hanging by his fingers for hours on the frame of his office door. And most shockingly of all, he “never touched” soda.

Of course, what allowed Crowther to get away with eccentric behavior was the brilliance of his mind. Crowther’s Wikipedia page says as of this writing that, “He is best known as the co-creator of Colossal Cave Adventure.” That’s true enough, but it’s a bit unfair in a way to Crowther that Adventure and caving so dominate the page, for Crowther’s importance in computer history would be assured even had he never created Adventure.

Crowther was an absolutely key player on the tiny team that, beginning in the late-1960s, laid the foundation of the modern Internet. He wrote the software that ran on the Interface Message Processors (IMPs), the set of computers that shunted data around the nascent ARPANET; in other words, he wrote the firmware for the world’s first routers. He was one hell of a programmer, “regarded by his colleagues as being within the top fraction of 1 percent of programmers in the world,” with a particular genius for writing incredibly compact and efficient code, a valuable skill indeed in those days of absurdly limited memory and processing power. If he had a fault, it was that he was more interested in prototyping, in showing that things could work and how, than in doing the hard, often tedious work of polishing and refining that results in a truly finished, production-ready program.

When we add all of this together, we can begin to see how Crowther could have birthed IF in such a complete form almost on a whim… and then abandoned it on another whim when (presumably) a more interesting problem came along.

 

Tags:

Hunt the Wumpus, Part 2

To hear Gregory Yob tell it, Hunt the Wumpus was as much inspired by his hatred of the Cartesian grid employed by Hurkle and similar games as it was by anything else. Yob wanted to make a monster-seeking game based on the dodecahedron, his “favorite Platonic solid.” I must say my own interest in geometry is limited enough that it’s hard for me to share Yob’s passion; certainly I lack a “favorite Platonic solid” to compare with Yob’s. I’m more interested in the other innovations Yob deployed on the way to implementing his dodecahedron.

Hunt the Wumpus is the origin point of all those twisty little passages that would be filling so many computer screens and graph-paper pads just a few years after its creation. Its world consists of a grid of twenty rooms, each of which is connected to exactly three other rooms. Some of these rooms have contents, which are randomly placed before each play: bottomless pits that result in instant death, “super bats” that carry the player to another (random) room, and of course the wumpus himself. If the player walks in on him, he has a 75% chance of merely wandering off to another room, but a 25% chance of eating her up right there. The wumpus can be killed only remotely, by firing an arrow from elsewhere into the room that contains him. The game in fact understands just two verbs: “move” and “shoot.” Gameplay, at least if you’re a cautious (not to say callow) sort like me, consists of moving carefully around the storyworld constructing a map of its rooms, connections, and hazards, and finally moving into position to take the kill shot against the poor wumpus. On the terminal, it looks like this:

HUNT THE WUMPUS

YOU ARE IN ROOM  20   
TUNNELS LEAD TO  13    16    19   

SHOOT OR MOVE (S-M)?M
WHERE TO?13

I FEEL A DRAFT
YOU ARE IN ROOM  13   
TUNNELS LEAD TO  12    14    20   

SHOOT OR MOVE (S-M)?M
WHERE TO?20

YOU ARE IN ROOM  20   
TUNNELS LEAD TO  13    16    19   

SHOOT OR MOVE (S-M)?


Okay, so it’s not too much to look at. When you play it for the first time, you might end up asking if that’s really all there is. Still, if you give it a decent chance you’ll find a well-constructed little game that can still be engaging, at least for the first few plays as you sort out how it works and how to beat it. From a design perspective, its biggest flaw is perhaps that you can often begin with a configuration like this:

I FEEL A DRAFT
YOU ARE IN ROOM  4    
TUNNELS LEAD TO  3     5     14


The draft tells you that you are adjacent to a pit; one of those three tunnels, in other words, leads to death. Because you have not yet had a chance to gather any additional information, you are left to rely on blind chance. You must just pick one and hope for the best — hardly a fair situation.

But I’m not so interested in “pure” game design as I am in the history of ludic narrative. From that perspective, Hunt the Wumpus is hugely important in two ways.

First, it represents a radical change in perspective from games like Hurkle. While the player viewed those games from on-high, Wumpus places her in its storyworld. You are there, creeping from room to room in the darkness. Wumpus offers the merest stub of a narrative, but that stub combined with the switch from a third-person to a first-person perspective gives it a very different feel from Hurkle and its companions. Those games feel like abstractions; Wumpus is a much more immersive experience. It wasn’t quite the first game to put its player inside a storyworld — The Oregon Trail, at least, preceded Wumpus by about a year and was possessed of a much more full-bodied narrative in addition — but it’s nevertheless a significant departure from the norm of its time.

Second, and even more importantly, Wumpus is a prototype version of the system of geography that is still with IF today: a set of discrete, self-contained rooms linked together by connectors the player can use to pass from one to another. Compass directions are not yet here, but the rest of the scheme is. Wumpus is all about mapping. The early IF games that would follow were continuing its tradition in being full of those twisty little passages that so frustrate modern players who try to go back to them today. This brings up a point that I’ve only recently started to grasp: the earliest IF was about geography and mapping more so than story or even puzzles. (I want to talk about the original Adventure just a bit after I finish up with Wumpus. I’ll have more to say about this idea then.)

Like The Oregon Trail, all signs point to Hunt the Wumpus having been originally written in HP Time-Shared BASIC. I was able to locate it on tapes preserved by Bob Brown and Michael Gemeny of the HP-2000 Yahoo! Group. Its BASIC code was first published in a mid-1973 issue of the People’s Computer Company magazine, and later appeared in the October, 1975, issue of Creative Computing. The program that appeared there is almost identical to that which we found on the tape, with the only notable difference being some REM and PRINT statements found in the printed version that attribute it to Yob and plug Wumpus 2 and Wumpus 3, two sequels he had written by that time.

Unlike The Oregon Trail, which remained quite firmly under the thumb of MECC and was apparently spread only to educational institutions, Wumpus quickly spawned heaps of ports and adaptations on almost every viable computing platform of its era (and of every era since). By the time it appeared in Creative Computing Yob could write that, “I have reports of Wumpus written in RPG, a listing of one in FORTRAN, a rumor of a system command of ‘to Wumpus‘ on a large corporation’s R&D computer system and have even seen an illustrated version for the Hazeltine CRT terminal!!” It was interesting enough as a game to cross the cultural boundaries that normally kept the cheerful BASIC hippies of PCC and Creative Computing separated from the world of the hardcore institutional hacker. At least by the 1975 release of Unix Version 6 (and quite possibly earlier), Wumpus had been ported to Unix C; a comment in the source cheerfully declares it “stolen from PCC Vol. 2 No. 1.”

Thanks to Bob Brown, you can experience the original version of this relic in its original environment if you’d like, as well as its immediate predecessors Hurkle, Snark, and Mugwump. Here’s what you need to do. (Yes, this is largely the same drill used to access The Oregon Trail on the same system.)

1. Telnet to mickey.publicvm.com. (Telnet, mind you. None of that newfangled SSH!)
2. Slowly alternate CTL-J and CTL-M until you see a “PLEASE LOG IN” message.
3. Enter “HEL-T001,HP2000,1″. Without the quotes, of course — and note that those are zeroes. Oh, and the system isn’t case-sensitive, but for the authentic experience you might want to have your caps lock on.
4. Enter “GET-WUMPUS” for Hunt the Wumpus; “GET-HURKLE” for HURKLE; “GET-SNARK” for Snark; or “GET-MUGWMP” for Mugwump.
5. “LIST” the program if you like, or just “RUN” it.

Have fun!

 

Tags: ,

Hunt the Wumpus, Part 1

At the height of the hippie era, two fellows named Bob Albrecht and Leroy Finkel founded the publishing company Dymax in San Francisco to write books about BASIC. Yet Albrecht in particular had ambitions that went beyond merely selling books about computers. In those days computers were still the stuff of science fiction: huge, sinister machines that were always going haywire and causing Captain Kirk all sorts of problems. For this to change and for Albrecht’s dreams of computers as tools of fun and creativity to be realized, people needed access.

Albrecht, apparently a very charismatic and persuasive man, managed to wheedle a physical PDP-8 out of DEC and a remote terminal connection and an allotment of shared computing time out of HP. He soon turned Dymax’s Menlo Park offices into a sort of computing open house, where anyone could drop in and just play with the machines. By 1972 the for-profit publisher Dymax had spun off a very different institution Albrecht named The People’s Computer Company. PCC was not really a company at all — or at least not a company terribly interested in actually making money. Its name was in fact inspired by Big Brother and the Holding Company, the late-60s band that boasted one Janis Joplin as its singer, and this fact shows where its heart really lay. San Francisco was still largely living the hippie dream in 1972, even if some of the luster had begun to fade post-Altamont, and Albrecht and PCC fit right in with the counterculture there. Their mission was to bring computers to the people, which they accomplished not only through their open house but also through a newsletter whose first issue appeared in October of 1972. Its banner read: “Computers are mostly used against people instead of for people. Used to control people instead of to free them. Time to change all that. We need a… People’s Computer Company.”

The atmosphere at the Menlo Park office was described in this way by Steven Levy in Hackers:

The air was usually filled with the clatter of terminals, one hooked to the PDP-8, another connected to the telephone lines, through which it could access a computer at Hewlett-Packard, which had donated free time to PCC. More likely than not, someone would be playing one of the games that the growing group of PCC hackers had written. Sometimes housewives would bring their kids in, try the computers themselves, and get hooked, programming so much that husbands worried that the local matriarchs were abandoning children and kitchen for the joys of BASIC. Some businessmen tried to program the computer to predict stock prices, and spent infinite amounts of time on that chimera. When you had a computer center with the doors wide open, anything could happen. Albrecht was quoted in the Saturday Review as saying, “We want to start friendly neighborhood computer centers, where people can walk in like they do in a bowling alley or penny arcade and find out how to have fun with computers.”

This was the environment that the 27-year-old Gregory Yob wandered into one day, probably around the time that that landmark first issue of PCC’s magazine was being published. At the time a certain collection of grid-based guessing games written by Albrecht himself was popular there. Hurkle was probably the first of the kind:

RUN
HURKLE

WANT THE RULES?Y
A HURKLE IS HIDING IN A GRID, LIKE THE ONE BELOW.


                          NORTH

               9    . . . . . . . . . .
               8    . . . . . . . . . .
               7    . . . . . . . . . .
               6    . . . . . . . . . .
               5    . . . . . . . . . .
        WEST   4    . . . . . . . . . .   EAST
               3    . . . . . . . . . .
               2    . . . . . . . . . .
               1    . . . . . . . . . .
               0    . . . . . . . . . .

                    0 1 2 3 4 5 6 7 8 9

                          SOUTH

TRY TO GUESS WHERE THE HURKLE IS HIDING. YOU GUESS
BY TELLING ME THE GRIDPOINT WHERE YOU THINK THAT
THE HURKLE IS HIDING. HOMEBASE IS POINT  0,0  IN
THE SOUTHWEST CORNER. YOUR GUESS SHOULD BE A PAIR
OF WHOLE NUMBERS, SEPARATED BY A COMMA. THE FIRST
NUMBER TELLS HOW FAR TO THE RIGHT OF HOMEBASE AND
THE SECOND NUMBER TELLS HOW FAR ABOVE HOMEBASE YOU
THINK THE HURKLE IS HIDING. FOR EXAMPLE, IF YOU 
THINK THE HURKLE IS 7 TO THE RIGHT AND 5 ABOVE
HOMEBASE, YOU ENTER  7,5  AS YOUR GUESS AND THEN
PRESS THE 'RETURN' KEY. AFTER EACH GUESS, I WILL
TELL YOU THE APPROXIMATE DIRECTION TO GO FOR YOUR
NEXT GUESS. GOOD LUCK!

THE HURKLE IS HIDING - TRY TO FIND HIM!

WHAT IS YOUR GUESS?5,5
GO NORTH

WHAT IS YOUR GUESS?5,2
GO NORTH

WHAT IS YOUR GUESS?5,1
GO NORTH

WHAT IS YOUR GUESS?5,0
GO NORTH

WHAT IS YOUR GUESS?5,8

YOU FOUND HIM IN 5    GUESSES!!!
LET'S PLAY AGAIN.


Later variants made things a little more complicated: in Snark, one must enter the radius of a circle around a central gridpoint to be informed whether the snark is inside or outside, while Mugwump (the most difficult) tells only how far in a direct line the mugwump is hiding from each guess, leaving the player to puzzle out the direction for herself. In a sense, these are not really games at all; there is no way to really lose, only to end up with a lesser or greater total of guesses. One might imagine people competing against one another in the social atmosphere of PCC, but since each game is randomly generated it’s impossible to really know what two scores mean in relation to each other.

Yob’s reaction to these games was, in his own words:

“Eech!!” Each of these games was based on a 10X10 grid in Cartesian co-ordinates and three of them was too much for me. I started to think along the lines of: “There has to be a hide and seek computer game without that (exp. deleted) grid!!” In fact, why not a topological computer game — imagine a set of points connected in some way and the player moves about the set via the interconnections.

A “topological computer game” in which “the player moves about the set via the interconnections.” Starting to sound like something you recognize?

 

Tags: ,

In Defense of BASIC

If there’s a programming language that just don’t get no respect, it’s BASIC. One could make a pretty good little bathroom reader from all the snarky comments it’s attracted over the years. My favorite is this gem from Edsger W. Dijkstra: “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC. As potential programmers they are mutilated beyond hope of regeneration.” (I think Dijkstra’s slightly stilted phraseology works better if you imagine it being said with a heavy Dutch accent.) That’s a bit hyperbolic, to be sure, but certainly BASIC has a lot to answer for. When I was a kid trading software on my trusty Commodore 64, saying a program was written in BASIC was as good as saying that it sucked. And things haven’t changed that much today. Has any development environment, ever, produced as much awful software as Visual BASIC? I must admit that learning that a program was written in Visual BASIC is still sufficient reason to make me not even try it.

But despite all that, BASIC’s importance in the history of computing is immense. Before it, there existed two principal computing cultures. First there was the mainframe culture. Centered around IBM and a few other big companies that tried to compete with it, it was marked by what Steven Levy so memorably called the “priesthood” model of computing common to government and big business: a few highly trained, lab-coated elites serving as minions of The Machine, doing everything by (IBM’s) book, with creativity and fun strictly Off Limits. The other culture was the hacker culture that sprung up at MIT and similar technical universities and perhaps the occasional smaller company: a group of generally young savants who were fascinated by the world inside the machine and lived to hack, who scoffed at the conservatism and groupthink of IBM and particularly embraced the smaller machines of the more freewheeling Digital Equipment Corporation (DEC). Different as they were, neither of these cultures cared much about making computers accessible to the everyman. Neither culture had any time for or interest in anyone who did not think in bits and bytes and registers.

When John Kemeny and Thomas Kurtz designed and implemented the Beginner’s All-Purpose Symbolic Instruction Code at Dartmouth College in 1964, they were not trying to please hackers or computer scientists. They were, rather, trying to make it possible for “ordinary” individuals to productively use computers. Today the idea of a programming language for the masses is almost oxymoronic; they simply load up their computers with the latest from Microsoft, Apple, or whomever, and leave the programming to the professionals. Back in 1964, however, and for quite a long time afterward, applications software in the way we know it today did not really exist. Using a computer for any but the most rote of tasks virtually required programming it; certainly, at any rate, using a computer creatively did. In attempting to bring computing to the masses, Kemeny and Kurtz’s goals were not so much technical as sociological, political, even ideological. A third computing culture, one I already began to discuss when mentioning HP Time-Shared BASIC and Creative Computing magazine in the context of The Oregon Trail, began with BASIC at Dartmouth in 1964 and remained associated with the language for many years.

While the priests in their climate-controlled data centers and the hackers sequestered away in their cubbyholes at MIT were oblivious to the changes that were wrenching society in the late 1960s and early 1970s, the BASIC culture was full of counterculture excitement. They were all about bringing these machines out of the banks and the ivory towers and putting them at the disposal of the street. That makes their work as important as that of the hackers who were inventing C and Unix and laying the foundation of the Internet at about the same time. Sometimes, more perhaps than either would first want to admit, the two cultures even intersected, as they did in the case of the game I want to talk about in my next historical post, Hunt the Wumpus, which originated in HP Time-Shared BASIC but was novel and appealing enough to be attractive to the traditional hacker mindset as well — appealing enough to influence the first works of true IF.

As for BASIC, let’s remember to give it its historical due. If you’re excited by computers as artistic tools with relevance to the world and the people around them, you should recognize its place in forging those connections. The sniffing condescension of elitists like Dijkstra seems pretty unattractive indeed in this light.

So, yeah, respect is due. Now just don’t ask me to actually use the thing.

 

Tags: ,

On the Trail of the Oregon Trail, Part 5

The Oregon Trail is all about resource management. You start the game with $700, which will have to serve as your non-renewable bankroll for the entire trip. From this you must buy your oxen team as well as food, ammunition, clothing, and “miscellaneous supplies” (which basically comes down to medical supplies). Play then proceeds through a series of up to 18 turns, each representing two weeks on the trail. At the beginning of each you can choose whether to hunt or simply press onward. In addition, you pass by a fort every other turn, where you can purchase additional supplies if you like. And you have to decide if you want to eat poorly, moderately, or well during that period, balancing your food supplies with the risk of illness that comes from a poor diet and hard work. During the body of each turn, you are usually subjected to a randomly chosen event of some kind. Most of these are of the unfavorable variety. This series of misfortunes and disasters is what most people remember best about the game:

“WAGON BREAKS DOWN — LOSE TIME AND SUPPLIES FIXING IT.”
“OX INJURES LEG — SLOWS YOU DOWN REST OF TRIP.”
“BAD LUCK — YOUR DAUGHTER BROKE HER ARM. YOU HAD TO STOP AND USE SUPPLIES TO MAKE A SLING.”
“WILD ANIMALS ATTACK!”

According to the City Pages article, these last were hostile Indians in the original version, which would certainly have been more exciting to imagine if less politically correct. Telltale signs of code modifications around line 2885 bear this out. (Interestingly, the immortal “YOUR WAGON BROKE AN AXLE!,” source of a long-running Internet meme, is not yet in this version.) This tragic litany is occasionally broken by “HELPFUL INDIANS SHOW YOU WHERE TO FIND MORE FOOD,” but most of the time it’s a hard life indeed on the trail — which I suppose is accurate enough.

Rawitsch strove mightily to make the program accurate in its simulation of the trip, even constrained as he was by the limitations of his computing hardware and HP BASIC. The likelihood of the various randomized events are based as much as possible upon historical reality. The terrain changes; the going gets slower and harder later in the trip, when you begin to pass through the Rocky Mountains. Even the weather changes, requiring more clothing. In fact, there is more going on below the surface than you might realize. A peculiarity that The Oregon Trail shares with many other BASIC games of this era is that it seems to expect — even to depend upon — the player having a look at the code in order to fully understand what’s going on in the game. For instance, I didn’t realize that stopping at a fort for supplies dramatically reduces the miles you can cover in a single turn until I read that in the code. Likewise, it is easy to miss the terrain changes and the effect they have on the game if you haven’t at least skimmed through the code.

As a narrative experience, The Oregon Trail is more compelling than it perhaps has any right to be. Its communications are terse indeed, but one really does get the sense of embarking upon a long and dangerous journey. As I limped ever close to my destination of Oregon City, with one of my oxen injured, low on food and supplies, with winter fast closing in, I felt real tension and concern for my little family. The “you are there” feeling is further enhanced by the occasional “action” sequences in which you are given a limited amount of time to type the word “BANG” in the hopes of success at hunting or at defending yourself from bandits or animals. The game is relentlessly unforgiving; failing to stockpile enough food for the coming turn, or enough medicine or bullets, leads to instant death. Unlike in more typical early adventures games, where instadeaths are rather comical in their unexpectedness and cruelty, these feel believable. It was a hardscrabble existence indeed on the trail, and I’m sure plenty of real would-be settlers died for exactly these reasons. There’s actually a consonance between gameplay and narrative that’s rather rare to find even in modern storygames.

My personal strategy is to buy little if any food, reserving my precious money for other things. I then hunt about every other turn, taking advantage of the fact that I know my way around a keyboard pretty well. I also try very hard not to carry too much stuff at any time, as I always seem to end up losing it for nothing in some disaster or other. Traveling light, however, means more stops at forts; my biggest problem is usually running out of time, being trapped on a mountain trail when winter arrives. If you develop a favorite strategy of your own, maybe one that works better than mine, feel free to tell about it in the comments.

The Oregon Trail story after 1978 has been much better documented than has its early years, so I won’t devote much space to that. By 1980 MECC had purchased 500 Apple IIs and installed them in classrooms all over Minnesota, where children used them to (among other things) play the freshly ported Apple II version of The Oregon Trail. There followed a version with accompanying full-color illustrations (1985), a CD-ROM extravaganza version (1996), and, eventually, that Facebook version (2011), just to hit some of the highlights. When you strip away all of the multimedia that encrusts them, it’s really quite surprising how closely these later versions hew to the model that Rawitsch designed back in 1971. It’s not the most sophisticated storygame in the world, but it really is better than it ought to be. I’m glad I took the time to get to know it better, and, again, happy to be able to offer the code to anyone else who’d like to dive in. I’d go so far as to place it alongside Eliza and Hunt the Wumpus as one of the three pre-Adventure computer games that anyone interested in the history of interactive narrative really ought to know.

 
 

Tags: ,