SIEGE UNIVERSITY 1 |
|
Siege University II Tutorials Modding FAQ 095: Upgrading DSII 100: The Basics of Siege Editor 201: Compass Map Radar 202: Conversations 203: Journal 204: Quest Indicator Icons 205: Start Positions 206: Teleporters 207: Town Portal Restrictions 208: Weapon Effects 209: Flick 210: Tuning Grids 211: Setting Up Good Map Lighting 212: Setting Up Simple Node Fading 215: Building Data Tables Siege University I Tutorials 200: Concepts and Terminology 201: Templates 203: Triggers 204: Moods 205: Fades 206: Elevators 211: Naming Key 213: Dungeon Siege Resource System 301: Introduction to Dungeon Siege Architecture Third Party Tutorials A Simple Mod Part One - Armor Textures A Simple Mod Part Two - A New Armor Beginners Guide to Stitching Regions How to Open and Create Tanks Making Chants Work in a New Map Ornaments Understanding the NKK Useful Links Siegetheday.org Dungeon Siege Outpost Dungeon Raider Kdawg.org - List of useful Links MCarp DS Nodes Dungeon Siege 2 at Gamefront Broken World at Gamefront |
Introduction
to
Dungeon Siege Architecture ·
What
You Need For This Tutorial ·
What
This Tutorial Assumes You Have Already Learned ·
GO
Components Introduction This
article covers how objects in Dungeon Siege work. We will discuss how
objects
are defined, the different types of objects, how they are loaded, and
the
different systems in the game that can manipulate these objects. This
article
in conjunction with Siege U: 200 - Dungeon Siege Concepts
and Terminology
should provide a good overview of how the game works. Hopefully this
article
will show you which systems do what; and when you start to write skrits
it will
give you a good idea where to look to accomplish different tasks. What
You Need For This Tutorial ·
Nothing.
This is just an informational article. What
This Tutorial Assumes You Have
Already Learned ·
Siege U: 200 - Dungeon Siege Concepts
and Terminology
Game
Objects (GOs) All
of the objects in Dungeon Siege are treated in a similar way. All of
the
monsters, heroes, even a spell in a spell book are all very similar.
The
differences between the GOs are the components that are attached to
them.
Attaching the physics component for example will allow an object to
simulate
moving through the air using physics. A GO without the physics
component
doesn't have this ability. Organization
of GOs A
good way to think of Game objects is to compare them to organisms. The
Linnaean
system sorts organisms into a tree hierarchy: they are spilt up into
kingdom,
phylum, class, order, family, genus and species. "Kingdoms" are the
most broad category while "family" or "genus" are much more
narrow. For example, animals are in the kingdom Animalia. Chordata (one
of the
phylums in Animilia) contains all of these creatures that also have a
backbone-like structure (as well as a few other characteristics). The
description of an organism gets more specific as you move down the
tree. At the
end it is describing just one organism instead of a group. GO
Components These
can be added simply by referencing them in the template of an object.
Here is a
list of most of the available components and what they are used for. ·
Actor:
Handles traditional RPG attributes such
as skills and alignment. Stores and manipulates the Status States
information.
These are used to indicate if a character is in a state, and how long
the state
lasts. We call anything that has an actor component an Actor. This
includes
players, monsters, and NPCs. Having an actor component requires you to
also
have attack, body, defend, physics, and inventory components. ·
Aspect:
The visual representation of a GO. The
Aspect also defines how the GO interacts, whether it is currently
visible,
selectable, useable, collideable or path blocking. The Aspect also
contains the
life and mana for the GO. Another part of the Aspect is LODFI. LODFI
GOs are
created locally on each machine; these are non-interactive, and
depending on
their LODFI value they can be made to disappear with the Game Detail
slider.
The Aspect component provides control of the Chores that a GO can run,
and can
be used to set up blending. Having an Aspect component requires that a
GO have
a Placement component. ·
Attack:
Contains information about how this GO
attacks. Used to define the attack information for weapons,
projectiles, and
Actors. Contains information like damage, reload time, and attack
ranges. The
Attack component handles loading and launching ammo for projectile
weapons.
Requires the Common component. ·
Body:
Contains information about how an Actor
moves and animates. Contains the bone translator, which maps Bones in
the model
into common bone names that are used by simulation and effects.
Specifies the
chores that an object has, which animations those chores contain, and
which
skrits drive those chores. Requires the Aspect
component. ·
Common:
Contains common attributes about a GO.
Also contains all of the triggers for an object. The Common component
contains
membership that is used to determine which GOs can damage each other,
immunity
to spells, and dynamic party creation. ·
Conversation:
Contains a list of the conversations
that this GO can access. The Conversation component has controls to
select and
activate those conversations. Used in AI talk jobs to control
conversations. ·
Defend:
Info about defense such as armor type
and defensive value. ·
Gizmo:
Gizmos are objects that show up in the
editor, but not the game. If you wanted to make an invisible controller
GO,
then you would put a gizmo on it so you could see it in SE. Also useful
for
keeping track of which direction is which on objects where it matters,
such as
chests. ·
Gold:
Used to set the price of items, also
contains info about how gold looks on the ground. ·
GUI:
How an object looks in and interacts
with the inventory. ·
Inventory:
Defines the inventory layout. Can be
used to list, equip, remove, or put items into a GO's inventory. ·
Magic:
Defines the properties for casting a
magic spell. Can store and apply enchantments, these can be for a
spell, an
enchanted weapon, or even a potion. ·
Message:
Storage for text messages to print to
the screen, they are stored here for easy localization. ·
Mind:
Defines properties on how an actor uses
AI, specifies which skrits to use for AI. Has several high level
AIQuery and
Inventory routines to make AI specifically easier. Contains controls to
run and
manage AI jobs. ·
Party:
Defines party light, sets up how
dynamic parties form and the AI that they use. The Party component has
controls
for adding and removing actors from the party. This component also
handles
moving the party in formation. ·
Pcontent:
Specifies the pcontent values on an
item, what the power level is, what enchantments the object can have,
all of
this for all of the various quality types of a weapon. ·
Physics:
Defines how an object will fall, burn,
and break. ·
Placement:
Stores position information about an
object. Can get and set the placement or orientation. ·
Potion:
Manages how a potion represents its
full state in the inventory. ·
Store:
Manages NPC stores, which items
restock, the prices of the items, and even if the person can put
themselves up
for hire. ·
Skrit
Components:
These can contain custom
properties and behavior. Hooking up a new Skrit component is relatively
easy:
you just need to put the skrit in the right directory, and then the
game will
automatically detect it and make it available. Streaming
and The Frustum Nodes
are the
building block of the world's terrain. Nodes have connectors where they
can be
connected to other nodes; these connectors are called doors.
Doors can
be any size to link two nodes. Typically we make the door the full size
of the
connection between the nodes. Doors are used for path finding and
determining
which nodes to stream in. Systems There
are several Game Systems in Dungeon Siege. These control different
parts of the
game. The systems can be accessed from skrit to perform different
actions to
affect GOs or the world as a whole. Here is a list of the most
important
systems, and some of the functions they serve. ·
AIQuery:
AIQuery is used to look at the
surrounding area. One of the main uses of these queries is to get the
GOs that
are near this object. You can either look for one GO or all of them in
a
certain area. You can also set up filters so you only get certain types
of
actors. AIQuery also provides distance and visibility checking. You can
also
use AIQuery to find points on the ground, you can find a point that
would have
a clear line of sight, or just find a point relative to another object.
·
CameraAgent:
The CameraAgent can be used to control
the position of the camera. You can offset the camera position, or
transition
it to a new point. The CameraAgent is used for NIS camera control. ·
ContentDb:
ContentDB can be used to get
information from a GO's template. You can also create formulas and
evaluate
them with this system. ·
GameAuditor:
The GameAuditor can be used to set
global named values. You can use this to set when a global event has
occurred,
or if there is a global value that needs to be saved it can be stored
with
this. ·
GoDb:
The GoDB handles low level GO
manipulation. You can create new GOs from a template, or make a copy of
an
existing GO. You can also delete a GO in about 25 different ways. You
can use
the GoDB to set ScidBits. ScidBits store
information about a GO that can
store its state. This provides much lower memory usage than just saying
everything about an object. Another use of the GoDb is to watch another
GO.
When you are watching a GO you get a carbon copy of the message that
was sent
to it. ·
MCPManager:
The MCPManager is used to make Chore
requests to the MCP. Chores are used by the AI Jobs. Chores can move
the
character and play different animations. ·
Mood:
Moods are the ambient mood in the game.
Things like fog, rain, and the music playing are all part of the mood.
The mood
system can be used to set which mood is being played, or what parts are
being
used from the different players' moods. You can also change which music
tracks
are playing. ·
Physics:
Physics handles simulation of objects.
This is used to explode objects or flip a weapon when it is dropped to
the
ground. Physics can also be used to create areas of damage, either from
explosions, or just an area that does damage. ·
Rules:
The Rules system handles Gameplay code.
This includes chances to hit, determining and applying damage, even
awarding
experience. ·
SiegeFx:
SiegeFX manages effect scripts. You can
use SiegeFX to start local or global effects, and when you are done
with them
you can turn them off. You can also use SiegeFX to store temporary
positions. ·
Server:
Server is used to keep track of the
players that are in the game. You can get a local player, all of the
players in
the party, or all of the players in a MP game. ·
Victory:
The Victory System manages parts of the
game related to major gameplay events like quests or winning the game
itself.
You can use the Victory system to assign quests and advance them
through their
various states. You can then complete the quest when it's done. Chapter
transitions are handled through victory. You can also set up victory
conditions
and check them through the victory system. ·
World:
The World system is useful for drawing
debug HUDs in the game. ·
WorldTerrain:
The WorldTerrain system is used to move
nodes, and connect or disconnect doors. All of the elevators were
written using
the world terrain system. The HUB teleport pads are just node
transition and
connections. Conclusion We
have talked about how objects work in Dungeon Siege. You should now
have a
basic understanding about how different objects are constructed. Also
how some
of the different systems that work on those objects function. |