Argax Project

Node Status: COMPLETE

Conclusion

Implementing Marlinspike and Demeter thus posed a number of challenges. As a summary of those challenges, this implementation project was characterized by simplicity, complexity, opacity, brittleness, and moderate success.

Simplicity: In retrospect, Inform was too simple a language to comfortably implement Marlinspike and all of the scenes. In focusing only on story structure, Marlinspike was also too simple, leaving many thorny problems for the scenes of the implementing game to handle. While a reusable interactive drama framework must be agnostic about the content of any particular story, greater structural support for the inner contents of scenes is still needed.

Complexity: There is a great deal of content required of the author--from world object definitions, to characters and their motivations, to the scenes themselves--and all of these components then interact with each other. Much of the state management performed by scenes in this implementation was rather ad hoc, rather than through previously well-defined means such as NPC deeds. The resulting story structures and contexts are difficult to conceptualize, and there was little support for testing the resulting stories.

Opacity: For the players, the affordances of interactive fiction make it difficult to know what it is possible to do in the world, as well as how to then issue the commands to do it. For the author, the complexity can lead to moments of unexpected, and frequently unpleasant, surprises. In general, much of the internal richness of the NPCs and event structure goes unnarrated.

Brittleness: Even minor errors by the finished system--such as subject-verb disagreements--are obvious and jarring. Yet correct performance is generally subtle and unremarkable. Combined with the complexity and opacity, this can leave an author with a sense of lurking game failures that will be both sudden and severe.

Yet, for all the problems and remaining warts, the project was still a success. Although perhaps simple and not as wonderfully varied as I had once envisioned, Marlinspike/Demeter does produce a wide range of stories with the material it has to work with. It translates verbs into actions based on the current story context. In doing so, it also builds a very detailed model of the story that includes both player actions and system scenes. With a few small improvements, this basic architecture could serve very well as a solid foundation for further interactive drama development. Reincorporation also proved useful, especially in the way that recasts and preconditions form logical links between different events in the system's story model. Finally, given all the complexity, bugs in the final implementation are relatively rare.

But these are only my impressions as engineer and author. The next two chapters will provide the results of an evaluation of Demeter by other players, focusing in particular on the effects of Marlinspike's reincorporation feature. Then, in the final chapter of this dissertation, I will outline some future work that is informed by both that evaluation and the lessons learned here.