Overview of the toolset
The Dragon Age Toolset is, with just a few omissions and changes, the same set of tools that was used internally at BioWare to develop the main Dragon Age: Origins campaign. It is a very powerful professional game development toolset and therefore some elements can take some time to master.
This overview of the toolset is intended as a general introduction to help put the later complexity into a simpler context.
The Dragon Age Toolset application provides a framework or host for the editor plug-ins used to create and edit the different types of art resources and designer resources; for various utilities used to compile and export these resources, for creating builder to builder or builder to player packages and for many other tasks; and for the editors used to open and edit some of the custom file types used by the Toolset and/or the Dragon Age:Origins game.
The Toolset's user interface, UI, contains several elements that are common to many modern applications:
- Title bar which displays the application's name, version and the name of the current module.
- Menu bar with the default File, Edit, View, Tools, Window and Help menus.
- Toolbar with displays the Standard toobar by default. There are many other toolbars which are only displayed as required. The user can also create custom toolbars.
- Status bar which displays various status information including the current Toolset database.
- Main window where the various resource editors will be displayed.
The Toolset also provides several panels which can docked or floating. Some of these panels are displayed by default while others can be opened from the Edit > Find menu options, the View menu or the View > Windows submenu. Additionally panels can be opened using keyboard short cuts (for example Ctrl+F to open the Find Window) or simply through interacting with a particular editor (for example double clicking on a function name in the Script editor to open the Help window)
- Bookmarks panel
- Console panel
- Object inspector panel
- Palette window panel
- Help window panel
- Log window panel
- Find panel
- Replace panel
- Resource history panel
- Search results window panel
This gallery contains examples of some of the more important elements of the Toolset's user interface:
Changing the layout
To undock a docked panel double-click on the panel's title bar. To dock a floating panel double click on its title bar. To change where a panel is docked and/or the grouped click on its title bar or tab and drag it into desired locations. While dragging a panel docking controls, blue diamonds and blue arrows, will appear to indicate where the panel can be dropped. The inner docking controls indicate which other panels or groups it can dock in, above or below, while the outer docking controls will dock the panel on to and edge.
There are three basic sorts of source resource:
- Art resources - things like creature models, visual effects, sounds, and levels. These are stored as ordinary files in your file system.
- Database resources - in general, the instructions to the game on how to use art resources. This includes scripts, dialogue, cinematics, plots, placing objects in area layouts, and so forth.
- 2DAs - "two-dimensional arrays", tables of data that are referred to by scripts or by the game engine. These are defined by ordinary Excel spreadsheets.
The following diagram illustrates the general outline of how each of these types of resource is edited, processed, and used by the game:
The designer toolset exports playable resources to the override directory. To use a programming metaphor, the toolset is a compiler and the objects that go into the override directory are the compiled executables. The "source code" for these finished products is stored elsewhere in a wide variety of formats.
Where the game looks for resources
When the Dragon Age executable is run and a new game starts up, the game loads a set of resources that define every aspect of the campaign world and the story that the player will experience within it.
All resources are marked as belonging to specific modules or packages (such as the single-player module that's the main campaign of Dragon Age: Origins).
Modules and packages can be set to inherit resources from other modules (called their 'dependencies' since they depend on the resources in them). This allows modules to build on each other and interact in an organized manner; each level in a module hierarchy can add to or supplant the contents of previous levels. At the root of this hierarchy is a special group of resources called "core" resources that all modules inherit from, consisting of basic features such as the game's combat scripts and the default behavior of interactive objects.
Each module or package will also have an "override" directory that can supplant the contents of that package. This is the directory where the toolset exports playable content during development.
As an example, you could create a module named "Dwarven Madness" that takes place in an area that the player visited in the main single-player campaign. You want to make use of the same area layout that was used in the single-player campaign, but add your own resources in the form of different creatures to fight and a new plot to follow. You would therefore set your module to inherit the resources of the single-player campaign, which itself inherits core resources. When the game starts and tries to load a resource it looks in the following places, in order:
- Dwarven Madness' override directory
- Dwarven Madness' module directory
- Single Player's override directory
- Single Player module directory
- Core resources override directory
- Core resources directory
(See Source directory priorities for a complete listing of all the places the game can look for resources.)
While you're developing the module in the toolset, exported resources will be placed in the Dwarven Madness override directory.
Sharing designer resources
If you're collaborating with other builders, you'll want to share the "source code" for your game resources instead of just the "compiled" finished product from the override directory.
For the art resources and 2DAs this is simply a matter of locating the files on your hard drive and making those available. Designer resources are a bit trickier and can be shared in two fundamentally different ways:
- "Builder to builder" export, which exports selected source resources from the database in a non-playable XML format suitable for importing by another builder's toolset.
- Shared access to a single database. The toolset supports simultaneous access to a single database by many different toolsets, but setting this up can be somewhat tricky and depends on the availability of the database server.