Curveship

Interactive Fiction + Interactive Narrating

Curveship is an interactive fiction system that provides a world model (of characters, objects, locations, and things that happen) while also modeling the narrative discourse, so that the narration and description of the simulated world can change. Curveship can tell events out of order, using flashback and other techniques, and can tell the story from the standpoint of particular characters and their perceptions and understandings.

The system has been developed up to this point with advanced users, such as researchers and programmer/authors, in mind. Some understanding of narrative theory, some understanding of interactive fiction, some ability to program in Python, and a willingness to use a command-line system are important to effective use of Curveship at this point. While I hope that Curveship, or components of it, will eventually be of use to a wide variety of users and developers, my initial goal has been to develop a system that will be of value to these groups of people:

Narrative Variation

Narrative variation means telling the same underlying events in different ways. It's a nice trick that writers and other storytellers have employed very effectively for thousands of years. Just as typical IF systems can model a fictional world, Curveship can apply different narrative styles—automatically, in a way that that an interactive fiction author determines and programs. Curveship can tell the following (non-interactive) story:

The twitchy man puts on a Dora the Explorer mask.

The twitchy man leaves the street.

The twitchy man examines the lobby.

From here, the twitchy man is able to see: inside the vestibule, some deposit slips, the bank teller, and a black bag.

The bank teller waves to the twitchy man.

The twitchy man brandishes a gun-shaped object at the bank teller.

The bank teller laughs.

Something sees the twitchy man.

The bank teller puts something in the black bag.

The twitchy man turns to the burly guard.

The burly guard shoots the twitchy man in the chest.

The burly guard shoots the twitchy man in the chest.

The twitchy man falls.

The twitchy man dies.

The bank teller cries.

With a particular "spin." For example, in reverse-chronological order, with an appropriate shift of tense after the first sentence (spin/retrograde.py):

The bank teller cries.

Just beforehand, the twitchy man died.

Previously, the twitchy man fell.

Earlier, the burly guard shot the twitchy man in the chest.

Previously, the burly guard shot the twitchy man in the chest.

Previous to that, the twitchy man turned to the burly guard.

That was after the bank teller put something in a black bag.

Just beforehand, something saw the twitchy man.

Previously, the bank teller laughed.

Previous to that, the twitchy man brandished a gun-shaped object at the bank teller.

A moment before the bank teller waved to the twitchy man.

Before that, the twitchy man examined the lobby.

From there, the twitchy man was able to see: inside the vestibule, some deposit slips, the bank teller, and the black bag.

Earlier, the twitchy man left the street.

Previously, the twitchy man put on a Dora the Explorer mask.

Focalized by the guard and told by the guard to the bank teller (spin/told_and_focalized_by_guard.py):

I was snoozing.

The twitchy man brandished a gun-shaped object at you.

I woke.

I saw the twitchy man.

I saw that the twitchy man possessed the gun-shaped object and was wearing a Dora the Explorer mask.

I left the guard post.

I examined the lobby.

I saw the twitchy man. The gun-shaped object was held by the twitchy man. The Dora the Explorer mask was on the twitchy man.

From there, I was able to see: inside the vestibule, some deposit slips, you, and a black bag.

You put something in the black bag.

The twitchy man turned to me.

I shot the twitchy man in the chest.

I shot the twitchy man in the chest.

The twitchy man fell.

The twitchy man died.

You cried.

Focalized by the guard and told by the guard to the the bank teller, hesitantly (spin/told_and_focalized_by_guard.py spin/hesitant.py)

I, uh, was snoozing.

The twitchy man brandished a gun-shaped object at you.

I woke.

I saw the twitchy man.

I, uh, saw that the twitchy man possessed the gun-shaped object and was wearing a Dora the Explorer mask.

I left the guard post.

I examined the lobby.

I saw the twitchy man. The gun-shaped object was held, uh, by the twitchy man. The Dora the Explorer mask was on the twitchy man.

From, uh, there, I was, uh, able, um, to, uh, see: inside the vestibule, er, some deposit slips, you, and a black bag.

You put something, uh, in the black bag.

The twitchy man turned to, uh, me.

I, uh, shot the twitchy man, er, in the chest.

I shot the twitchy man in the chest.

The twitchy man fell.

The twitchy man died.

You cried.

Or told in a prophetic way by a narrator who is hesitant, somewhat pleasantly surprised, and speaks in the stereotypical style of a "valley girl" (spin/prophecy.py spin/hesitant.py spin/surprise.py spin/valley_girl.py):

The twitchy man will put on a Dora the Explorer mask!

The twitchy man will leave the street! Wow!

The twitchy man, um, like, will examine the lobby!

From, like, uh, there, like, the twitchy man will be able, like, to see: inside, like, the vestibule, some deposit slips, um, er, the bank teller, like, and, like, a black bag, man! Wow!

The bank teller, like, uh, will wave to the twitchy man!

The twitchy man, like, will brandish, like, a gun-shaped object at the bank teller!

The bank teller, like, uh, will laugh!

Something will see, like, the twitchy man, man!

The bank teller, like, will put something in, like, um, the black bag!, totally.

The twitchy man will turn to the burly guard! Incredible!

The burly guard, like, will shoot the twitchy man, uh, in the, like, chest! Out of this world!

Whoa, the burly guard will shoot the twitchy man, like, in the, like, chest! Amazing!

The twitchy man will fall!

The twitchy man will die! Incredible!

Dude, the bank teller, like, er, will cry! Awesome!

And, Curveship can do all of this and more with interactive fiction, not just with fixed representations of stories.

The Name

I think of the word "curveship" as meaning "the essence of curvature," just as friendship and authorship indicate the essential qualities of being a friend and author. The system Curveship is so named because it is meant to model the essential qualities of variation—the curve of a story through its telling. The word was first used by Hart Crane (1899-1932) in the last line of his poem "To Brooklyn Bridge":

O Sleepless as the river under thee,
Vaulting the sea, the prairies' dreaming sod,
Unto us lowliest sometime sweep, descend
And of the curveship lend a myth to God.

—Nick Montfort
February 2, 2011