logo

TheoWorlds Builder SDK v2 Documentation

Theo Isometric Engine (TIE)

1. TIE classes UML scheme

Below is the UML scheme of Theo Isometric Engine (TIE), showing all the classes and the connections between them:

Engine UML

Description:

  • (1) World is the main class. It stores in aCharacters, aFurniture and aFloor arrays the collections of (2) Character, (3)Furniture and (4)Tile objects. Those are the objects that are placed on the map and are all inherited from the prototype of all the map object classes - (5) MapObject.
  • These objects have a lot of parameters, and embed separate objects to store all those parameters - (6) CharacterSettings, (7) FurnitureSettings and (8) TileSettings respectively, all inherited from the main (9) MapObjectSettings class that stores the common settings for all the objects.
  • (2) Character object is more complex than other map objects since it also has behavior. It stores the logic of this behavior (also called character AI) in classes like (10)CharacterLogicControlled and (11)CharacterLogicRandom that are inherited from the main (12)CharacterLogic class. You can create new character behaviors by inheriting them from this main class and then storing this class instance in the Character object.
  • The (1)World itself has its own set of rules and behaviors. That logic is stored in a (14)WorldLogic type object. If you build a game - that's where the rules of the game are.
  • When the (1)World initializes, it loads the map configuration file (external XML file), then parses it and loads the description of all the objects that need to be created and placed on the map. The (15)Library class instance is used to store that data, which is a collection of (16)LibraryItem objects (each corresponding to one object on the map).
  • The chatting messages between the characters are displayed in text bubbles on the screen. (1)World stores a (17)TextBubbleController object that controls these bubbles, which are represented by a collection of (18)TextBubble objects.
  • Besides all those objects, (1)World also uses some other small classes, like (19)Constants and (20)Config static classes to access the various general parameters that usually don't change at runtime.

 

Last updated: September 16, 2009