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