Creating Adventure in Style and The Marble Index in Curveship

##### The blog edition of my presentation at the Electronic Literature Organization’s ELO_AI Conference, Brown University, 5 June 2010

The process of writing and programming the first two full-scale interactive fiction pieces in the new system I have been developing, Curveship, has been a part of my poetic practice that I have found interesting and has also been a useful activity from several perspectives. Here I focus on the project _Adventure in Style_. I will also mention _The Marble Index_, a project that contrasts with _Adventure in Style_ in an important way. These two pieces, still in progress, are initial explorations of the potential of Curveship and of the automation of narrative variation. My hope has been that these two games will serve as provocative interactive experiences, whether or not those who interact with them are interested in Curveship as a research project or as a development system. Of course, it will be very useful if they also serve as demonstrations of how Curveship works. I have, additionally, used these two projects to help me determine what additional development is critical before I release Curveship.

While Curveship has functioned as a research system for several years and has been previously discussed from the standpoints of computer science, artificial intelligence, and narrative theory, this is my first attempt to discuss the specific pieces of interactive fiction that were conceived as aesthetic projects, rather than primarily for research or demonstration purposes.

#### Curveship

The system used to implement these pieces, Curveship, is an interactive fiction development system that provides a computational model of a physical world, as do existing state-of-the-art systems such as Inform and TADS. Curveship does something significant that other systems do not: It allows author/programmers to write programs that manipulate the telling of the story (the way actions are represented and items are described) as easily as the state of this simulated world can now be changed. It has been straightforward to simulate a character and to have that character move around and change the state of the world. In addition to this, Curveship provides for control over the _narrator_, who can speak as if present at the events or as if looking back on them; who can tell events out of order, creating flashbacks or narrating what happens by category; and who can focalize any character to relate the story from the perspective of that character’s knowledge and perceptions.

Curveship is a Python framework which will run on any computer that runs Python; I intend to release it under a free software license when it the core aspects of it are complete, well-tested, and well-documented. Rather than repeat what is already online about the system, I’ll just mention here that information about Curveship is available in several papers and in my 2007 dissertation. The best place to begin reading about the system is [my blog, _Post Position_](http://nickm.com/post/tag/curveship/), where papers and my dissertation are linked. My blog posts use the same (simplified) terminology as does the code; these terms (such as “spin” to refer to the specification for narrating) are the current, official ones. Some of my earlier publications, although they represent many aspects of Curveship well, use out-of-date terms.

#### _The Marble Index_

_The Marble Index_ simulates the experiences of a woman who, strangely disjointed in time and reality, finds herself visiting ordinary moments in the late twentieth century; the narration accentuates this character’s disorientation and contributes to the literary effect of incidents. So far, only a few sketches of parts of _The Marble Index_ have been done. In _The Marble Index_, the narrative style is controlled by the interactive fiction program. I am not very far along on this project, but I mention it because I anticipate that, just as the interactive fiction programs takes care of simulating the world in current IF, the program will usually take care of modifying the narrative style in a less direct way. _The Marble Index_ will probably be more representative of how the narrating will be controlled in a “typical” Curveship piece.

#### _Adventure in Style_

_Adventure in Style_ is in part a port of the first interactive fiction, the 1976 _Adventure_ by Will Crowther and Don Woods – one which adds parametric variations in style that are inspired by Raymond Queneau’s _Exercises in Style_ (_Exercises de style_, 1947). For several years, I have been beginning my presentations about Curveship by showing that the goal of the project is to combine _Adventure_ and _Exercises in Style_, because the two pieces show what is essential and compelling about interactive fiction (simulating a storyworld with a text interface) and about narrative variation. Now, in working on a creative project which is supposed to be effective as a stand-alone piece, not only as a demo, I am trying to combine these two much more literally.

In _Adventure in Style_, the player can rather directly control the narrative style by commanding the player character to manipulate an in-game object. The critical object here is the lamp, which the adventurer almost always needs to be holding in the cave. A special case, in which the player chooses to use the standard style throughout an entire traversal, gives the player an experience much like that of running the original _Adventure_ program. The fictional work of _Adventure in Style_ is almost complete, with the cave laid out as in _Adventure_ and many of the treasures and other objects implemented. Although the fiction file has not been fully tested, the map of and most of the puzzles in _Adventure_ are in place. Several of the possible variations in style, but not all the ones that are planned, have been implemented as well.

Several of my interests flow together, and then underground, in _Adventure in Style_. It is a port, and during my investigation of the Atari VCS (Atari 2600) with Ian Bogost as we worked on _Racing the Beam_, I found that ports are fascinating because they involve thinking about the essential aspects of a game and how they can be expressed in different ways across different platforms. When played in the standard narrative mode, one can see that _Adventure in Style_, in reimplementing a previous game, aspires to the unoriginality of Kenneth Goldsmith’s practice of uncreative writing, in which a writer simply transcribes or retypes text, such as a year’s worth of radio weather reports or a particular issue of _The New York Times_. Since narrative variation, the only aspect of the project that doesn’t come from _Adventure_, comes from _Exercises in Style_, _Adventure in Style_ is thoroughly uncreative: neither the original game nor the concept of variation sprang from my fictive forehead. Nevertheless, or perhaps because I have avoided trying to make any real contribution of my own, I find that these two great tastes taste great together. They serve as a way to understand the computer’s power to control the telling of a story and to model an underlying story world.

#### Grue Street

I took _Adventure in Style_ to the first meeting of Grue Street, an interactive fiction writers’ group that I started in Cambridge, Massachusetts as an offshoot of the local IF organization, The People’s Republic of Interactive Fiction. (In the tradition of Infocom’s _The New Zork Times_, we named the group to riff on a local writing center, “Grub Street.” Hopefully this organization won’t follow the lead of the Grey Lady and threaten us with a lawsuit.) Grue Street got off to a good start with six games and seven authors – one game was a collaboration. We required each attendee to bring something playable to the meeting, a “situation” of some sort:

> “Situation” can mean something like a puzzle, task, or conversation, which may take place in one room (or scene) or in several. The term is meant to be pretty open; it’s mainly to encourage authors to have more than just an empty setting (with nothing to do in it) or a lone character or collection of objects (with no reason to interact). You don’t need to have your whole game completed or even sketched out to participate.

The writers interacted with each piece as a group. On the one hand, this left each of us with only one transcript of play to study, but, on the other, it gave authors the opportunity to hear players thinking out loud and talking with each other.

I didn’t come away from the meeting with any ideas for major revisions to _Adventure in Style_, but the group’s reaction did help me think about frame the game, creating a useful welcome message, and choosing a good variation to introduce initially. It also made me realize that it will be hard for some people to see the project as anything more than a demo of Curveship.

#### Three Goals

My work on Curveship has been directed toward three major goals:

1. To advance and support research in natural language generation, narratology, computational creativity, and related fields.
2. To create a functional IF development system that allows authors to create games for players.
3. To enable new, compelling literary and aesthetic experiences.

“Shimmer,” advertised during the first season of _Saturday Night Live_, was a substance designed to be both a floor wax and a dessert topping. To update this for the 21st century, we might image a substance that is a floor wax, a dessert topping, and a hand sanitizer. While the three goals of Curveship do work together in certain ways, in other ways they make the research, development, and creative project seem a bit like “Shimmer Plus.”

An IF development system needs a reliable way for players to download games and probably for them to play games online, and, among other things, it needs a start-of-the-art parser. These are useful for goal 3 but unnecessary for goal 1. Generally, goal 1 and goal 3 involve pushing the envelope in some ways that are similar and some ways that are different, while goal 2 requires stability, documentation, and ease of use.

There are projects that have taken on two major and distinct goals at once. _Façade_ by Michael Mateas and Andrew Stern was an attempt to create a highly distributable, playable, and enjoyable experience that also advanced the state of the art of interactive drama. It was not itself a platform or development system, however. Graham Nelson’s co-development of Inform and _Curses_ involved creating a literary work and the now-dominant IF development system, but Inform (which has since been developed in very intriguing new directions) was not initially focused on expanding the possibilities of IF. Daniel Howe’s RiTa and Ben Fry and Casey Reas’s Processing have been developed first and foremost as general platforms, but have contributed along other lines. Nevertheless, projects that strive toward all three of these goals are rare.

I will be re-opening activity on Curveship this summer and would be glad to hear from people interested in using the system, as this will help me focus my efforts and create a release that works for the community interested in the system’s capabilities.

Choosing Chun-Li in the Rat Race

Here’s something with a good point and that’s worth watching: “Girls suck at video games” / “Les filles sont nulles aux jeux vidéo.” It makes me wonder about several things, and puts me in mind of a previous conversation about gender, gaming, and work, but for now, I’ll just mention one thing I’ve been pondering: Could a generally similar idea have been expressed as effectively in an actual video game? Or perhaps the answer to that is an obvious yes. How would it have been different if it was done as a game rather than a video?

@party: Weaving thread

I spent this weekend at @party 2010, the first (and hopefully not last) demoparty of this name. The event was in the Town of Harvard, Massachusetts – a bit outside of Boston. I heard four live music performances, saw an early cut of Jason Scott’s almost-finished Get Lamp documentary, and saw and heard grafix, music, and demos (wild and windows) in the Saturday evening compos. There were great tunes, a truly excellent 4k windows demo, an incredible demo running on an Arduino, and much more. Many thanks to the organizer, Metoikos, and everyone who helped her out. And, a big thanks to the demoscene!

Working with two others and using the moniker “nom de nom,” I completed my first demoscene production: thread, a Commodore 64 demo that has fewer than 32 bytes of code. (There are no C64 demos this size or smaller on pouet.net, as far as I can tell.) This demo is a tribute to a BASIC program that generates random mazes, one that exists in one form in the C64 User’s Guide but has also circulated as a one-liner. Here’s a version of the program:

10 PRINT CHR$(205.5+RND(1)); : GOTO 10

I developed thread working in person first with Le Colonial of Atlanta, a sometime co-author of mine who also writes Atari VCS games. (He’s also known as Ian Bogost.) At the party itself, I was fortunate to encounter C64 expert rv6502 of Montréal, who joined me and did the heavy lifting in the second phase of this project.

After working one evening with Le Colonial in Cambridge, we had a 32 byte program that wasn’t exactly like the original, but did something pretty cool. When I checked it out on my actual C64 right before I left for the party, however, it didn’t work. The SID was initialized differently in the emulators I’d used than it was on the box itself – as it happened – and there was something odd happening with my video display as well.

I brought my C64 to the event rather half-heartedly, without any way of getting programs onto it other than typing them in and without a display. Alas, I wasn’t going to get away from the program that easily: Dr. Claw brought me a monitor to use and NO CARRIER loaned me a flash cart – and, later, a physical copy of the Commodore 64 Programmer’s Guide. rv6502 and I sat down to work further on the program. It turned out my C64’s video was different that of the emulators I used, but also different from Ferris’s actual C64 (which matched the behavior of the emulators I tried). So it wasn’t just an emulator failing to match the metal; the two different C64s apparently have different KERNAL code in ROM. Dumping my machine’s ROM and used that with my emulator would have solved that part of the mismatch.

I won’t try to go into all the details of developing this demo, but there were two particularly great things about the process at a high level. First, I got to collaborate with and learn from two others at different points. Second, I got to learn a lot more about the C64, including many things I wouldn’t have run up against if I hadn’t been working on something like this. I’m not talking about small differences between emulation and the hardware, which were a minor part of this experience, in the end. I mean finding excellent facilities of the 6502 and the C64 to work around those which weren’t doing what we wanted.

We’ve released thread in three versions: The canonical one, which has 31 bytes of code but is in a 33-byte PRG file, because the beginning memory location is stored in the first two bytes of PRG files. If this bothers you, there is a 28-byte version which fits into a 30-byte PRG file and has all the same colors, but displayed in a way that we think is not as pretty. We also include a simple, straightforward reimplementation of the BASIC program above: A 20-byte program in a 22-byte PRG file. I’d love to get this uploaded to pouet.net at some point, but I don’t know how. For now, here’s a zipfile with source and PRGs.

thread got 4th place in the Oldschool category at @party. After you load a PRG file in your emulator (or on your C64), you can run it by typing “SYS 4096”.

Finally, these are the 31 bytes of thread:

A9 80 8D 0F D4 8D 12 D4 A8 B1 F9 8D 86 02 AD 1B D4 29 01 69 6D 20 D2 FF E8 D0 ED E6 F9 50 E9


The Future of Newspapers

If you want to know about the future of newspapers, you might look at the ones that are thriving rather than the ones that are struggling or collapsing. I learned recently that there is at least one fairly new, very successful newspaper company – Metro International. With a price point of zero for their tabloids, they offer advertising-rich layouts and tiny stories that (for clarity’s sake) don’t jump to other pages. It’s the newspaper equivalent of that gag on Suck.com where Terry drew a Web page full of advertising that had a tiny “content banner.” (Wish I could find it … but at least Suck.com is still online, for those who want to look.) Having recently read about this newsprint wunderkind, I picked up this weekend’s issue to see what they actually write Metro stories about…

My friend’s cat.

The First Oration against the Parser

Emily Short wrote an intriguing post about the parser in IF – actually, somewhat against the parser in IF. She explores alternatives to what she calls the “command line” in IF (not entirely inaccurate, but not the connection I’d most want to make) and ends up finding it to be more or less the worst of all systems except all the others, like democracy. The post has already garnered about 50 comments. In it, Short writes:

We have a two-part accessibility problem. One part is the interpreter: people don’t want to download separate files and don’t want to have to figure out file formats … The other problem is the parser.

I see a few problems with this. First off, let’s not stop at two. The world model that IF presents (with “rooms,” containment, light sources, and so on) is hardly accessible or immediately obvious. I think it works fairly well and creates a good abstraction of world that is suitable for text-based interaction. I think the world model of IF is a strength of the form, a success. But you still have to learn it. Figuring out the layout of an IF world is perhaps easier for new players in 2010 than it was in 1976, but there are certainly challenges to accessibility today in this aspect of IF.

The discussion in this post of the natural-language interface of IF and its supposed failings is what really seems to me to fall short:

Fundamentally, however, we’ve got a bigger problem, which is that the command prompt is a lie. It tells the player “type something, and I’ll understand you.” Which it won’t.

All interfaces are lies, in this case. If I click on my desktop, or on a blank area of the menu bar, it does nothing – or, you could say, it “doesn’t understand me.” If Mario is up against a wall, pushing the joystick (or d-pad) in the direction of the wall does nothing. There are plenty of ways to get almost any computer interface to not give you results, if you don’t learn how it works. You always have to learn something about how to use the interface to be able to control the computer program that uses it.

The parser, which asks “What do you (the detective) want to do now?” is making an offer: Tell me a simple action, usually a physical one such as PICK UP AX, and I’ll instruct the player character to do that. Yes, we have abbreviated way to indicate these actions: “east” or even “e” to mean “walk east,” “inventory” to mean “look at what I’m holding,” and so on. But I see the overall framework of interaction as being clear enough for players to learn, even if there are some issues for newcomers to IF.

I find Aaron Reed’s work hypertextualizing IF and allowing for other sorts of inputs to be intriguing, but I’m not compelled to go in this direction myself. I’m pleased with the textual exchange between player and computer and the basic framework in which the player is invited, consistently, to give a character an action to carry out. In the service of making things accessible, efforts to extend the parser to understand things such as “herring” are moves away from consistency. They may work in some ways, but they make this sacrifice.

Similarly, I disagree that it would be a good idea to have (as Short proposes) “a system where the player could select a noun, see what he could do with it, and select one of those options.” I actually wouldn’t particularly want this, any more than I’d want to be able to say “TURN LEFT!” to my car and have that override the steering wheel. It makes sense for a programmer to be able to determine an object’s methods, but the experience of IF for me is not mainly about programming; instead, it’s about directing a character through a world, often one that is strange. Using langauge, and specifically, a reasonably negotiated subset of a natural language like English, seems suitable for this.

I have to note in closing something that I find a bit amusing: As Inform 7 is taking a programming language for interactive fiction in a radically more natural-language direction, Short is arguing for an IF interface that is less like natural language.

Short has provided a prototype as part of her discussion, which I admire and wish I could do. Maybe after I finish Curveship…

Wheel Make You Texts

Just posted at ebr (Electronic Book Review) is Whitney Anne Trettien’s article “Computers, Cut-ups, and Combinatory Volvelles.” (We already love computers and cut-ups, but be aware that volvelles are extremely cool.) Some illustrations are still to come, but the article’s text and references are now up … I believe in link early, link often.

The article is born of Trettien’s born-digital MIT Comparative Media Studies thesis “Computers, Cut-ups and Combinatory Volvelles: An Archaeology of Text-Generating Mechanisms,” a two-or-more-dimensional arrangement of reconfigurable texts. Like a conservative child reacting against his liberal parents, the ebr article is linear, but that should offer an helpful complement to the machinations of the thesis. The article reels back to long before the 20th century avant-garde to find recombinatory text machines and perspectives on reading that are relevant to the digital age. I highly recommend the ebr piece to those working with ergodic texts and operating today’s textual computer machines. It will hopefully serve as a nice gateway drug, too, interesting more readers in Trettien’s combinatory thesis.

ELO_AI at Brown Wraps Up

The Electronic Literature Organization‘s conference at Brown University has new concluded – the workshops, performances, screenings, exhibits, and sessions all went very well, as did the coffee breaks and other times for informal conversation. Many thanks to the organizer of ELO_AI (Archive & Innovate), John Cayley!

The conference was a celebration of and for Robert Coover, co-founder of the Electronic Literature Organization and major American novelist, whose teaching and promotion of electronic literature has been essential to the field. Robert Coover was toasted and at least lightly roasted, heard papers presented on his work, and did a reading of the “recently renovated Hypertext Hotel” – a famous early project by students which did indeed turn out to have some recent renovations.

ELO_AI began on Thursday with an array of workshops by Damon Loren Baker, John Cayley, Jeremy Douglass, Daniel Howe, and Deena Larsen. Deena Larsen was later part of a great roundtable on archiving with Will Hansen, Marjorie Luesebrink, and Stephanie Strickland; the group discussed Duke University’s work with Stephanie Strickland’s papers (and digital works), the Deena Larsen Collection at the University of Maryland, and the efforts that the ELO made in the Preservation, Archiving, and Dissemination project. On the first day of the conference, Mark Marino organized a great panel with four undergraduate presenters. And, there was an opening reception at the Westminster Street gallery where an excellent show of digital literary work has been put together. While there was an array of work (in the screenings, performances, gallery, and sessions) from people who were presenting at an ELO conference for the first time, I was also glad to see many of the people who were instrumental in creating and publishing literary work on the computer more than a decade ago.

Without trying to enumerate every session of the conference, I’ll mention the Sunday 10am plenary to try to get across how wide-ranging the presentations and presenters were. In this session, George Landow, author of the famous Hypertext: The Convergence of Contemporary Critical Theory and Technology (1992), told the tragicomical tale of hypertext’s use in education at Brown. Angela Chang and Peggy Chi described two interactive projects for very young readers, projects that used my Curveship system and the Open Mind Common Sense project from Henry Lieberman’s MIT Media Lab group. Lawrence Giffin used the not-very-democratic framework of the salon to consider the important avant-garde site Ubuweb. And finally, Paola Pizzichini and Mauro Carassai looked into the Italian edition of Michael Joyce’s Afternoon and its almost total absence from Italian libraries. Certainly, some sessions were more focused – very focused in the case of the one on William Poundstone’s digital writing work; at least with a theme of process intensity, in the case of the session were I presented my work on Adventure in Style. But we had a genuinely diverse group of presenters, and sessions like this one on Sunday revealed this, while also showing that we do have cross-cutting interests and that we can have valuable conversations.

A special area if interest for me, interactive fiction, was represented by Aaron Reed, who did a reading of his Blue Lacuna in which he deftly showed both interactive sessions and the underlying Inform 7 code while a volunteer interactor spoke commands. Aaron Reed also gave a paper on that large-scale piece, explaining his concept of interface and his work on developing a non-player character who ranged across different spaces without being a simple opponent or companion character. In the same performance session and paper session, I got to see and learn more about Fox Harrell’s Living Liberia Fabric, a piece produced in affiliation with the Truth and Reconciliation Commission (TRC) of Liberia, incorporating video testimony, and employing Fox Harrell’s GRIOT system for poetic conceptual blending.

We welcomed new ELO board members and officers. Joining the ELO board are Fox Harrell, Caroly Guertin, and Jason Nelson. Dene Grigar took office as vice president, and Joe Tabbi completed his term as president, handing that role over to me.

During the sessions, we heard critical perspectives on many particular electronic literature work and some on the ELO itself, which will help us think about the challenges the Organization faces and how we can better serve readers and writers beyond American universities. The ELO has had ten years of growth and learning by now, and while there will be more of each to do, our four main projects are now well enough established that all of them are past 1.0:

  • The Electronic Literature Collection, the second volume of which has been edited and produced by an independent editorial collective and will be published soon.
  • The Electronic Literature Directory, which in its new manifestation offers community-written descriptions as well as metadata.
  • Our conference – this most recent one at Brown was our fourth international gathering.
  • Our site and our online communications, which offer information about the ELO and an introduction to electronic literature.

I’m glad to be starting my service as president of the ELO at a time when the organization has just had a very successful conference and has these other effective projects rolling. Thanks to Joe Tabbi and other past presidents and directors of the Organization for bringing us to this point – and, again, to John Cayley for bringing us all together at Brown.

Congratulations, CMS Grads

Now that I’m out of my academic robe and back into my more comfortable usual attire, I wanted to send a blog-based shout-out to those in Comparative Media Studies who finished their work in the past year and were awarded masters degrees on Friday:

  • Jason Begy
  • Audubon Dougherty
  • Madeline Clare Elish
  • Colleen Kaman
  • Flourish Klink
  • Hillary Kolos
  • Michelle Moon Lee
  • Xiaochang Li
  • Jason Rockwood
  • Nick Seaver
  • Sheila Murphy Seles
  • Lauren Silberman

Hurrah for Technology, ‘ology ‘ology oh – and for these recent MIT graduates.