Presence in Interactive Fiction

The first issue of the Journal of Gaming & Virtual Worlds, from earlier this year, sports a nice article by Alf Seegert, “Doing there’ vs. ‘being there’: performing presence in interactive fiction.” In it, Seegert sharpens the existing discussion of reader-response theory and IF to explain how IF may need to balance between boredom and overstrain and how the writerly role allows for new sorts of presence. He then conducts some good discussions of Jon Ingold’s All Roads (highlighting how the body of the player character is indicated) and Paul O’Brian’s Luminous Horizon (looking particularly at the subjective narration).

Looks like a single issue of the Journal of Gaming & Virtual Worlds costs £18, unfortunately. (Institutional subscriptions are £150.) Too bad, particularly since there are least three peer-reviewed, open-access, no-page-fee journals in the field (Game Studies, Digital Humanities Quarterly, and eLudamos) that were up and running before this one was founded. Update: That is the advertised price, but the issue is currently available for free, as is the article.

Read and Jump in Silent Conversation

“I had with me many tools, and dug much within the walls of the obliterated edifices; but progress was slow, and nothing significant was revealed.”

– H. P. Lovecraft, “The Nameless City”

Gregory Weir, who fashioned the very nice piece The Majesty of Colors, has a new game with levels built out of existing texts, including “The Nameless City.” The new platformer is called Silent Conversation, a title taken from poet Walter Savage Landor’s description of reading.

The Prufrock level in Silent Conversation

The second Nameless City level in Silent Conversation

My impression is that this one is not as short and compelling as The Majesty of Colors, but is more elaborate and is, if not a success, at least a very interesting failure. It’s not a particularly good or fun platformer qua platformer and doesn’t offer a very good model of the reading process, but it reveals more about about the potential of games as digital objects that can be both played and read. I don’t think that making levels out of pre-existing texts works nearly as well as would original writing, but the setting of those texts into interactive concrete was certainly done with care.

The model of reading is one in which you have to touch every word with your eye (your “I”, in this case) to seek a good score (represented as a letter grade, believe it or not). “Powerful” words fire slow-moving letters at you, which clear away your accomplishments on the screen if they hit you. In some places you can fall to your death and undo the reading on the screen, too.

If this were done as a parody of the reading process as conceived of in the educational system, it could work effectively. Playing the game does suggest to me things that I do when I read – looking back over the text for a word I missed or misread, trying to progress by looking at at least each phrase along the way. But the reading of these texts is numbed, rather than heightened, by having them as elements of play in this way. Just to stick to the mechanics, rather than looking to deeper aesthetic questions about reading: Words are either powerful or not, and I need to simply tag them in either case, carefully if they might undo some of my progress, quickly otherwise. Whether in a long fiction work or a short poem, I can, when reading on paper or e-book, skip back to re-reread without slogging back past each word, as I have to go in this game. And I can re-read sections when I’m done, too. While the phrases used as decorations add color and visual interest, this game, perhaps surprisingly, makes a less unilinear reading experience into a more linear experience in reading and playing. It also rewards a perfunctory glance and touch rather than requiring discernment, figuring out, and comprehension, as do some other video games made entirely out of words – works of interactive fiction.

Reading and playing are not two great tastes that taste great together in this case, but I appreciate Weir bumping them into each other in this piece and trying to figure out how they might enhance one other. And for those interested both in gaming and in digital writing/electronic literature, Silent Conversation is certainly required reading.

From nn to Curveship

This is the fourth in a series of posts about my interactive fiction system, Curveship.

I was recently asked to elaborate on the difference between nn (the research system I developed during my dissertation work at the University of Pennsylvania) and Curveship.

The most important difference is that nn is a research system that I used for making some advances related to computer science, computational linguistics, and narratology. The system was developed to prove certain points; it was used only by yours truly to implement narrative and text generation ideas and to run demos.

It worked pretty well for this. Using nn, I developed a new representation for the order of actions, one that can be used flexibly in text generation. I put together a string-with-slots representation used in templates, one that is much less cumbersome to use than a general abstract syntax representation. And I worked out how a focalizer world (now called a “concept”) can model an actor’s theory about the “real” or “actual” world that is central to an interactive fiction.

That’s not to say that you’d want to pick up this system, though, and start writing games in it. While nn in 2007 had all the basic components of an IF system (a parser, the ability to save an restore games, the ability to model a world), they were not all ready for prime time, because my development work was focused on trying to answer particular research questions.

So, I took the nn code and began working on a new project, Curveship. I wanted to release a system that was developed with other IF authors, other AI researchers, and other teachers of narrative theory and electronic literature in mind. Curveship is getting close to being this system – within a few months, I hope, I will get it to that point, with the help of a group of people, the Curveship crew, who are testing and commenting on pre-release versions.

Concretely, there are three main sorts of differences. First, bugs in nn that my limited use of the system didn’t expose have been fixed – and more will be. Second, there are improved capabilities that didn’t relate to my research goals, but which are important to IF authors. These range from better parsing and clarification (disambiguation) to better ways of formatting text to better capabilities for simulating physical aspects of the world. Finally, I have impeoved the interface, which includes changing the names of some components of the system. What used to be a “plan for narrating” is now “spin.” What I called “existents” (a perfectly nice but abstruse term from narratology) are now, more simply, called “items.” To avoid confusion, I even changed the name of the “Narrator” module, because “narrator” is a narrative function and a parameter that can be set within the system. This module is now called the “Teller.” There have been other name changes and a great deal of refactoring, some writing of docstrings, and other improvements to make the Curveship code more understandable and manipulable to those who want to get into it. The way string-with-slots templates are written has changed, too, as has the way items and actions are created.

The discussion of reply structures, focalizer worlds, and similar aspects of the system in previous publications (such as my dissertation) remains largely applicable to Curveship. But because Curveship is being developed with an eye toward a new group of author/programmers, researchers, and teachers, there have been many changes beyond the parts of nn that implement those core research contributions. Even some of publications and talks about Curveship from recent months have names for components that are now different and mention the old style string-with-slots formalism. That’s one of the reasons I’ve started in on this series of posts.

Worlds, Spin, and the Revolution of Curveship

This is the third in a series of posts about my interactive fiction system, Curveship.

Before I start descending into detail, I’ll explain why I think Curveship is a big deal.

Curveship does the usual work of an interactive fiction system when it comes to simulating a world: There are discrete rooms that make up the fiction’s locations, actors can inhabit and wander around these rooms, and things can sit in them, be taken and carried off or otherwise moved around. Items can change state, so that a lamp, for instance, can be turned on and off. Items can go into or onto other items, if they allow it. None of this is surprising; plenty of interactive fiction development systems already do all of it very well.

Hypertexts don’t do that. Hypertexts, including Web hypertexts but also pieces in HyperCard, Storyspace, Twine, and similar systems, present a structured document in which some phrases are hooked up to other pages. They might have guard fields or other pieces of code, but at their most essential, they are really strange surfaces of text, with phrases connected in an unusual topology.

Nothing’s wrong with hypertext. If you want to create an unusual language surface, to link pages together into a curious structure, it’s clearly the form to use. The play and connection of language can be intriguing and relevant. You can make a compelling literary work in this form, as several people have done.

But interactive fiction systems allow something else. You can put a simulated world underneath the text that people see. This lets you create different types of literary systems, which can be nice: Several people have created interactive fiction systems that are compelling literary pieces and that couldn’t have been realized as hypertexts.

In an important way, Curveship is to interactive fiction what interactive fiction is to hypertext. Just as interactive fiction added a new and significant model – a model of a simulated world – Curveship adds a model of the telling, of the narrating, of the way that the simulated world is represented in language. Curveship adds spin, as in the spinning of a tale and as in Spin Alley.

Curveship can leave actions out of the narrative, can reorder actions in the narrative to create flashbacks and flashforwards and retrograde narration and narration by category, can narrate at greater or lesser length, and can represent several actions in one statement or repeat the narration of a single action several times. The system can tell about what is happening in the simulated world from the perspective of any specified actor, based on that actor’s knowledge and perceptions, or it can narrate from a global perspective. It can tell about what has happened in the past just as easily as it can represent a current action.

The system is able to do this because it models every action that happens in the world, just as existing IF systems model every item. First-order representations of actions differentiate Curveship from other IF systems. And on that of that, a complete text generation system has been built, allowing for grammatical changes that follow from high-level narrative parameters – the spin.

Consider The Odyssey. Why is it interesting? Why has it shaped world culture and remained memorable for thousands of years? Yes, lots of interesting stuff happens in it. But the way it is told is also tremendously compelling – Odysseus listening to the song of his own exploits, shielding his eyes and weeping, being identified as the great hero, and then going on to tell the next part of the story in his own voice. That’s as fascinating a part of The Odyssey as is the encounter with the Cyclops or the slaying of the suitors. And the telling surely becomes more important in contemporary literature. Is Lolita really more interesting because of what happens or because of how it is told? What about Ulysses? To the Lighthouse?

Curveship’s modeling of the telling adds to the significant power that IF already provides by way of a model of a simulated world. Just as IF adds a simulated world to hypertext, Curveship adds control over the telling (that is, it adds spin) to the simulated world.

Those who want to create strange surfaces of text will want to work in hypertext. Those who want to have a simulated world will probably use an existing IF system. For those who are interested in varying the telling, as many great authors have done in oral, written, typed, and word-processed literature, it will be best to use a simulated world and spin: Curveship.

A Lexicon of the Curveship World

This is the second in a series of posts about my interactive fiction system, Curveship.

In writing about Curveship in any detail, I’ll have to use terms such as action, event, and order, which sound ordinary but are used in a special way in the system. Furthermore, I’ll have to use terms such as focalization and narratee, which do not sound ordinary, but have a meaning within narratology (a.k.a. narrative theory) and are important to the way Curveship works. I’m going to define a few of these terms – some I’ll save for later. Rather than sort them alphabetically, I’ll group them by how they figure in the system.

Worlds of Curveship

Actual World. Following Marie-Laure Ryan’s terminology, I consider the main, simulated interactive fiction world to be the “IF actual world,” that is, what is “actual” from the standpoint of the player characters and other actors. I’ve bothered to give this a special name (rather than just calling it the world) because it isn’t the only ball in play in Curveship.

Concept. A concept, formerly called a “focalizer world,” is a particular actor’s theory of the actual world, based on knowledge (put into a fiction file to begin with) and perceptions (gained as the actor moves around and looks at things). Concepts are almost never complete, and they may be wrong. They allow the telling of actions and the description of items to be focalized, that is, based on what a particular actor knows and sees.

What Exists in the World

Item. Basically, any object that has a representation. I could have called them “objects,” but that term means something different in object-oriented programming, even though items do end up being represented as objects. I could have called them “existents,” the term Seymour Chatman and other narratologists use, but that caused gnashing of teeth among some of the people I consulted, including one researcher whose first language wasn’t English. Items must be in one of three categories.

Actor. An item that can take action on its own, due to either code that an IF author has written or a script the author has dropped in. Any item can react, but only an actor can initiate action. Actors are also the only category of item that have concepts.

Cosmos. The special actor that is the root of the item tree. Responsible for earthquakes, power outages, and any occurrence where the author doesn’t want to model the cause as its own actor. The cosmos can also change the plan for narrating, which allows for a connection between the simulated world and the way the telling of this world is done.

Room. A discrete location which has exits leading to other rooms. Rooms are all on the first level of the item tree, directly below cosmos.

Thing. Generally, an inert item. Any item that isn’t a room and doesn’t need to act or have a concept is a thing. Things can react when something is done to them or done in the same room, so that pressing a switch on a lamp can cause the lamp to react by increasing its glow.

Item Tree. A structure representing all of the items in the actual world (or in a concept) and the relationship between them. It is a graph with a designated node (cosmos), directed links from parent to child, and no loops – that is, no item is its own descendant. Hence, a tree.

Parent-Child Relationship. The relationship between an item and an item a level under it, and connected by a link, in the tree. When an actor walks into a room, he or she becomes the child of the room. If the room moves (perhaps it’s an elevator) the actor will move with it. If the lights in the room become brighter, the actor and everything else in the room will be better illuminated. An apple placed in a sack similarly becomes the child of the sack and, for instance, is stolen if the sack is stolen.

Link. The edges (as they are called in graph theory) of the item tree, each one connecting an item to another item and indicating a parent-child relationship. Links are labeled, with the label indicating more about the relationship. If a person is holding a sack with an apple inside and wearing a cloak, the sack and cloak are the children of the person and the apple is the child of the sack. Furthermore, the link between the sack and the person is labeled “of” (indicating a possession) and the link between the cloak and the person is “on” (indicating something being worn). The link between the apple and the sack is “in” (indicating containment). If you have ever tried to use Inform 6 to model a desk that you can put things on (on top of) and in (in a drawer), something which is not very straightforward to do, you will see an advantage to the way Curveship works.

What Happens in the World

Action. A specific but fairly high-level action taken by an actor. An intended command (such as “get lamp”) usually corresponds to a single action. It also usually doesn’t make sense for an action to partly succeed; it either works or doesn’t, although the first components of it may succeed and later ones may fail. The set of actions is open. Authors can easily make up new ones. Actions are what the system narrates, because they are meaningful and high-level.

Event. A lower-level component of action. There are only five, representing different things to be done in the world. Any action is made of one or more of these with appropriate arguments. The five primitive events are sense, impel, misc, modify, and configure. Only the last two change the state of the actual world, modify by changing a feature of an item and configure by changing the item tree. Events are good for simulating the world – unlocking and opening doors, moving actors from room to room, and so on. But because they are so low-level, they are not very good as a basis for narration. We usually do not want to hear that an actor exerted force on a switch, then turned the lamp on, and then increased the glow of the lamp. But it’s nice to be modeling this under the hood, because if the lamp’s battery is dead, an actor might be able to do the first two things but not the third. If the battery is then replaced, the lamp should glow brightly right away, since the switch is in the on position.

Files of Curveship

Fiction File. What others call the “story file” or “game.” It can be a game, of course. Essentially, though, it defines a fictional (and simulated) world.

Spin File. A very short file with a few parameters and perhaps a bit of code, all of which could be included in a fiction file. These parameters determine how the story is told at a fairly high level. Released games probably won’t use spin files, but sets of these may be used in research and teaching dealing with narrative, because they allow different methods of telling to be applied to the same fiction file (or a set of fiction files).

These are the building blocks of the simulation done in Curveship. I should note that Curveship is designed to mainly simulate the physical world, not emotional states or conversations between actors. And, of course, it models the way actions are represented and items are described based on concepts of that world – it narrates in different ways based on parameters and code provided by IF authors. I’ll discuss how it does that in a future post.

Pythonic Textuality at NYU

I was very interested to learn that Adam Parrish, whose own Interactive Telecommunication Program (ITP) masters project was “New Interfaces for Textual Expression,” is now teaching Digital Writing with Python at NYU’s ITP. The course is concluding; Parrish and his students will mount a final performance on August 5 at 7pm. Parrish eschewed powerful, cryptic Perl for clarity of Python in this course on creating text machines, as I did in putting together The Word Made Digital, which I’ll be teaching again this Fall. His reading list overlaps with mine a bit and includes a nice article on appropriation in writing – I may just rip that right off. I won’t manage to be in New York to hear students read their programs’ output, but I hope the conclusion to the class goes well and that I’ll be able to read and run some things that will give me a sense of the event.

Introducing Curveship

This is the first of a series of posts about my interactive fiction system, Curveship.

Curveship is an interactive fiction development system that provides a model of a physical world, and its workings, as do existing state-of-the-art IF systems (such as Inform 6, Inform 7, TADS 2, and TADS 3). It will not have as many libraries, and will have no multimedia features, when it is released, but it will provide another significant capability: it will allow IF authors 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 the IF world can now be changed. While existing IF systems allow for the simulation of a character who can move around and change the state of the world, Curveship provides for control over the narrator, who can tell 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, not just a fixed PC or a hard-coded series of them, to tell the story from the perspective of that character’s knowledge and perceptions.

Curveship will have a closed round of testing and revision soon, and will be publicly released soon thereafter. This may happen as early as the end of summer, but if that timing makes little sense for the project or the IF community (IF programmers may be too busy finishing their IF Comp games at that point) the release could happen later.

I have had a very short page about the system up for a while at Curveship.com. As it explains in slightly more detail, the system’s starting point was my too-cleverly-named research system nn. I have been working for a while to get a usable programming interface set, to clean up the code, and to add some capabilities that are necessary for a usable IF system but didn’t have much research value to me, at least initially. Finally, the name of the system comes from a poem by Hart Crane. “Curveship is being fashioned to model the essential qualities of variation—the curve of a story through its telling—just as friendship and authorship represent the essence of being a friend and author.”

I’ve recently given a talk about the system to a group of roboticists and computational linguists at a workshop, and more recently (yesterday) got to discuss the practicalities and details of the system a bit with the Boston IF group; those folks provided some good suggestions at the levels I’m most concerned about now. I’m now going to begin writing, as often as I can, about the system, what principles it is based on, and how it works at high and low levels.

Curveship is a Python framework; to write a fiction file you simply write some Python code, instantiating classes for the most part, writing your own subclasses if you want items to do something unusual. There are a few fairly radical differences between Curveship and existing IF systems, but the two that will probably be most visible are the modeling of actions and the string-with-slots representation that is used for text generation. In Curveship, items do not change their own state. Changes of state, and the movement of items from one place or container to another, are accomplished only by actions. And, when actions are narrated or objects described, this is done based on a formalism that is a bit harder to write than a simple string would be. These are two of the the main aspects of Curveship that, although they demand more work from the IF author, allow for powerful, general ways of narrating.

Ideally, as I continue these posts, I’d like to write in response to your particular interests and curiosities. I’ll be glad to answer questions in comments if there’s a reasonably sort answer; if not, I’ll try to answer them in the context of a longer post.

Story Generation with Pookie and JR

Excerpts from the Chronicles of Pookie & JR:
Previously, Pookie and JR had only ever met at parties.
For the first few nights, Pookie and JR keep to their corners.
JR changes Pookie’s water. Pookie makes a mess of his feeding dish.
JR cooks slowly, foraging in this strange kitchen.
Tonight’s dinner puts one withered leek out of its misery.
JR hasn’t been sleeping much lately.
Pookie keeps his thoughts to himself.
To be continued…

J. R. Carpenter, author of Words the Dog Knows, Entre Ville, The Cape, and other fine works of e-lit, print, and xerography, has delightfully repurposed one of my 1k story generators to have it tell stories involving her and a hermit crab named Pookie. The program has grown to about 2k, but it uses the same simple (and surprisingly effective) method as my first generator does: It simply removes all but 5-9 sentences from a sequence, eliding some of what’s been written. Sometimes the reader is left to wonder who the hermit is. Here’s a direct link to the Python code for the program, and here’s the page on Excerpts from the Chronicles of Pookie & JR.

Rafael Pérez y Pérez to Speak at MIT

Next week, the Purple Blurb series offers a second special summer talk by a leading researcher in creative text generation. Rafael Pérez y Pérez will speak on …

MEXICA: A Computer Model for Plot Generation of Prehispanic Stories

MEXICA is a computer model that generates plots for short stories about the Mexicas, the old inhabitants of what today is México City, based on the engagement-reflection cognitive account of writing. During engagement MEXICA generates material guided by content and rhetorical constraints, avoiding the use of explicit characters’ goals or story-structures. During reflection the system breaks impasses, evaluates the novelty and interestingness of the story in progress and verifies that coherence requirements are satisfied. In this talk I will explain the main characteristics of the system, I will show how emotions are employed to progress a story in a coherent way and generate novel situations, and how the dramatic tension of the story in progress might be employed to evaluate its interestingness. I will present results showing how story generation is affected by various model parameters and I will compare MEXICA with other story-generators programs. Finally, I will mention how we are employing MEXICA as starting point for new research projects.

Pérez y Pérez will speak on Wednesday July 15, 6pm-7pm, at MIT in room 14E-310. This is in the same location as Pablo Gervás’s talk in May, and just one more floor up the stairs from the Trope Tank, where other Purple Blurb events were located. The talk is (as with all Purple Blurb presentations) open to the public.

Rafael Pérez y Pérez.
Rafael Pérez y Pérez, creator of the MEXICA story system.

Rafael Pérez y Pérez earned a BSc. in Electronics and Computers at Universidad Iberoamericana in México City, a MSc. in Knowledge Based Systems and a DPhil. in Artificial Intelligence at Sussex University in England. His research has focused on computer models of creativity. He and his students have developed programs that write short stories, compose music, and solve geometry problems, among other things. In 2006 he organised the Mexican Creativity, Cognition and Computers research group (MCCC) which aims to gather together a multidisciplinary group of researchers and students interested in computational creativity. He has published different papers in the area and has participated as a PC member and co-chair in international events related to computational creativity. Currently he is a researcher and lecturer at The Autonomous Metropolitan University (Universidad Autónoma Metropolitana or UAM) in México City and an invited Lecturer in the MSc and PhD programs in Computer Science at The National Autonomous University of México (Universidad Nacional Autónoma de México or UNAM).

Computational Creativity at ICCC-X

The First International Conference on Computational Creativity will be taking place in Portugal on January 7-9 2010. ICCC-X will follow on a decade of smaller-scale workshops and symposia. The call for papers lists the deadline of September 26 (extended 5 days) for papers, and promises:

The conference will include traditional paper presentations, will showcase the application of computational creativity to the sciences, creative industries and arts, and will incorporate a “show and tell” session, which will be devoted to demonstrations of computational systems exhibiting behaviour which would be deemed creative in humans.

Note also that contributions are solicited in several areas, including “specific applications to music, language and the arts, to architecture and design, to scientific discovery, to education and to entertainment.”

Guardian Hails IF, Novelists

Keith Stuart’s provocative article in The Guardian plugs modern-day interactive fiction and suggests that novelists should be more involved in the making of video games, as they have been in the past. The article is on the right track. There is certainly reason for video game companies to license, or, less frequently, collaborate with those who make movies. But there are lots of things that games can do, and novelists could bring interesting perspectives, skills, and art to games – even they aren’t text-based interactive fiction. Of course, the right match has to be made and the writer has to be persuaded that video games are serious enough. I suggest Ubisoft grab Paul Auster, a dizzying writer. If he didn’t mind the association that come with writing and co-directing the movie Smoke, video games should be no problem.

Thanks to Emily Short for noticing this one.

Pablo Gervás to Speak at MIT

Next week, the Purple Blurb series offers a special talk by a leading European researcher in creative text generation.

Pablo Gervás (center) keeps his head above water.
Pablo Gervás (center) keeps his head above water.

Pablo Gervás works as associate professor (profesor titular de universidad) at the Departamento de Ingeniería del Software e Inteligencia Artificial, Facultad de Informática, Universidad Complutense de Madrid. He is the director of the NIL research group and also of the Instituto de Tecnología del Conocimiento.

His research is on processing natural language input, generating natural language output, building resources for related tasks, and generating stories. In the area of creative text generation, he has done work on automatically generating metaphors, formal poetry, and short films.

He will speak on Wednesday May 20, 6pm-7pm, at MIT in room 14E-310. The talk is (as with all Purple Blurb presentations) open to the public, and (as with all Purple Blurb presentations so far) will be in English.

Violet

At long last, this is a discussion – a review, of sorts – of Violet, an interactive fiction piece by Jeremy Freese. It isn’t the sort of review that tells you whether or not you should go play the game. Violet is an excellent game, and if you’ve been waiting on my recommendation, spongemuffin, you’ve been silly. It won the 2008 IF Comp along with four XYZZY awards, including Best Game. Go play it if you haven’t. If you have, read on for my mildly spoilery but hopefully incisive comments.

Spoilers

As you know if you’re reading the text in this box, Violet is a game in which you try to defeat distraction and work on your dissertation. The things that happen in the simulated world are narrated to you by the (imaginary) voice of your Australian girlfriend, Violet. While Violet won the XYZZY award for Best NPC, she isn’t an NPC, at least, any more than Lord Flathead is an NPC in Zork. She’s a narrator, and her narration is both lively for its own sake (filled with hilarious and diverse pet names) and suggestive of a relationship that is meaningful and interestingly textured. For a game with no NPCs at all (in the simulation itself), there is a lot of information being provided about other characters: The PC’s ex, Julia, and the “dork” she is talking to, the zombie horde visible through the window, the former occupant of the office, and of course our erstwhile narrator, Violet. The game shows how other characters can meaningfully manifest themselves even when they don’t do anything in terms of picking up objects, manipulating the state of the world, or serving as an explicit opponent (as the Thief did in Zork) or helper (as Floyd does in Planetfall).

This delights me; Violet is the second IF Comp winner in a row that features very unusual and effective narration. The whole point of my in-development IF system, Curveship, is allow for even more radical and general types of wacky narration. Violet shows that you can do something powerful already, just as hypertext allows you to model and manipulate space, with effort. If there were facilities for narrating provided – the way that there are facilities in IF for modeling objects, containers, action, and so on – it seems to me that significantly more could be done along these lines.

Violet demonstrates that it’s more interesting if the game’s replies vary and have some texture, as one would expect when reading a novel or poem. Even if the difference is just in a pet name, it’s a lot better than nothing, and provides some pleasure to the player. Of course, there’s much more in Violet that amuses: The tone of polite refusals to do certain actions and the recollections of a pleasant relationship and a brilliant personality, all mentioned at suitable moments during the course of ordinary actions.

The characters (again, none of which are simulated) are certainly great elements of Violet. The overall situation is also an interesting one: The PC has to get rid of, rather than acquire, objects, and shut out distraction to focus on a task. There’s the trial that the PC go though, the degradation that goes along with that, and the fitting ending in which the day’s accomplishment reveals a different course of life. The narrative as well as the narration works well.

If there’s anything that’s a bit awkward in Violet, it’s the puzzles themselves. Manipulating objects reveals things about the main relationship in the story, which is nice, but it doesn’t seem to fit into the scheme of the world as powerfully as quotidian actions do in Shade, for instance. There’s a lot of trial and error and mechanical manipulation (of projectiles, of one’s head) that is required. In the end, it’s neither an indication that a profound riddle has been solved or a powerful, revelatory gesture – it’s just showing you the extreme, absurd ends that you shouldn’t be going to.

That’s a minor criticism, though, particularly given the good hint system that is included in the game. And it doesn’t stop the the narrated characters, the overarching situation of the day, and the concluding twist from having their effect. Most of all, Violet shows that brilliant narration can be done in a comp game and can be done in a very different way than Lost Pig did it, and that, in a different way, the joys of reading can work together with those of game playing.

Newton and the Counterfeiter

My colleague Tom Levenson (also a fellow blogger) has a new book coming out in a few days, Newton and the Counterfeiter: The Unknown Detective Career of the World’s Greatest Scientist. If you hop over to the Barnes & Noble page for the book, you can see the video that he went to shoot in London not too long ago. This should make it clear that Tom is not only a science writer who uncovers intriguing episodes from the lives of famous scientists (Einstein in Berlin) but also an Emmy-award-winning filmmaker who has done a slew of NOVA documentaries. The video (and the book) delves into how Newton worked in his seldom-discussed role as warden of the mint, inviting us to read about how a great scientific mind turned to police work. I hope that when I need to promote future books, I’ll be able to get away with writing computer programs or doing something else that’s easy.