The Hermeneutics of Code
Co-authored Abstract for DiGRA 2015: William Robinson, Dylan Lederle-Ensign and Michael Mateas
Procedural Deformation and the Close Playing/Reading of Code:
An Analysis of Jason Rohrer’s Code in Passage
Despite Game Studies’ interest in digital games, the field has paid comparatively little attention to the algorithms underlying the medium. The following paper argues for the value of game code analysis and works towards potential methodologies. Platform studies has by necessity done some of this work in its appeals to analyzing game hardware and software along with the affordances and constraints they place on media (see Montfort and Bogost 2009; Salter and Murray 2014). That said, the interest here is not to generalize theories of platforms from snippets of code. Rather, this paper explores the meaning of code in the context of a game whose processes and mechanics are intended to be read metaphorically (Bogost 2009; Treanor and Mateas 2010). While software studies has previously focused on the abstracted operational logics of games (Wardrip-Fruin and Mateas 2009, Wardrip-Fruin 2009; Fox Harrell 2013), we focus on a detailed code-level analysis. Code-level readings of games do exist (Marino 2006, Sample 2011), but these have tended to focus on comments and variable names, rather than analyzing the relationship between the code-level expression of process and player interpretation. Drawing from works in software studies (Fuller 2008; Galloway and Thacker 2007; Bolter et al. 2013) and game studies, we argue that appeals to code may offer insights into the tensions between the practice of game development and the affordances and constraints of computational tools. We use code found in Jason Rohrer’s art-game Passage as a case study. Despite having been theorized by multiple game scholars (e.g. Bogost 2008; Parker 2012; Whalen 2012), Passage’s code has never been examined, nor has anyone considered the importance of its open-source nature. While its code is not representational in the same ways as its output, it does hold hermeneutic meaning that is detectable upon a procedurally literate inspection. What is more, as an artwork with underpinnings left intentionally accessible for public consumption, it is not unreasonable to consider it in this way.
Given the scope of this essay and that Passage has thousands of lines of code, only two portions of Rohrer’s work will be discussed here. The first relates to the hidden contents of in-game chests. The second is responsible for the game’s procedurally generated labyrinths. While both sections were selected because they are illustrative of Rohrer’s style of coding, each also illustrates a proposed methodology for game code studies: Close Reading/Playing Code and Procedural Deformation.
To illustrate our use of close reading/playing of code, we turn to Rohrer’s use of scoring in Passage. In his creator statement, Rohrer discusses the game’s metaphoric chests, suggesting that “not every pursuit leads to a reward—most of them are empty.” Rohrer continues the metaphor in explaining that these chests are marked with a sequence of gems and that “During your lifetime, you can learn to read these sequences and only spend your precious time opening worthwhile treasure chests.” From this we infer that in a single run of Passage (what Rohrer refers to as a lifetime) it should be possible to predict the outcomes of a chest’s contents, and that being able to do so will lead to a higher score. In this instance, Rohrer implies that worthwhile chests are valuable in the fiction of his game, a position echoed by their positive impact on the high score. Current writing on Passage has not addressed this puzzle, which we solved using a combination of code reading and close playing.
The following lines of code can be found in gamma256/gameSource/game.cpp, the core game file:
514 // the gem that marks chests containing points
515 int specialGem = time( NULL ) % 4;
These two lines set up an enormous amount of explanation and investigation to come. Setting aside for the moment an explanation of what the code means, let us continue following the places this number is used. Further down the same file, we find the code that executes when the player touches a closed chest. This is the only other place that specialGem appears in the code:
1183 if( getChestCode( (int)playerX, (int)playerY ) &
1184 0x01 << specialGem ) {
While this is the core of the chest puzzle, code reading alone was not enough to decipher a solution. These two snippets of code begin to give a sense of the futility of isolated code reading as a method for understanding the game elements they implement. These two lines leave us with questions whose answers are all in other parts of the code. Even so, the static definition does not provide a clear answer to the original question about the chest puzzle. While reading this code gave us a hint of the solution, specifically that there were five possible chest solutions randomly assigned to the level, we only fully understood the chest puzzle through a combination of close playing and theorycrafting. Building color coded tables of information about the contents of chests and their gems for each playthrough (as opposed to all playthroughs), we deployed one of the techniques used by powergamers, as described by Chris Paul in his work on theorycrafting (2012). Not only did we uncover the solution to Rohrer’s puzzle, but found our hermeneutic reading of the game had changed.
Our second methodology is also literary in nature. Lisa Samuels and Jerome McGann, in their essay Deformance and Interpretation draw from Emily Dickinson’s proposal to read poems backward. They explain, “Reading Backward is a critical move that invades these unvisited precincts of imaginative works. It is our paradigm model of any kind of deformative critical operation. Such a model brings to attention areas of the poetic and artifactual media that usually escapes our scrutiny” (36). Samuels and McGann admit that their approach may be seen as heretical, given the goal of hermeneutic reading is largely meant to avoid “against the grain” readings, but we demonstrate here that this process of deformation is productive in generating new perspectives and questions on poetic works. What is more, we argue that this method has an affinity for code studies, given the emergent nature of the medium.
To discuss our use of procedural deformation, we turn to a second metaphor in Passage: the contradictory goals of advancing forward along the X-axis and the pursuit of treasure chests which appear further along the Y-axis. Metaphorically, these goals potentially relate to any number of everyday trade-offs. Rohrer effectively represents the structural metaphor of these mutually exclusive choices by offering the player a compelling interactive spatial representation. He does this by procedurally generating a map which becomes denser with impassable terrain as one moves down along the Y-axis. This paper describes the map generation algorithm in the context of Passage’s overall design, and explores alternative parameters that significantly alter the play experience and game’s rhetoric. We made several alternate versions of Passage, with changes ranging from small changes to the weights of random numbers to larger changes that expand the field of view and expose the entire map clearly. While Rohrer characterizes the map as a maze, it only functions as such when the player has a limited view. Similarly, modifying the weights with which walls or chests are placed in the world can significantly alter the game’s hermeneutic readings. In an alternate version with denser chests, exploring to the right becomes significantly less appealing. These deformations allow us to interrogate the values and parameters that Rohrer chose, and lead to a deeper understanding of their rhetorical purpose.
These two approaches are of course only loosely sketched, and owe much to the work of digital humanists, such as Alan Liu’s analyses of markup language (2004) or Wendy Chun’s analysis of code as fetish (2008). That said, the practice of digging into complex game code and unpacking its interactions for aesthetic and political analysis is altogether unexplored, which is why we take the research risk here.
BIBLIOGRAPHY
Bizzocchi, J., et. al. “Games, narrative and the design of interface.” International Journal
of Arts and Technology 4.4 (2011): 460-479.
Bolter, J., et al. “Liveness, Presence, and Performance in Contemporary Digital
Media.” Throughout: Art and Culture Emerging with Ubiquitous Computing (2013): 323.
Bogost, I. “Fine processing.” Persuasive Technology. Springer Berlin Heidelberg, 2008.
13-22.
Bogost, I. Persuasive games: The expressive power of videogames. Mit Press, 2007.
Burden, M, and S. Gouglas. “The Algorithmic Experience: Portal as Art.” Game
Studies 12.2 (2012).
Carroll, N. “Hume’s Standard of Taste.” The Journal of Aesthetics and Art Criticism /
American Society for Aesthetics. Ed. Thomas Munro. (1985): 181-194. Print.
— 4 —
Chun, W. “On “sourcery,” or code as fetish.” Configurations16.3 (2008):
299-324.
Fuller, M. Software Studies: A Lexicon. Cambridge, Mass: MIT Press, 2008.
Galloway, Alexander R., and Eugene Thacker. The exploit: A theory of networks. Vol. 21.
U of Minnesota Press, 2007.
Harrell, D. Phantasmal Media: An Approach to Imagination, Computation, and
Expression. MIT Press, 2013.
Knuth, D. Literate Programming. Stanford, CA: Center for the Study of Language and
Information, Stanford University Press, 1992.
Livingston, P. “Poincaré’s” Delicate Sieve”: On Creativity and Constraints in the
Arts.” (2009).
Liu, A. “Transcendental Data: Toward A Cultural History and Aesthetics of the New
Encoded Discourse.” Critical Inquiry 31 (2004): 49-84.
Liu, A. “Where is Cultural Criticism in the Digital Humanities.” Debates in the Digital
Humanities. Minneapolis: University of Minnesota Press. 2012.
Manovich, L. Software takes command. Vol. 5. A&C Black, 2013.
Marino, M. “Critical code studies.” Electronic book review 4 (2006).
Mateas, M., and N. Wardrip-Fruin. “Defining operational logics.” Digital Games
Research Association (DiGRA) (2009).
McGann, J., and Lisa S. “Deformance and interpretation.” New Literary History 30.1
(1999): 25-56.
Montfort, N., and I. Bogost. Racing the Beam: The Atari Video Computer System.
Cambridge, Mass: MIT Press, 2009. Internet resource.
Möring, S. “Tackling the metaphor-simulation dilemma.” Proceedings of DiGRA Nordic
2012 Conference: Local and Global—Games in Culture and Society. Available from http://www. digra. org/dl/db/12168.04280. pdf. 2012.
Parker, F. “An Art World for Artgames.” Loading… 7.11 (2012).
Paul, C. “Optimizing play: How theorycraft changes gameplay and
design.” Game Studies 11.2 (2011).
Rohrer, J. 2007. “What I Was Trying to Do with Passage”
http://hcsoftware.sourceforge.net/passage/statement.html
Salter, A., and J. Murray. Flash: Building the Interactive Web. MIT Press, 2014.
Sample, M. “A Revisionist History of JFK Reloaded.” Jun. 7, 2011. Accessed: Jan. 19
2015.
Sharp, J. “A curiously short history of game art.” Proceedings of the International
Conference on the Foundations of Digital Games. ACM, 2012.
Sicart, M. “Against procedurality.” Game studies 11.3 (2011).
Skolnik, M.R. (2013) “Strong and Weak Procedurality.” Journal of Gaming and Virtual
Worlds. Vol. 5, Iss. 2. 2013. pp. 147-163
Treanor, M., and M. Mateas. “An Account of Proceduralist Meaning.” (2011).
Treanor, M., M. Mateas, and N. Wardrip-Fruin. “Kaboom! is a Many-Splendored Thing: An interpretation and design methodology for message-driven games using
graphical logics.” Proceedings of the Fifth International Conference on the Foundations of Digital Games. ACM, 2010.
Wardrip-Fruin, N. Expressive Processing: Digital fictions, computer games, and software
studies. MIT press, 2009.
Whalen, Z. “Using Passage to Think About Cultural Privilege.” Nov. 27 2012. Accessed:
Jan. 19 2015.