Critical Code Studies Conference - Week Three Introduction
It is pitch black. One wrong move and you will likely fall into a pit, break your neck, or be eaten by a grue.Mirroring Crowther's original warning, "IT IS NOW PITCH BLACK. IF YOU PROCEED YOU WILL LIKELY FALL INTO A PIT," Infocom's Zork Trilogy (1980-84) cautions "It is pitch black. You are likely to be eaten by a grue" when a player attempts to explore its caverns without a light.The impatient adventurer might charge forward blindly, relying on quick reflexes (or dumb luck) to guide her footfalls. But since time is not of the essence and this adventure requires a certain amount of precision, the best initial course of action may be inaction - a momentary pause necessary to take stock of the situation and plan the next move. How often has the befuddled explorer peered into the darkness and strained her senses, reaching out in the hopes of discovering a clue to further guide her actions? Whether exploring vast cave systems, playing text-based computer games, or cracking the code of a "black box," it is prudent to take notes, make maps, and get plenty of lamps for your journey into dark places.
When Pat and Will Crowther explored Kentucky's Colossal Cave with the Cave Research Foundation (CRF) in the early seventies, they avidly mapped its twisty little passages, constructing 3D line plots and computer models from the organization's collection of hand-measured survey data (Jerz 58). Out of these Kentucky caves, a generation of computer game players would be inspired to undertake similarly elaborate mappings of a labyrinthine digital space: Will Crowther's inaugural interactive fiction (IF), Colossal Cave Adventure (1975-76), a groundbreaking game which features complex mazes of textual architecture. It is in this spirit of archeology and archivy that Dennis Jerz unearthed Crowther's original source code in 2005 The discovery of this code is a feat of serious spelunking considering the earliest, unaltered version of Colossal Cave Adventure was "recovered from a backup of [Don] Woods's student account at Stanford" (Jerz 1). In less than two weeks after getting his hands on Crowther's game, Woods would begin adding minor tweaks before dedicating himself to polishing, updating, and expanding the project (Jerz 90-91). and produced its first annotations shortly thereafter. Published alongside photo documentation of Jerz's expedition to the original "source cave," the annotated excerpts of Crowther's source code serve as the point of departure for the third week of the Critical Code Studies Working Group.
In this week, Jerz led a new team on a second expedition to map the original source code of Colossal Cave Adventure. The project differed slightly from the previous two weeks in that the group attempted to collaboratively annotate Crowther's original source code in conjunction with the usual discussion. Their contributions, following the ethos of Critical Code Studies, highlighted extra-functional content and offered historical, political, aesthetic, technical, and anecdotal observations.
About thirty-five years ago, when Colossal Cave Adventure was first released, time-sharing mainframe computers like the PDP-10 were busy for weeks on end as the first adventurers feverishly inputted commands via Teletype and anxiously awaited the output of line printers in computer science labs across the world. Given the extent of technological innovation since the seventies, can we imagine the future of computers thirty-five years from now? Three hundred fifty years from now? Apart from technological obsolescence barring our access to many early milestones in the history of computing, memories fade and yesterday's cultures grow foreign as they recede into history. The annotations produced by the contributors of the Critical Code Studies Working Group include personal experiences, historical parallels, and biographical details surrounding the production of Adventure as well as observations regarding the nature of the FORTRAN language with which the game was programmed. These glosses will only increase in value as the twentieth century and cultural memories of early programming languages like FORTRAN fade away.
Other participants attempted to carve out an alternative space for Critical Code Studies. Ramsay, following Wittgenstein, suggests "the meaning of code is what it does," while other commentators test the possibilities beyond the realm of code's executability to address the ideological, aesthetic and cultural connotations that are also at play. Nostalgia and memory figure prominently in the contributors' commentary and annotations, with Mark Sample defending the place of nostalgia as productive for Critical Code Studies. In addition to the inclusion of many of the contributors' own personal memories of their earliest experiences with the game, Jerz argues that nostalgia functions more broadly as an index of processes and rituals, demonstrating the specific ways in which knowledge moves beyond the text to a more distributed field of memory and cultural practice. The rituals and processes of nostalgia are areas that exceed, yet are inextricably bound to, the executable operations of code. A significant aspect of this nostalgia for Adventure is rooted in the fact that it stands as a monumental example of a game produced, as Mark Marino describes, "before the pixel curtain." The fantasy of the game's output being somehow more connected the code on account of this textual interface leads Marino to ask if nostalgia for this golden age of the command-line may itself function as a different form of obfuscation.
For many contributors, the material and tactile sensorium that structures their memory of the game is what informs the sense of taboo surrounding the code and the transgressive thrill generated by gaining access this once-arcane text. The collaborative project of annotation, for many, echoes the collaborative engagement with Adventure that occurred in its early years. Despite the fact that a single set of instructions were typed into the keyboard, many report experiences of mapping the virtual space and solving the puzzles in large groups. Adventure operated as a multiplayer game to the extent that it could accommodate many minds working together to navigate its challenges.
Jeff Nyhoff eloquently evokes the materiality and spatiality of the code being studied, based on his own experiences and memory of Teletype machines and printers streaming "roll[s] of continuous paper." He observes the crucial ways in which the latency and physicality of early computing were integral aspects of the computing process. Moreover, he notes that programming languages had a visual logic that extended beyond the cartographic mental maps required by a player to navigate the game to the level of programming itself. Nyhoff describes how these early models had a logic similar to the flowchart, a logic that was abandoned with the rise of object-oriented languages, but that "flowcharting as programming" has since been resurrected in more recent programs such as Max/MSP, Pure Data, and Quartz Composer. Meanwhile, Jeremy Douglass tracks down other versions of Adventure's source code, observing some of their more curious differences, and researches tools for annotating code. Though the Ning social network and Google Documents provided a temporary platform for the group's activity, it is imperative that Critical Code Studies discovers (or invents) reliable tools for performing and archiving their collective annotations.
Following these various threads, the contributors analyzed the maze of twisty little feedback loops between the source code and game content. Spelunking the code, they unearthed new treasures rivaling Colossal Cave Adventure's bars of silver, precious jewelry, and many coins buried in the darkness of the black box. For example, the GOTO command, now obsolete in most object oriented programming languages, operates not unlike the famous "XYZZY," a magic word that could teleport the adventurer to and from various in-game locations. In this way, both player and programmer must engage the cave spatially. Dennis Jerz further observes that this game's version of "abracadabra!" may be part of Crowther's "sourcery,"See Wendy Chun's concept of "sourcery" further discussed in the fourth week of the Critical Code Studies Working Group.pointing to a peculiar line of code reading "SUBROUTINE YES(X,Y,Z,YEA)." But do these formal parallels teleport us out of the maze of code, or are we, as Crowther writes, "STILL IN THE FOREST?"
When "mapping" a cave system, computer program, or commentary, one traces Crowther's algorithmic architectures, following the trail of causal connections. The code connects tunnel to tunnel just as graphically mapping those passages outlines Adventure's algorithms. Thus player and programmer mirror one another's movements, stalking each other in the dark. When lost in the dark, the annotations assembled in Week Three of the Critical Code Studies Working Group become a guide for bridging the divide between various readers. This work of annotation is unfinished; there are many more lines to explore and paths to map. The cursor blinks anxiously, inviting us to continue. As Mark Marino writes:
>You are standing before the Colossal Code of Adventure. You see INSERT FOOTNOTES, a keyboard, a Google Doc.
Jerz, Dennis. "Somewhere Nearby is Colossal Cave: Examining Will Crowther's Original 'Adventure' in Code and in Kenucky." Digital Humanities Quarterly 1.2 (2007). Web.
Ramsay, Stephen. "On Building." Stephen Ramsay. 11 January 2011. http://lenz.unl.edu/wordpress/?p=340