Changes between Initial Version and Version 1 of Mod_Layout


Ignore:
Timestamp:
Feb 29, 2012, 6:59:10 AM (12 years ago)
Author:
historic_bruno
Comment:

Initial draft

Legend:

Unmodified
Added
Removed
Modified
  • Mod_Layout

    v1 v1  
     1(Note: under construction!)
     2
     3= 0 A.D. Mod Layout =
     4
     5[[TOC]]
     6
     7Most 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). The exact 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: file and directory names are case sensitive.'''
     8
     9=== art ===
     10
     11Contains most "visual" data for the game. See the [ArtDesignDocument Art Design Document] for specific guidelines.
     12
     13==== actors ====
     14
     15Actors 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 [wiki:Actor_Editor Actor Editor] tool is the easiest way to add or modify actors.
     16
     17==== animation ====
     18
     19Animations 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.
     20
     21==== materials ====
     22
     23TODO
     24
     25==== meshes ====
     26
     27A "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.
     28
     29==== particles ====
     30
     31Particles 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.
     32
     33==== skeletons ====
     34
     35Currently just `skeletons.xml`, used for skeletal models to share models and animations from different 3D editing software.
     36
     37==== textures ====
     38
     39The 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.
     40
     41=== audio ===
     42
     43Sounds 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).
     44
     45=== civs ===
     46
     47Data files defining the civilizations available in the game, in [wiki:JSON] format.
     48
     49=== fonts ===
     50
     51Fonts appearing in the game's GUI, created by the `fontbuilder` tool.
     52
     53=== gui ===
     54
     55The GUI comprises all the 2D menus and controls with which the user interacts. The GUIs are composed of XML data files that describe the static layout of the page and JavaScript scripts which handle input events for the GUI. The pages are more or less each separate with a few common files.
     56
     57=== maps ===
     58
     59Maps define the layout of the world as the player sees it.
     60
     61==== random ====
     62
     63Random maps are written in JavaScript. See the [wiki:Random_Map_Generator Random Map Generator] page for details.
     64
     65==== scenarios ====
     66
     67Scenarios each have predefined units, buildings, and terrains which attempt to fit a certain theme, often historical in nature. Scenarios are created with the [wiki:Atlas_Manual Atlas scenario editor].
     68
     69=== shaders ===
     70
     71Shaders are special programs which get compiled and run on a supported graphics card in order to change the rendered scene. Examples: shadows, particles, water.
     72
     73=== simulation ===
     74
     75Most 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.
     76
     77==== ai ====
     78
     79The AIs (computer players) which can be used in the game, written in JavaScript.
     80
     81==== components ====
     82
     83The game is based on the concept of "component objects" which comprise the simulation. Many are written in JavaScript but some are part of the engine for various reasons (e.g. performance). The preference is to use scripts unless a very compelling need exists.
     84
     85==== data ====
     86
     87A few XML and [wiki:JSON] files for shared data between multiple components, UI, and/or Atlas scenario editor.
     88
     89==== helper ====
     90
     91Some helper scripts for the components.
     92
     93==== templates ====
     94
     95Templates, 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 [#actors 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.
     96
     97===== gaia =====
     98
     99Gaia is the world, and gaia entities are not owned by any player per se. Gaia objects are natural resources available to all players.
     100
     101===== other/special =====
     102
     103Defines special entities not creatable in-game.
     104
     105===== structures =====
     106
     107Structures aka buildings.
     108
     109===== units =====
     110
     111Units are moving entities which the player can control.