diff --git a/docs/engine_overview.txt b/docs/engine_overview.txt new file mode 100644 index 0000000000..431b536c88 --- /dev/null +++ b/docs/engine_overview.txt @@ -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