Fundamental to the design of any symbolic language for interactive storytelling is the determination of the word types that the language will use. The set that was established for Storytron was as follows:
Characters
These are the easiest word type to define and use. The symbol need only show the face of the character.
Verbs
While
this word type is functionally simple, any language will include a
great many verb s and so much care will be required in creating these
verbs. One very useful tool is a determinative or radical.
Determinatives are like graphical suffixes that clarify the meaning of
an otherwise ambiguous symbol. Just as ‘baker’ is somebody who bakes and
‘bakery’ is a place where baking is done, determinatives can extend the
meaning of words.
I used a variety of graphical indicators in my symbolic language for Siboot. Every word was presented inside a circle, but the circle had to fit inside a square on the screen display. I used this outermost area to indicate negation; a black outer shell indicated the negation of the normal meaning of the icon:
This can also be accomplished with a “reversal” modifier attached to a word, like so:
Another application of the concept of determinatives is the use of the speech bubble to indicate the contents of a speech act:
Thought bubbles can also be used as determinatives:
Props
Any
physical object is a prop. A ‘prop model’, analogous to a personality
model, is necessary for storyworlds, but an extensive prop model is not
appropriate for drama. Who cares what the Maltese Falcon weighed, or
what the diameter of the One Ring was? This is dangerous territory,
because most designers have a background that includes extensive
reliance on props for the interaction in the game. You must NOT forget
that props do not provide much in the way of dramatic thrust to a story.
Stages
These
are the locations on which characters interact. The only traits we need
to assign to a stage are its name and which characters are there; there
is nothing else about a stage that is dramatically significant. Darth
Vader could have told Luke his parentage just about anywhere. Sometimes a
stage does play an important role, as in The Lord of the Rings. Frodo
had to drop The One Ring into the volcano. But this was really just a
device to force Frodo to traverse a lot of territory, experiencing many
adventures along the way. It was the adventures that made the story
interesting, not the volcano.
Traits
Traits
are like adjectives; they describe or modify nouns (Characters, Props,
and Stages). Traits are broken down by the type of noun they modify:
stage traits are distinct from prop traits which are distinct from
character traits. Traits do impose a dilemma upon the designer. On the
one hand, they reflect numerical values; we seldom need boolean traits
such as “virginal” or “broken”. The most common use of traits is as
manifestations of the variables in the personality model. We need to
know how Bad_Good a character is, or the pFalse_Honest value of one
character for another.
The dilemma arises from the fact that we cannot specify actual numeric values in our traits. We don’t want to tell the user that Amy is -0.13 Bad_Good. This problem is solved with:
Intensifiers
Intensifiers
specify the magnitude of any trait. They can also be used to modify
some verbs. For example, a rejection of an offer can be expressed with
differing levels of emphatic strength. Some verbs, such as ‘gossip’,
‘tell’, or ‘admit’ can’t take intensifiers.
There must be an odd number of intensifiers so that we can have a ‘zero’ or ‘neutral’ intensifier. I have experimented with differing numbers of intensifiers and have settled on seven as the best range. This permits adequate resolution without forcing too much resolution on the user. It also keeps menus reasonably short. But the number 7 is not adamant.
Intensifiers must have labels. The temptation is to use index values (-3, -2, -1, 0, +1, +2, and +3) but my preferred scheme is [very negative, negative, slightly negative, neutral, slightly positive, positive, very positive]. These labels seem to work well in almost every case. It is also possible, when providing a text translation, to assign custom identifier labels to each trait. Thus, intensifiers for Bad_Good might be [evil, bad, off, OK, nice, good, saintly] but I found this tedious.
Uncertainties
This
is a word type that I experimented with in Siboot. It was made
necessary by the ability of characters to lie. To cover their tracks,
they could declare a degree of certainty or uncertainty to their
statements. This permitted some useful subtleties in gossiping behavior,
but I found that the player was unable to keep up with these
subtleties. I recommend that this word type be avoided for the short
term.
Adverbs
Some
people have suggested a word type for adverbs. For example, they would
like to be able to differentiate ‘kiss’ as ‘romantic’, ‘sexual’,
‘friendly’, ‘fatherly’, and so forth. I see no need for such a word
type, as the differentiation can be made in the verb itself. Instead of
the single verb ‘kiss’ with adverbial modifiers, we simply have multiple
verbs: ‘kiss romantically’, ’kiss sexually’, and so forth. This does
raise a problem in that the adverb must be integrated into the symbol
for the verb as a determinant. Nevertheless, this approach is simpler
both in terms of user interface and computationally.