finishing the game

To add a bit more, Dungeon Siege uses parsed C Style scripts for every object in the game, the messages are handled like:
Code:
Start State Waiting$ {
      TriggeredBy EnterActiveMapArea {
         SetState Start$
      }
}
State Running$ {
      TriggeredBy LeaveActiveMapArea {
         SetState Waiting$
      }
      TriggeredBy UserActivate {
          //Do Something
      }
}

The map making tutorials give reasonably detailed descriptions of the how the engine works, try looking over some of the tutorials here: [url]http://www.dungeonsiege.com/siegeu.shtml[/url](300 is programmer orientated) if you want to find out how it works more specifically.

The game uses an interesting inheritance method for tracking objects that acts as a kind of treeview, if might be useful for people in future, but they use a structure sort of like:
Code:
Interface GraphicalObject
    Graphical data+animation stuff

Class AGameObject
    General Game stuff (Location for example)
	Get GameObjectID As Int32


Class StaticObject :Inherits AGameObject :Implements GraphicalObject
    Mesh Data, translucency, misc graphics, animations, Can be interacted
       (Objects that cant be interacted with[decorations like displays])

Class CrateObject :Inherits StaticObject
     Whats inside (object), shatter effect, can be shattered

Class ChestObject :Inherits StaticObject
     Whats inside (object), etc

Class GoldObject :Inherits StaticObject
     Value
This seems to make everything simpler to keep track of because you can categorise everything. People might find this useful in planning games in future(it really only applies to RPGs however)
 
Last edited by a moderator:
It looks like its all event driven. The object hierarchy makes sense, I cant imagine doing it differently.
 
Imagine designing it, or using it! Most of us spend our lives figuring out MSs design for managing windows and events. They built their own design thats similar, but its own set of functions and more. CSG (Crazy Smart Guys).

-Ner
 
Back
Top