| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Engine Operation Detail

Page history last edited by LauraJMixon 15 years ago

The Engine runs on a cycle. What actually happens can be very complicated, but here is a more thorough (though still simplified) explanation of the process shown in "Engine Overview," which the Engine uses to advance events.

 

Top of Cycle:

        Advance the clock by one Moment.

        Set the clock Hours and Days

        Check to see if nothing has happened for at least 10 Moments;

                if so, terminate the story.

Check the clock time; if it's time to do so, trigger the ClockAlarm.

        For each and every Actor, starting with Fate, do the following: (LOOP)

                Relax the Actor's moods (let them relapse towards normalcy)

                For each and every one of the Actor's Plans, do the following: (LOOP)

Check that the Plan's Execution Time has elapsed.

Check that the Actor is on the same Stage as the Plan's DirObject;

                                if not, skip this Plan.

                        Check the Audience requirement for the Plan's Verb;

                                if the Audience requirement is satisfied by the situation, then proceed;

                                 otherwise, skip this Plan.

                        Check for an Abort Script for this Verb; if there is one, execute it;

                                 if it returns "true," then abort executing this Plan and throw it away.

                        If we've gotten this far without skipping this Plan, then execute it:

                                store the Plan into the HistoryBook as an Event.

                                execute any Consequence Scripts for this Event

                                if this Verb is "depart for," do some special things to remove the Subject

                                         from his current Stage.

                                if this Verb is "arrive at," do some special things to place the Subject at his

                                         destination.

                                Have Fate react to the Event.

                                based on the Audience requirement for the Verb, decide who on the Stage

                                         actually witnesses the Event.

                                Have each witness in turn react to the Event.

                                Have the DirObject react to the Event

                                Have the Subject react to the Event.

                                Throw away the Plan.

                        Do not execute any more Plans for this Actor (unless the Actor is Fate).

                End of Plans loop

        Did the Actor execute any Plans? If so, then proceed to the next Actor. If not, do this:

                Consider whether to go to another Stage:

                        Does the Actor have a previously defined TargetStage? If so, go there.

                        If not, sort through the Plans and find the most important Plan.

                        If there is one, go to the Stage where the planned DirObject is

                                (so we can execute the Plan on the DirObject).

                        If the Subject can't do that, then pick a new Stage to go to based on:

                                how long the Actor has been sitting around at the current location.

                                how Unwelcoming_Homey another Stage is for this Actor

        End of Actor loop

End of main loop—go back to the top of the loop

 

If it's time to terminate the story, set a Plan for Fate to execute "Fatepenultimate verbProtagonist." This system Verb will then lead to the very last Event, "Fatehappily ever after Protagonisthow much." You, the author, may insert intervening Verbs between penultimate verb and happily ever after; however, if you do so, see the cautionary notes in System Verbs

 

You may also write WordSocket scripts for the Quantifier in the very last sentence, "Fatehappily ever after You this much: [Quantifier]," to reflect how well or poorly your player did. If you wish, however, you can just leave this at its default setting of "medium," or you can remove the Quantifier. To remove the happily ever after Quantifier, go to System Verbs: happily ever after: Properties and eliminate 4Quantifier from the list of WordSockets.

 

Next Tutorial: Deikto

Previous Tutorial: Engine Operation Overview

 


Creative Commons License  This tutorial by Storytron, Inc. is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.

 

Comments (0)

You don't have permission to comment on this page.