Generating Narrative Variation in Interactive Fiction (part 3)   Leave a comment

I am moving ahead to the third section of the dissertation (Review of Related Work), and specifically section 3.2 (Story Generation). Story generators have a strong influence on nn, so it’s worth the time to look at two of them: Tale-Spin (from 1976) and Brutus (from 2001).

(p. 29) A significant story generator is Tale-Spin, which used a conceptual dependency representation to generate and narrate the actions of characters in a simulated world. The idea was to generate events which were themselves interesting; once these were generated, they were narrated in an unvarying, direct way.

Tale-Spin is essentially a reactive agent planner. Here’s a sample run:

Once upon a time, there was a dishonest fox named Henry who lived in a cave, and a vain and trusting crow named Joe who lived in an elm tree. Joe had gotten a piece of cheese and was holding it in his mouth. One day, Henry walked from his cave, across the meadow to the elm tree. He saw Joe Crow and the cheese and became hungry. He decided that he might get the cheese if Joe Crow spoke, so he told Joe that he liked his singing very much and wanted to hear him sing. Joe was very pleased with Henry and began to sing. The cheese fell out of his mouth, down on the ground. Henry picked up the cheese and told Joe Crow that he was stupid. Joe was angry, and didn’t trust Henry anymore. Henry returned to his cave.

I am guessing based on this interview with the author of Tale-Spin that this story was considered an exemplar; it was used as part of a NOVA special on the mind. Two characters are given goals, and they conflict in such a way that an interesting narrative is developed. Of course, not every run was so lucky:

Once upon a time George Ant lived near a patch of ground. There was a nest in an ash tree. Wilma Bird lived in the nest. There was some water in a river. Wilma knew that the water was in the river. George knew that the water was in the river. One day Wilma was very thirsty. Wilma wanted to get near some water. Wilma flew from her nest across a meadow through a valley to the river. Wilma drank the water. Wilma wasn’t very thirsty any more.

Here the goals were set up, but the characters never met up to have a conflict. This can happen in IF, where actors wander about completing their goals but due to sheer bad luck nothing develops. With a story generator the sample texts can be cherry picked (I get the impression from reading commentary Tale-Spin could run even farther awry) but in an IF format we can’t generate a set of narratives and manually pick the “good” ones. Therefore the hurdle for IF is somewhat higher than story generators.

(While the original source for Tale-Spin no longer exists, there is a miniature version in LISP.)

(p. 18) A recent automatic storyteller is Brutus, a system that uses a formal model of betrayal and has sophisticated abilities as a narrator.

Here’s an excerpt:

Dave wanted desperately to be a doctor. But he needed the signatures of three people on the first page of his dissertation, the priceless inscriptions which, together, would certify that he had passed his defense. One of the signatures had to come from Professor Irons, and Irons had often said — to others and to himself — that he was honored to help Dave secure his well-earned dream.

The full story (very much worth reading) is here.

It’s much harder to find evidence of a reactive agent planner here (according to the dissertation it uses a “lexically-oriented approach of building stories from grammars that govern the text on different scales”) and from what I gather there is a great deal of pre-loading; the arc of a complete betrayal plot is expressed as a (quite literal) formula. However, the natural flow of the text is dazzling, and I imagine the ideal of nn would be to allow the mundane events of IF to be narrated in a manner similar to Brutus.

Posted October 11, 2007 by Jason Dyer in Interactive Fiction, Narrative Variation

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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

%d bloggers like this: