[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A system for interactive storytelling



I'm very glad that this mailing list has picked up again. In particular, I was very interested in Walt's post concerning "My Life With Master", which might be relevant to the system that I've been designing. I'd like to share my ideas and hopefully elicit some comments, if that's okay.

This system makes the subtext of a story interactive, rather than the plot. The stories themselves are intended to be linear; basically immutable and without branches. The player only interacts with the system by changing the attitudes and feelings of the characters in the story.

An author begins by writing a linear story. A markup language is used to delimit the story into lexias, and to denote which lexias represent player interaction (1). The author then defines variables that represent each character's mental state (2). Finally, the author adds "decoration" entries to the markup that conditionally modify lexias based on variable states, and also alter variables when encountered.

The example below shows the result of a basic lexia that is decorated based on a speaker's mood attribute:

	The basic lexia: "You're home late."

If Mood = 2: "My, you're home late! Why don't you sit down and I'll heat up some leftovers."
If Mood = 1: "You're home late. I hope you don't mind that we ate without you."
If Mood = 0: "Hmph, you're home late. You can fight the dog for what's left of your dinner."


When the player reaches an interaction point, the system does not automatically decorate the lexia. Instead, it gives the player a chance to select a decoration manually (3).

	The interactive response lexia: "I'll make a sandwich."

	"Sorry about that, I was busy.  Don't worry, I'll make a sandwich."
	"I'll just make a sandwich."
	"Sue me, I was busy. Nevermind, I'll make a sandwich."

When the player selects a decoration, the variable alterations attached to it are applied. These changes affect the mental state of the other characters, which in turn changes how their dialog is decorated.

A final component in this system is the Interrupt. When a variable crosses an author defined threshold, the system can introduce a new scene in response. This scene isn't a branch, but rather a brief tangent that will eventually lead back to the main story. For example, when a romance reaches a critical point, the author may choose to introduce a scene where the characters declare their love for one another.

I've enjoyed designing this system (which, as far as I'm concerned, is the whole point), but at the end of the day, creating a tool isn't the same as using it. This is where Walt's post on "My Life With Master" fits in. MLWM uses a similar interrupt mechanism to introduce dramatically appropriate scenes (4). It appears to work very well, which gives me a lot of hope that my system may actually work in practice.

I envision the system as a set of objects, or an API that would be integrated into traditional games. I won't develop it personally, but I may hire someone to code it...

...but only if I can prove that interesting stories can be written with it (which is proving to be difficult, I'm afraid).

Anyway, I appreciate any comments or suggestions that you may have.

Cheers,
B.

Notes:
(1) A lexia is a snippet of text (a term borrowed from http://ist-socrates.berkeley.edu/~arcadia/tesseract/lexicon.html).
(2) This may be a bit vague--sorry. The variables are used to store values like any programing language. Typically, these variables will represent the emotional state of a character.
(3) The decoration options presented to the player can be constrained based on the current state of the variables. For instance, a player may need to build a relationship via "flirty" decorations before any "intimate" decorations will become available.
(4) In particular, I was impressed by how the character attributes did not directly relate to the scene that was introduced (the self-loathing variable caused "The Horror Revealed", not the character loathing themself). I hadn't considered doing that before.