HeroScript, or HSL, for HeroScript Language, is the underlying scripting language used by game designers to build the game itself.
- HSL is based on C++ and C# depending on if it is server or client side.
- HSL bridges the gap between the two for seamless development
- HSL removes the need to create additional scripting language or new libraries.
When writing a script, it will generally be necessary to use a combination of commands, HSL speeds up this processs allowing you to link the various functions and features your project needs.
Dynamic Use through Data Object Model & Game Object Model
The Game Object Model (aka the GOM) databases are the actual data of the entire game universe. Essentially a GOM is a giant collection of nodes (derived from classes) which have been created by scripts or GameMasters. These nodes are linked together via the association engine.
GOM data is always based on the classes and definitions that have been defined in the DOM (the Data Object Model). GOM data has two major components: The DOM definitions (fields and classes), and the data that uses those definitions (nodes and variables).
For the most part, the nodes of the GOM are persisted (saved) in a giant database via the Javelin System. However, not all nodes are loaded into memory at one time (the world is made up of a lot of nodes!). So, an appropriate subset of the nodes are in memory on any particular server, where they can be modified by the CLI or HeroScript. There is also a very special reduced form of "lightweight" nodes which is on the Client.
Client and Server all in one:
The DOM or Data Object Model (not to be confused with the GOM) is a collection of dynamic definition objects. The DOM is where node classes are created and defined, fields in those classes are further specified, certain field values are enumerated, and prototypes are created. GOM data is then placed in those fields.
- Changes to DOM structure can be modified by the CLI or the DOM Editor
- GOM data, on the other hand, can be modified from the CLI, or also from the HSL scripting language.
- DOM structures cannot be modified from HSL.
- Different versions of the DOM exist on the client and server, each of which is stored in a separate database schema, for client or server, as appropriate.