Core Architecture - UA-ScriptEase/scriptease GitHub Wiki

Reactor online, sensors online, weapons online, all systems nominal.

-- MechWarrior 3 Shadowcat Power Up Sequence

System sketch circa May 2012

ScriptEase shares some concepts with compiler design, but instead of taking typed code and transforming that to machine language, it allows the user to construct a model to be transformed into a programming language. So it's akin to an editor+compiler or an editor+precompiler, depending on how rigid your definition of compiler is.

  • The model is the core of ScriptEase II and at its heart are StoryComponents. Stories are trees of Story Components as user content, while Libraries are populated with Story Components driven by the Translator dictating what is available.
  • The Translator is responsible for all game file I/O, telling the code generator how to generate code for that language.
  • The file I/O system is a separate system for pushing our model data (the story, not the script files) to disk.
  • The undo system is drawn as a cloud because it sort of floats about the Story Component model, watching for changes when activated
  • The UI is effectively half of what ScriptEase exists for, but this is more of a backend diagram. That box is pretty complicated. It tells the File I/O to read from/push changes to disk and translates user input into model changes.

Each page prefixed with Core Architecture will describe that component in depth.