IF Text Emission as a Service

This is (sort of) how my Python library Balladeer operates.
A Story object maintains a number of contexts, called Drama. Drama objects encapsulate both state and behaviour.

  1. In response to user input, the current Drama applies appropriate state transitions.
  2. The Drama generates objects of speech (Prologue, Dialogue and Epilogue).
  3. Using Drama state as the conditional criteria, the Story object selects more dialogue from scene files.
  4. Static dialogue is reformatted with variable substitution from the Drama object.
  5. The static dialogue is interleaved with the programmatic speech.
  6. The resulting stream (optionally) invokes event handlers on the Drama object.
  7. The Story selects one Drama to represent the next context in scope.
  8. The new Drama publishes the user commands now permitted by current state.

Both static and programmatic dialogue are expressed in SpeechMark format.

1 Like