Here’s where the rubber hits the road. Remember that an event is defined as a sentence consisting of a subject, a verb, and some additional objects specified by the verb. Whenever an event takes place, there has to be some kind of reaction to it, some response. That response is itself another event. In other words, an event triggers another event, which in turn triggers another event, and so on. The result is a story: a sequence of causally related events.
This process of event generation requires that we specify processes for how one event triggers the next event. These processes are specified by the verb. Here’s how we do it.
The first step is the realization that, depending upon the circumstances, one actor might react to an event in a manner entirely different way that another. For example, let’s consider a standard barroom brawl scene. Black Bart punches Little Willie, whose older brother, Big John, will react in a manner totally different from how Little Willie’s girlfriend Nell will react. Big John will react physically (punching Black Bart or shoving him and hitting him over the head with a chair) while Nell might react by crying out or begging Black Bart to stop or consoling Little Willie.
We express this distinction with the concept of a “role”. A role is specific to a verb; it represents the possible dramatic configuration. Thus, for the verb “punch”, we might have the following roles:
Kin
Friend of Direct Object
Girlfriend of Direct Object
Sheriff
There are other possible roles, of course, but these are likely the most dramatically significant ones. Each of these roles implies a set of possible reactions to the verb “punch”. It’s important to differentiate actors from roles. Little Willie might not have a girlfriend; the sheriff might be somewhere else; maybe Little Willie has no friends or kin present. Roles are possibilities, not certainties.
When an event takes place, we must first check all the roles specified for the verb to see if any of them are in play. We do this with a role activation algorithm. For each role, we test each actor with a simple boolean test: does the actor witness the event, and does the actor fufill the requirements of the role? If we get the answer “yes” to these questions, then we activate that role for that actor.
Far and away the most common role for any verb is “Direct Object”: the direct object of the verb. In the event “Black Bart punches Little Willie”, Black Bart is the subject, ‘punches’ is the verb, and Little Willie is the direct object. The direct object is almost always the most likely person to react to an event, so the role for the direct object is almost always present. The boolean test for the role activation algorithm is simple:
Is the actor in question the direct object of the verb?
A “yes” answer to this question triggers the role for the actor in question.
Emotional Reaction
A active role first calculates the emotional reaction of the reacting actor to the event. Obviously, Little Willie is going to have some feelings about being punched. So we’ll need some algorithms to carry out Little Willie’s emotional reactions. It’s likely, for example, that Little Willie will have reduced affection for Black Bart because of the punching. So we might have an algorithm like this:
pBad_Good[Little Willie for Black Bart] = Blend(pBad_Good[Little Willie for Black Bart], -0.99, -0.8)
This Blend will start at pBad_Good[Little Willie for Black Bart] and shift it downwards towards -0.99 by -0.8, which is a very small movement distance. If you think that punching deserves a bigger shift, then use -0.6 or -0.3 or some other value instead of -0.8.
Options
The main task of a role, however, is to figure out what the actor DOES in response to the event. What verb does the actor choose in response to the event? Obviously, Little Willie won’t respond to being punched by kissing Black Bart or inviting him to play ping pong or gossiping about the sheriff. There are only a few verbs that are dramatically appropriate the situation. The determination of those verbs is the most fundamental artistic decision that the author of a storyworld must make; almost everything about a storyworld is consequent to that determination.
Before I can explain how Options work, I need you to understand a number of concepts that are best illustrated in the scripting language I developed for interactive storytelling: Sappho.