Storytron > Swat > Immersive tutorial (Part 1) > A First Look at Script

A First Look at Script

image

Does Script look weird? That's because it is weird. It's also very powerful - Script to a storybuilder is like a full set of colors to a painter: you can do anything with it, provided you know how. And to explain the "how" part, you first need to know a little about the "what" part. You can read about it in the overview. I highly recommend you read the article "More about Dramatic Principles and Components" before continuing.

Here's a short rundown: In Storytronics, Actors interact by performing Sentences such as "Bill Tell Wanda that Bill love for Wanda big", or "Robin Shoot Carl". Whenever an Actor performs a Sentence, all those present, including that Actor, may want to react to that Sentence. But not everyone will want to react in the same way. For example, if Robert stole Mary's wallet, they would both want to react - Robert would want to run away, and Mary would want to get her wallet back. In Storytronics, we would say that Robert has assumed the Role Thief, and Mary has assumed the Role TheftVictim. Each of them will then react to the Sentence according to the Role he or she has assumed. Of course, different Sentences call for different Roles. For example, if Robert gave Mary a flower instead of stealing her wallet, she would more likely assume the Role GiftReceiver.

Unlike in real life, in Storytronics Actors don't create Sentences freely by mixing and matching words. Instead, a Sentence's Verb determines that Sentence's form. The Verb also determines which Roles Actors can assume in reaction to the Sentence. For example, suppose the following Sentence happens in a storyworld:

Fred Tell(Actor) Dick that Jane Smart small

In English, this would mean "Fred tells Dick that Jane is pretty stupid." Here's what goes on in the minds of both Fred and Dick:

"Ooh! A Sentence! I want to assume a Role! Let's see, the Verb is Tell(Actor), so I need to go over to that Verb to see what Roles I might assume…"

image 

Since there's only one Role for this Verb, our heroes Fred and Dick don't have a lot of choice. Either they assume this Role or they don't react at all. Of course, not every Role fits every Actor. For example, we said earlier that if Robert gave Mary a flower she'd probably assume a Role like GiftReceiver. But what Role would Robert assume? I think he wouldn't assume any Role - after all, why should he react to his giving Mary a flower? I'd expect him to wait passively until she reacts.

Therefore, each Role has what we call an AssumeRoleIf Function. This is a Script Function that allows an Actor to determine whether to assume this Role. We've already looked at the AssumeRoleIf Function for the DirObject Role. Here it is again, with an English translation:

image

Here our heroes' paths diverge. Fred looks this Function over and thinks: "Is the following true? Am I the same Actor as the DirObject of the Sentence just performed? Well, of course not! I was the Subject of this Sentence, Dick was the DirObject! Guess I can't assume this Role, then." Dick, of course, finds that this Role suits him like a glove, and promptly assumes it.

NOTE: A Role's name has no effect on which Actors may assume it. Only the Role's AssumeRoleIf function decides which Actors may or may not assume it.

By the way, note that the player's freedom of choice does not extend to Roles. In other words, while the player is free to make many kinds of decisions (explained in the following chapters), he or she cannot choose which Roles to assume. This decision is made for the player automatically, using AssumeRoleIf functions, just like for the computer-controlled Actors.

Assuming a Role is only the first step Dick takes to react to Fred's Sentence - now that he's assumed a Role, Dick must decide what, exactly, he wants to do. We'll discuss that in the next chapter.

Next: Adding Options