Siboot Design Document 7

NOTE: Previous design documents can be found here.


  • Removed “chat with” verb. Right now it’s too generic, don’t see what it brings to the storyworld (maybe in a later version, you can chat about specific things but, as Chris found out while working on Prom Night, Storytron doesn’t handle idle conversation very well).
  • Refactoring around the Meet & Greet verbs. Removed “return greeting” from the verb group because I couldn’t figure out a way to sequence it like I wanted – you “greet” someone; they immediately “return greeting” (see Event Sequencing).
  • Started working on implementing actor agency but got sidetracked into setting up initial trait values for the actors (see Implementing Actor Agency).
  • Finally came up with an implementation that tracts conversations between two actors (see Actors In Conversation).
  • Considered removing the “want to go to” verb but found a way to implement it that doesn’t appear to screw anything else up (see The “Want To Go To” Verb).
  • Finally prioritized the Trust & Betrayal interstitial stories and decided which ones to implement for the January 2011 release.


  1. Move “greet” code from InConversation3 storyworld to Siboot storyworld & debug – DONE
  2. Implement Chat roles and options
  3. Implement actor level 1 agency for Chat roles and options
  4. Implement Ask & Tell roles and options
  5. Implement actor level 1 agency for Ask & Tell roles and options
  6. Implement Accuse roles and options
  7. Implement actor level 1 agency for Accuse roles and options
  8. Implement Negotiate roles and options
  9. Implement actor level 1 agency for Negotiate roles and options
  10. Implement Temple roles and options
  11. Implement actor level 1 agency for Temple roles and options
  12. Implement Combat roles and options
  13. Implement combat architecture
  14. Implement actor level 1 agency for Combat roles and options
  15. Implement PC interstitial stories
  16. Edit backstory prop text
  17. Finalize graphics


Earlier, Chris suggested an approach to implementing actor agency, breaking it down into three levels.

  1. Confine all agency reactions of other actors to the immediate situation, using moods and perceived traits to control option choices.
  2. Factor in explicit references to the History Book.
  3. Factor in long-range considerations via Actor Weight values or special purpose attributes (something not even Chris has done at this time).

Implementing all three levels of actor agency will provide storyworld actors with the tools to exhibit dramatic, nuanced behavior. Of course, there’s so few people working on storyworlds and such a small body of work, that this is all theory.

I came up with settings for all the initial actor traits based on their descriptions and put them into the storyworld.

Each character has the following traits and moods

  • Quiet_Chatty – How talkative are you?
  • Cool_Volatile – How excitable are you?
  • Fear_Courage – How steadfast are you?
  • False_Honest – How trustworthy are you?
  • Treacherous_Loyal – How loyal are you?
  • Obnoxious_Charismatic – How persuasive are you?
  • Vain_Modest – How self centered are you?
  • Hated_Loved
  • Disgusted_Aroused
  • Sad_Happy
  • Fearful_Angry
  • Tired_Energetic
Here’s all the actor traits laid out in a compact format (accordTraits are the importance an actor assigns to each trait, perceivedTrait is their perception of another actor’s trait value).

Trait         accordTrait     perceivedTrait        Mood
Q —–+—– C aQ —–+—– aC pQ —–+—– pC d —–+—– a
C —–+—– V aC —–+—– aV pC —–+—– pV s —–+—– h
F —–+—– C aF —–+—– aC pF —–+—– pC f —–+—– a
F —–+—– H aF —–+—– aH pF —–+—– pH t —–+—– e
T —–+—– L aT —–+—– aL pT —–+—– pL
O —–+—– C aO —–+—– aC pO —–+—– pC
V —–+—– M aV —–+—– aM pV —–+—– pM
H —–+—– L aH —–+—– aL pH —–+—– pL

I spent some time setting all the actor’s traits based on the character descriptions in the original Trust & Betrayal (you can see them here).

After I set the traits in the Siboot storyworld I switched gears and decided to fix the “greet”/”return greeting” issues that have been plaguing the storyworld since I first tried implementing them (see Actors in Conversation below).


The attempts to synchronize an actor’s “greet” with another actor’s “return greeting” have caused me constant headaches because you can’t sequence events precisely in Storytron. Initially I thought about getting rid of the “return greeting” verb and use the “greet” verb for the DirObject of the greeting. But then what happens when the DirObject of a “greet” becomes the Subject of a 2nd “greet” and returns the greeting to the previous Subject (who’d become the Subject of a 3rd “greet”, etc.).

Decided to remove “return greeting” from the equation at this time. I originally wanted an actor to be able to see how a person returned their greeting to see how they felt about them but if someone is pissed off at you there are verbs (“accuse of betrayal”, “accuse of attack”) that they can use.


I think I finally figured out a way to handle excluding actors who are in a conversation from the direct object wordsocket of the “greet” verb that doesn’t rely on fiddling with the TimeToPrepare and TimeToExecute parameters of the verbs. Basically it involves having a set of specialized traits for each actor that handles conversation states, i.e. who is talking to whom.

  • TalkingToVetvel
  • TalkingToKendra
  • TalkingToSkordokott
  • TalkingToLocksher
  • TalkingToGardbore
  • TalkingToWiki
  • TalkingToZubi

Setting these traits for the subject and direct object of the “greet” verb is done using Consequences. It’s a little kludgy but it works. You can read about it in these posts – Actors Conversations in Siboot and Resetting Actor’s Conversations in Siboot.


I’m was thinking about removing the “want to go to” verb because I couldn’t figure out a way to make it work without fiddling around the “arrive at” system verb (which I how I handled it in previous versions of Siboot). Based on previous experience I wanted to avoid mucking around with the system verbs if at all possible.

There were going to be two special actions you could do at the Temple of Siboot (the only stage you could “want to go to”) – read about Kiran history or meditate, which started the mental combat with the other actors. If I got rid of the “want to go to” verb I would loose those two actions.

I could handle the initiation of combat using the SetClockAlarm consequences at the start of the storyworld, but that seems a bit arbitrary and predetermined (but it does put some sort of time lock on the action). The clock alarm could bring you back to the Temple of Siboot at sundown where you could choose to start mental combat or choose to read about the history of Kira. I could set ten or twenty clock alarms at the start of the storyworld but I might not use them all since I can end the storyworld when one actor wins the mental combat.

I searched the forums because I recalled some posts where Chris listed what system verbs you could edit and which you couldn’t. I found the posts and here’s the lowdown on System verbs.

Can Edit (which means add Consequences, Roles, Emotional Reactions, and Options but don’t modify Properties)

    • MeetingAlarm
    • PropAlarm
    • StageAlarm
    • ClockAlarm
    • arrive at
    • once upon a time

Can’t Edit

    • do what?
    • depart for
    • penultimate verb
    • happily ever after

So I fooled around with adding a ThisSubject role to the “arrive at” verb with the following verb options – “greet”, “read about Kiran history”, “want to find”, and “want to go to”. The side effect, which I’m not entirely sure why it happened (the log lizard is a terrible debugging tool but better than nothing), is that it sometimes took more than one selection of “want to go to” to leave a location. Other times I couldn’t leave a location no matter how many times I choose “want to go to”.

Long story short, I managed to make it work by moving the ThisSubject “wait” option from the “want to find” verb to the “arrive at” verb. This gave individual verbs time to operate without creating extraneous events and screwing up the sequencing.

It appears to work for now so I’m leaving “want to go to” in for now.

Still considering removing the “meditate” verb and initiating mental combat using SetClockAlarm consequences. A clock alarm would bring you back to your house, display some verbiage, and begin mental combat.


Finally categorized and prioritized the 44 interstitial stories in the original Trust & Betrayal.

  • 10 – Chris Crawford related
  • 15 – Non-player character related (priority 2)
  • 10 – Player charter related (priority 1)
  • 12 – Situational (priority 3)

For the January 2011 release I’m going to implement the 10 player character interstitial stories.

This entry was posted in Side Projects and tagged . Bookmark the permalink.