|Version 3 (modified by historic_bruno, 16 months ago) (diff)|
(Note: under construction!)
0 A.D. Mod Layout
Table of Contents
Most of the time, when we talk about file "paths" in 0 A.D., we mean relative to the mods directory. Examples: \art\animation, \simulation\components. These directories may match more than one real directory on the user's computer (if they're using multiple mods). This means of abstraction is called the VFS (Virtual File System).
The exact directory structure can vary from one mod to another, but the standard is based on the public mod included with the game. This is an overview of that layout. Note: VFS paths are case sensitive.
Contains most "visual" data for the game. See the Art Design Document for specific guidelines.
Actors are XML data files that define a visible thing in the game, it could be a warrior, a building, a wild animal, or a clump of grass. We call them actors (short for visual actors). It also defines possible variations of a single appearance, for instance different helmets or shields for a soldier. The Actor Editor tool is the easiest way to add or modify actors.
Animations are typically stored as COLLADA files, exported from a 3D modeling program. They defined what parts of a 3D model move during a game and how they move.
A "mesh" is the term used for a 3D model, essentially the collection of vertices and faces that define its shape and how a 2D texture is mapped onto that shape. They are also typically stored in COLLADA format. Meshes are either static or skeletal/skinned/dynamic/animated.
Particles are dynamically created things which typically appear in clumps or bursts and may change appearance and move. They are purely a graphical effect. Examples: smoke, fire, leaves falling.
Currently just skeletons.xml, used for skeletal models to share models and animations from different 3D editing software. If you add a new animated model, the odds are you'll need to update this file.
The 2D images that give color and transparency to the underlying shapes are called "textures". Typically stored as either PNG or DDS files. Includes model textures, terrains, backgrounds, portraits, icons, cursors and buttons.
Sounds heard in the game, whether UI alerts or music. Stored as lossy OGG Vorbis format (often lossless source files exist but they would make the game data impractically large).
Data files defining the civilizations available in the game, in JSON format.
Fonts appearing in the game's GUI, created by the fontbuilder tool.
Maps define the layout of the world as the player sees it.
Scenarios each have predefined units, buildings, and terrains which attempt to fit a certain theme, often historical in nature. Scenarios are created with the Atlas scenario editor.
Shaders are special programs which get compiled and run on a supported graphics card in order to change the rendered scene. Examples: shadows, particles, water.
Most of the gameplay logic for 0 A.D. resides in this directory. It's called simulation because in fact it simulates the behavior of the game over time, deterministically and in response to player behavior.
A few XML and JSON files for shared data between multiple components, UI, and/or Atlas scenario editor.
Some helper scripts for the components.
Templates, or entity templates, are XML data files which define "entities", things the user can interact with in the game. Most entities have a game play significance, like a soldier, female, tree, or temple. The elements used in templates reflect the component schemas. Entities typically refer to a visual actor as well, but not always. Templates have inheritance, so one entity can inherit e.g. the attack and armor stats of another but change its name and civilization. Currently entity templates have to be modified by hand.
Gaia is the world, and gaia entities are not owned by any player per se. Gaia objects are natural resources available to all players.
Defines special entities not creatable in-game.
Structures aka buildings.
Units are moving entities which the player can control.