Argax Project

Node Status: COMPLETE

Implementation: Lessons from the Trenches

I originally planned to spend three to six months implementing the prototype version of the Marlinspike interactive drama system and the short text-based game, Demeter, that used it. In the end, this implementation took twenty-six months, from November 2008 to January 2011. It resulted in approximately 23,000 lines of Inform code and 9,000 lines of documentation. Only about 3,500 lines of code (15%) and 2,500 lines of documentation (28%) went into Marlinspike; the remainder went into Demeter.

As an example of "expressive AI" (Mateas 2002), this dissertation work as a whole involves theory-building, engineering, art, and scientific evaluation. The theory-building in Chapters II and III propose the means by which a reincorporation-based approach can produce a story structure that conforms to a neo-Aristotelian poetics while still offering the player a sense of user agency. Chapters VI and VII describe an empirical evaluation of these theoretical claims.

But, for the two years it took to implement Marlinspike and Demeter, I set science aside. Instead, it was an endeavor of both engineering and art. As an engineer, I saw the construction of my theoretical design into a concrete working system. As an artist, I then authored a particular user experience using that system. This final user experience arises from the descriptions of the virtual world, the nature of its characters, the tone of the narration, the specific user actions supported, the range of potential stories, and the choices made by the player that produce a single concrete narrative within that space.

One of the joys of such craftsmanship is that, as a creator, I can directly determine if my work is successful. As an engineer, I can test whether the system performs as I intended. As an artist, I can step back, tilt my head to one side, and see if the work before me mirrors my original vision of it. I don't need an audience or a controlled study to tell me whether I'm meeting my personal design goals.

This chapter explores the personal lessons I learned from the implementation itself: the stumbling blocks along the way, the compromises made, and the disparities between what I'd imagined and what I actually produced.

Works Cited