The Narrative engine


Just as a computer has a Central Processing Unit (CPU) that is the very heart of the computer, interactive storytelling must have a narrative engine to provide the fundamental operation of the storyworld. The narrative engine used in Siboot is surpassingly complex, so here we will present a much simplified version of how it works. The goal of this page is to demonstrate to you that the Siboot game is truly capable of some impressive storytelling behavior.

Basic Terminology

First, let’s start off with the basic concepts used in the engine. They are:

Actors: the easiest idea. Actors are the people who comprise the case of the game.

Traits: these are the personality traits of the various actors.

Props: objects.

Stages: places where action can take place. In Siboot, a maximum of two people can occupy a stage, but the engine can handle any number of actors on a stage.

Verbs: These are complicated. A verb defines an action. That includes all the ideas associated with the action. For example, the verb “greet” requires a greeter and a greetee. The verb “give” requires a giver, a receiver, and a gift. Some verbs can be even more complicated.

Events: An event is a single instance of a verb being executed. Here’s an event: "Joe gives Fred a bicycle.”. In this event, Joe is the subject, gives is the verb, Fred is the direct object, and the bicycle is the indirect object. Every event must contain at least a subject and a verb, and it can also contain a number of additional words.

The event cycle

Let’s start off with an event taking place. Let’s say that the event is “Joe greets Mary.” The engine first records the event in its History Book, a record of all the events that have taken place in the story so far. (The History Book permits actors to recall what has happened before so they can make informed decisions.)

Next, the engine decides how Mary will react to Joe’s greeting. It looks up the verb “greet” and calculates her internal reaction to the event. Does this make Mary happier? Will it make Mary like Joe more than she already does? The answers to these questions are provided by short scripts that the author supplies.

Having decided Mary’s internal reaction, the engine now figures her external reaction: what will she actually do in response? The author has supplied a list of verbs that might be appropriate for Mary to use in responding to Joe. Let’s say that list is as follows:

Hostile response (e.g., “Get lost!”)
Neutral response (e.g., “Oh. Hello.”)
Friendly response (e.g., “How’s it going, Joe?”)

The author must provide an algorithm for each of the three responses specifying the inclination that an actor will have to use that response. The algorithm will of course depend upon the actor’s personality traits, mood, and emotional relationship with the subject of the sentence. The engine evaluates each of the algorithms and selects the verb whose algorithm produced the highest inclination value.

Having selected the response, the engine sets up a new event for it, something like “Mary says ‘Oh. Hello.’ to Joe.” That event is still just a plan, not an actual event that has happened yet. However, the next time around, the engine consults the list of plans that are waiting for execution, and finds Mary’s planned response to Joe. The engine verifies that conditions are correct to execute the plan, and if so, proceeds to execute it, turning it into a real event. At this point, the whole thing loops back up to the top of this section, with the engine recording the event in the History Book.


Warning! Simplification!
This is a highly simplified version of what the narrative engine in Siboot actually does. The true operation is vastly more complex, permitting lots of subtleties that are necessary for believable storytelling. But this description gives you an inkling of how the engine works.