WOG File Structure
This page presents how file structure are documented and provides an overview of the overall organization.
An overview of the XML structure is provided for each file type, followed by the detail of each node type, and for each node type, the detail of its attribute.
For each node, the list of attributes with their type is provided:
<tag att1="att1_type" att2?="att2_type">
The '?' after att2 indicates that this attribute is optional.
Attribute type are described using the following convention:
Some common attribute_type are:
- "text": a UPPER_CASE_WORDS reference to a text declared in properties\text.xml (this allows translation into multiple language)
- "boolean": "true" or "false"
- "integer": an positive integer (>=0)
- "rgb_color": "integer,integer,integer" where each value is respectively the red, green and blue component in range [0-255]
- "argb_color": "integer,integer,integer,integer" where each value is respectively the alpha,red, green and blue component in range [0-255]
- "real": real number of the form "digits.digits", for example "123.456"
- "2d_pos": "real,real". Usually relate to screen coordinate in camera space.
- "2d_vector": "real,real".
- "fx": reference to a particule FX defined in properties/fx.xml.
Data files defines:
- global properties such as text, surface material, visual effects, fonts
- levels which are used for multiple purpose:
- World view: select the chapter you want to play
- Island: select the level of the chapter you want to play
- Level: Play a level
- balls which defines the properties of the different kinds of Goo
- ... (to be extended)
All texts and their translation are stored in properties/text.xml.bin. Each text is identified by a unique string.
Surface materials are are stored in properties/materials.xml.bin. They specify physic properties of surface such as friction.
Effects are stored in properties/fx.xml.bin. They specify visual effects used in scene such as animated fire.
Global resources are stored in properties/resources.xml.bin. They specify global resources such as fonts, images and sound.
The world view is a level like any other. It is defined in res/levels/MapWorldView/. It list all available island.
Notes: it is not possible to add new island. onclick action is hard-coded in executable
Islands are stored in res/islands/<island-id>.xml. It describes the level an island is composed of. The scene used to display an island is defined in res/level/<island-id>/*.
Notes: level described here do not seems to be dynamics. That is, we can not rename or add a level.
Game level are stored in res/level/<level-id>. A level describes a screen the user can interact with, such as the world view, the level selection, or an actual game level you can play.
A game level is described by three files:
- res/levels/<level-id>/<level-id>.level.bin: Game level level describes the initial set up of the level (balls, exit...)
- res/levels/<level-id>/<level-id>.scene.bin: Game level scene describes the visual look of the level as well as the physic properties (force fields...)
- res/levels/<level-id>/<level-id>.resrc.bin: Game level resources describes the resource specific to the level: images, sounds and musics.
While it is not possible to create new island, it is possible to add new level to an existing island.