1
0
forked from 0ad/0ad

# Engine overview doc started.

This was SVN commit r5421.
This commit is contained in:
Matei 2007-10-20 18:30:32 +00:00
parent 1230df6001
commit 56b38ddd1e

68
docs/engine_overview.txt Normal file
View File

@ -0,0 +1,68 @@
This document will contain a high level overview of the engine and modules
that will eventually be moved to the Trac Wiki.
For now, we just have the table-of-contents notes from Gobby.
engine overview
life of a game session from start to finish (pyrogenesis startup, VFS, menu GUI,
creation of game object, loading, gameplay, scripts, etc), mentioning the
components involved in each part
explanation of multiplayer sessions
explanation of how Atlas fits in
how to build the distribution
supported compilers
build system
. only one copy of settings for Mac, Win, Unix (helps keep workspaces in sync)
. what it means to update-workspaces
. organization of the tree as static libraries
. external libraries and how they are linked in
. required libraries for Linux and OS X ("manual" installation of the game)
finding your way around: brief description of all repository directories
merge the below descriptions of svn/source and those already found in "finding your way"
overview of svn/source directories:
collada: routines for loading COLLADA 3d models
dcdt: triangulation library used by the pathfinder
graphics: manages objects drawn on the screen, like textures, animated models,
terrain patches, etc
gui: a homemade OpenGL in-game GUI based on XML files
i18n: routines for internationalization (translating in-game text)
lib: Jan's collection of mostly low-level routines.
allocators: memory (sub)allocators
posix: POSIX emulation when on Windows
file: efficient file loading code.
http://www.wildfiregames.com/users/code/wiki/index.php?title=Virtual_File_System
http://www.stud.uni-karlsruhe.de/~urkt/articles/study_thesis.pdf
res: resource handling (textures and sounds)
sysdep: bridges differences between systems and allows 'portable' code
debug (asserts), error handling, timing bit bashing, etc. - all the dirty details.
maths: math code (linear algebra, geometry)
network: the network engine (based on Enet; serializes game messages)
pch: pre-compiled headers (this directory is required by the build system)
ps: pyrogenesis engine - basically, 'everything else'
utility classes, console, profiler, XML loader
renderer: rendering algorithms, including sorting, quality settings, shadows and water
script: scripting engine (Javascript)
simulation: most of the actual RTS game logic
simulation turns, entities, techs, unit AI, pathfinding, ..
sound: (WIP) high-level sound and music engine
builds on an abstraction of OpenAL
tools
particle engine, archive builder, map editor, random map generator, PMD exporter
overview of scripts in data/mods/official/scripts (entity functions & game startup)
misc topics:
self-test
. purpose
. mechanism in VC IDE
. where they lie
overview of art formats
useful features for testing/development
copy from the finding your way around - doc