Openbound - Dependencies
This article focuses on dependency linking in the Sburb game engine.
Table Of Contents
- Good practice
Dependency sections can exist in any file. They exist as a simple way to separate content, both for organizational purposes, as well as for optimization. You can think of them as simply copying all the content from the linked dependency into the file that you're linking to them from.
A good example of a dependency is the player character. In the sample, this is Meenah. If you have more rooms, you don't want to redefine Meenah in each room. That could lead to both errors and confusion. Instead, keep her in
levels/[PROJECT]/chars/meenah.xml, and simply add
chars/meenah.xml as a dependency in the rooms that need Meenah.
The general structure for a dependency section is as follows:
<dependencies> <dependency>...</dependency> ... <dependency>...</dependency> </dependencies>
In a scenario where the characters Meenah and Karkat are defined in separate files, but used in a room, the room would need them as dependencies. They would be marked as such:
<sburb> <dependencies> <dependency>chars/meenah.xml</dependency> <dependency>chars/karkat.xml</dependency> </dependencies> <rooms> <room> ... </room> </rooms> </sburb>
Note that the paths inside of the
<dependency> elements are not relative to the room file, which is in
levels/[PROJECT]/rooms/, but instead relative to the project directory
levels/[PROJECT]/. This means that the linked files are
levels/[PROJECT]/chars/karkat.xml. The files and their content are completely arbitrary.