Interactive Fiction


This is the most thoroughly explored strategy for interactive storytelling. This is a historical accident. It all started with Crowther and Woods’ Colossal Cave Adventure program for mainframes in the mid-70s. When personal computers came around, people quickly began adopting the program to the various machines, and then adding more, largely because the program and design structure were simple. Warren Robinett made a beautiful version for the Atari 2600. This thing ran in 4K of ROM and 128 bytes of RAM, on a machine with minimal graphics capabilities.  Scott Adams formed a company to sell these “text adventures”.The text adventure genre rapidly grew. Infocom, founded in 1979, released a much expanded adventure called Zork and built the best text adventure parser in the business. Ken and Roberta Williams founded Sierra Online, a company making graphic adventures — that is, text adventures that operated graphically rather than textually. Throughout the 1980s, text adventures and graphic adventures dominated the field. They all used basically the same simple architecture introduced by Colossal Cave Adventure. By the 1990s, though, the genre’s popularity was fading. 

An interesting aspect of this process was the rise of numerous development tools for the creation of text adventures. I recall seeing one running on the Atari Home Computers in early 1980. The ubiquity of these tools attests to the simplicity of the structure of text adventures; further evidence of their simplicity is the ease with which non-technical users began creating new products. Roberta Williams was a housewife with no technical training when she began writing adventures for Sierra Online. 

The accessibility of text adventure tools attracted many non-technical people to try their hands at it, and during the 1990s, they transformed the genre. The text adventures of the 1980s were primarily intricate puzzles requiring a great deal of patience, but the new entrants in the 1990s transformed “text adventures” into “interactive fiction”. This was accomplished primarily by improving the quality of the expository writing; the basic puzzle structure was altered primarily by reducing the intricacy of the material somewhat. Meanwhile, people were developing more advanced development tools, such as TADS and Inform. These are programming languages customized for interactive fiction. Their primary focus was on making the definition of the storyworld more human; they did this through application of artificial intelligence techniques.

Interactive fiction has never had much commercial potential, but it is supported by an active community of developers and has steadily grown in complexity and power.

The architecture of an IF storyworld is basically a directed graph with hidden or locked edges. Much effort goes into preparing vertices with well-written exposition. Most of the interaction lies in the player’s efforts to gain access to all of the vertices. The core structures and problems with IF designs are nicely summarized in an essay I wrote about 30 years ago: Flawed Methods for Interactive Storytelling. Very briefly, the problem with IF is the geometric explosion of possible states, which is usually countered with a number of schemes: foldback, ‘Kill ‘em if they stray’, obstructionism, or simple hard-wiring. The most progress has been made by transforming the standard tree structure of an IF storyworld into a directed graph, which allows the player to re-visit sites multiple times. This was in fact the structure of the very first such design, “Colossal Cave”, by Crowther and Woods. The crucial trick here is to establish a number of global variables whose values can be changed by visiting specific rooms; the changed values open up new sections of the storyworld. In the simplest example, the player must visit Room #27 in order to obtain the key, which is required to open the door in Room #9 leading to Room #38.

Here’s a map of an adventure game:

Text adventures challenge spatial reasoning and puzzle solving. I have never see any IF product that had any dramatically significant personality dynamics. 

Most IF storyworlds rely on boolean variables; a few use small integer-values. I know of none that rely on the use of floating point values to any substantial degree, but I don’t follow the IF community closely enough to have any confidence in my experience here. One of the most popular IF products, Fallen London, uses small integer values. 

The vertices in an IF system traditionally represent spatial locations — rooms. However, they can represent any state. Sometime in the mid-1980s I proposed a series of educational storyworlds presenting the player with socratic dialogues. The steps in the argument — both correct and erroneous — took the place of rooms. The Socratic software presented the player with arguments followed by possible responses by the player. I wrote a short demonstration of this idea, but did not carry it far. 

It would be more difficult to have the rooms represent events. For example, one chunk of the storyworld could represent the player as a teenager going on a date. The player must then navigate the many possible actions and their repercussions. This would require global variables representing the mood of the computer character. Or a geopolitical conflict could be modeled with a set of rooms representing policy decisions of the player. My own Encounter Editor (now SpeareShake) is somewhat like a text adventure in structure, but its focus is definitely on interpersonal dynamics.

Another dimension in which IF could be expanded concerns the connections between vertices (edges). These are usually bidirectional absolute connections; a player can readily move from one vertex to a connected node and back again by the same connection. The edges could be made unidirectional: the player can move in only one direction along an edge. Or they could have varying lengths. That is, the player can expend multiple “turns” traversing an edge. This permits the player to consider time consumption in traversing edges. However, for this to be practical, the storyworld must maintain a map for the player recording what the player has learned so far. This is entirely too spatial for my taste. Another possibility would be for the traversal to consume some resource that the player must marshal. Some edges will be cheap to traverse, and others will be more expensive. 

An even wilder possibility is to make edges variable by having them shift between vertices. In other words, the edge between Room #26 and Room #18 might shift one terminal to, say, Room #22, connecting Room #26 and Room #22. This could take place randomly, or according to a schedule that the player could learn about, or under the player’s control. I am uncertain as to whether this would have any value for play, and it would certainly be difficult to justify in terms of dramatic significance. By way of example, here’s one possibility: kissing the girl (Room #8 to Room #11) advances the romance; but after learning that the girl is the player’s sister, kissing her traverses Room #8 to Room #37.

Those wishing to extend the possibilities of IF would do well to study network theory. While many of its concepts are of little utility to IF, some raise interesting possibilities. In particular, some of the ideas of social network analysis have fascinating possibilities if applied to IF. The diffusion of information through a social network (commonly called “gossip”) is an interesting case. The concepts of betweenness and centrality can be usefully applied to storyworld networks.