Zombie Code and Extra-Functional Significance

Last week a controversy erupted when a player discovered that the newly released Steam version of Dead Island contained a fragment of code with a variable named “FeministWhore.”  The developer of the zombie shooter, Techland, quickly offered an apology and explained that code was in one of the game’s “leftover debug files” and was the result of a single programmer, who “will face professional consequences for violating the professional standards and beliefs Techland stands for.” The controversy was well covered by Tracey John (in an aptly-named post called Misogyny in code is still misogyny), as well as by Denis Farr at the feminist and queer gaming site The Border House.

The controversy came to my attention when Simon Ferrari compared it on Twitter to my Play the Past post on the sexist code in JFK Reloaded. I’ve been hesitant about mentioning the Dead Island uproar here though. On one hand, the recent controversy does echo the more obscure JFK Reloaded example. On the other hand, Dead Island doesn’t exactly fall under the purview of Play the Past. President Kennedy belongs to history. But how is a game about zombie hordes descending upon a vacation island getaway part of our cultural heritage?

And yet, isn’t misogyny an inescapable aspect of our culture?

And too, aren’t videogames?

And heck, as Kyle Bishop demonstrates in American Zombie Gothic, zombies play an enduring role in our cultural imagination, fungible monsters that society can imbue with whatever anxieties are most pressing at any given time.

And so here I am, writing about zombies on Play the Past.

Except, I don’t really want to talk about zombies. I want to talk about code. The “leftover debug file” that contained the offending code in Dead Island was supposed to be inaccessible. Deleted. Dead and buried. And yet there it was, latent and waiting, and all it took was a bit of digging around on the part of some intrepid grave robber, and the fragment of code with the “FeministWhore” variable stirred, not exactly alive, but certainly not dead.

Useless code and comments in code—these are the zombie figures of software. They serve no purpose in a program’s execution, but they exude what Mark Marino calls extra-functional significance. They have meaning beyond the program. They speak not to the machine or the compiler, but to a different audience, another reader.

In software development, that other reader is often idealized as other programmers on the same project, though in practice the other reader is more likely to be a future version of the programmer him or herself (see Clinton Lanier’s fascinating study on the practice of source code commenting). The examples of JFK Reloaded and Dead Island, though, suggest that users and players should be counted among the audiences programmers can expect will see their code.

Writing about the code of JFK Reloaded, I likened comments in software to marginalia in texts. Jeremy Douglass has made a similar textual metaphor, describing comments in code as paratext, “continuous with and yet set apart from the source.” I’ve never pulled any punches when it comes to critiquing the blunt application of literary theory to software:

Discussed at pre #THATCamp gathering: literary theory doesn't even work on literature, so why would you use it to analyze code?
@samplereality
Mark Sample

But—returning to the opening example of Dead Island—it’d be foolish to deny that there are traces in code that can wound people, make them laugh, expose adolescent fantasies, or simply gesture toward the tedium of software development. Code can do all these things. Unexecutable code, leftover code, zombie code can do all these things. And increasingly, I think, it will be incumbent upon scholars from every imaginable discipline to treat code as a worthwhile object of study from their own vantage point. Textual studies—the perspective I most readily adopt—but also rhetoric, composition, history, cultural studies, sociology, archaeology, philosophy, and many others can add to our understanding of code, but more importantly, an understanding of the social and historical context from which that code emerges.

Code is too important to be left to coders. Zombie code especially.

4 Comments

  1. While I would agree that many attempts to apply literary techniques to code are very poorly thought out, I think that there is something to be said for looking at the Dead Island code from a more textual perspective. Just as the comments in JFK Reloaded undermine a serious historical reading of the game, the Dead Island code undermines a reading of Purna as an empowering female character.

    Even though this subject is much more of a current event than a historical one, I think the historical or archaeological metaphor is an apt one for this kind of approach. The “FemministWhore” variable may not be part of the current game, but it’s an important part of the game’s development history, as it is most likely the early version of the “Gender Wars” skill. Digging through the buried code fragments of Dead Island could be thought of as a digital equivalent to venturing into the catacombs beneath modern day Naples to find insights into its present culture.

  2. What really intrigues me, as a coder, is actually the laxity of quality control endemic to the development process that is responsible for leaving zombie code in place. Nevermind that nearly all non-open source licensing agreements specifically prohibit the licensees from perusing the project code, zombie code itself is normally code belonging to removed sections of a project: features that have been deleted, maps or levels that are incomplete, and so on. The rest almost always consists of hooks for future features or updates. Comments are not themselves zombie code at all, although zombie code may often include them, especially in terms of code snippets left for future use.

    That said, a completed project almost always has some zombie code in it, even if it is never intended to have updates or added features. Rockstar’s “hot coffee” fiasco comes to mind, illuminating a problem with the industry’s response to end-users illegally digging around in their software but also in the practice of leaving zombie code in place to begin with and not being mindful of what the comments may say about the project or the companies developing it. In that particular case, the user that discovered the zombie coffee was violating his end-user agreement by mucking around in the code to begin with, and Rockstar should have sued for contract violation and for damages stemming from the revelation of the intended function of the zombie. Legal precedence establishes Rockstar’s ability to have done so at the time, and their choice not to is baffling.

    However, had Rockstar, Traffic, or Techland enforced a proper policy on cleaning up their code, none of those particular examples would have come up to bite them. In my own experience (mostly military), comments should always and only be short, concise, and relevant directly to the code they are attached to. Zombie elements should always be removed or kept deliberately skeletal in the case of feature hooks. Partly because military hardware is often surprisingly lightweight compared to civilian systems and filesize bloating/code processing times are a concern, but also because the military places specific restrictions on the kind of speech found in the Dead Island or JFK: Reloaded examples. Not that any of that keeps the software from seeming to be deliberately obtuse or user-unfriendly or slow-running even on a fast machine, but….

    Of course, only an idiot would ever have thought that those examples would be acceptable things to leave in a consumer product. But the companies involved also show a deplorable lack of awareness of their employees actions when they approve and release code without some kind of quality control step. There may be story considerations in a script for including that kind of language, but there is no excuse for putting it in the comments to begin with.

    Of course, if everyone followed the precepts for commenting that i was taught, there wouldn’t be very much to study, using literary techniques or not….



Leave a Reply to dunerat Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.