Difference between revisions of "MG/Project Structure"

From MegaGlest
Jump to navigation Jump to search
(Refresh)
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page describes the folder structure of the [[MegaGlest]]'s SVN.
+
This page describes the folder structure of the [[MegaGlest]] Project.
  
 
==Structure==
 
==Structure==
Line 10: Line 10:
 
|-
 
|-
 
|<tt>data</tt>
 
|<tt>data</tt>
|Contains game data content like models, textures, xml files, etc which the game loads as required. This is where modders would play most of the time.
+
|Contains game data content like models, textures, xml files, etc which the game loads as required. This is game data which ships with the game by default (such as the Megapack). Mods are not placed here but in the users' home directory (ApplicationData on Windows) - they use the same directory structure, though.
 
|-
 
|-
 
|<tt>data/glest_game/data/core</tt>
 
|<tt>data/glest_game/data/core</tt>
Line 40: Line 40:
 
|-
 
|-
 
|<tt>mk</tt>
 
|<tt>mk</tt>
|This is where platform specific project files are kept. Currently there are folders for ''linux'' and ''windoze''
+
|This is where platform specific project files are kept. Currently there are folders for ''linux'', ''windoze'', ''macosx'' and ''shared'' (for files used on multiple platforms)
 
|-
 
|-
 
|<tt>mk/linux</tt>
 
|<tt>mk/linux</tt>
Line 47: Line 47:
 
|<tt>mk/fedora</tt>
 
|<tt>mk/fedora</tt>
 
|fedora rpm build related files
 
|fedora rpm build related files
 +
|-
 +
|<tt>mk/macosx</tt>
 +
|OS X project files (using XCode)
 
|-
 
|-
 
|<tt>mk/windoze</tt>
 
|<tt>mk/windoze</tt>
Line 53: Line 56:
 
|<tt>source</tt>
 
|<tt>source</tt>
 
|All source code for the project lives inside here.
 
|All source code for the project lives inside here.
|-
 
|<tt>source/configurator</tt>
 
|A deprecated tool used to modify game settings
 
 
|-
 
|-
 
|<tt>source/g3d_viewer</tt>
 
|<tt>source/g3d_viewer</tt>
 
|A tool for G3D model and particle file viewing
 
|A tool for G3D model and particle file viewing
 +
|-
 +
|<tt>source/glest_game</tt>
 +
|C / C++ MegaGlest game code
 
|-
 
|-
 
|<tt>source/glest_map_editor</tt>
 
|<tt>source/glest_map_editor</tt>
Line 67: Line 70:
 
|-
 
|-
 
|<tt>source/shared_lib</tt>
 
|<tt>source/shared_lib</tt>
|C / C++ shared library code used in Mega-Glest and some of the tools above
+
|C / C++ shared library code used in MegaGlest and some of the tools above
 
|-
 
|-
|<tt>source/glest_game</tt>
+
|<tt>source/tests</tt>
|C / C++ Mega-Glest game code
+
|C / C++ unit tests
 +
|-
 +
|<tt>source/tools</tt>
 +
|Several utilities related to MegaGlest
 
|-
 
|-
|<tt>source/win32_deps</tt>
+
|<tt>source/windows_deps</tt>
 
|C / C++ dependencies for Windows Compilation
 
|C / C++ dependencies for Windows Compilation
 
|}
 
|}

Revision as of 15:31, 26 January 2014

This page describes the folder structure of the MegaGlest Project.

Structure

Folder Description
top level folder Contains top level CMakeLists.txt which controls how the sub modules get built using cmake
data Contains game data content like models, textures, xml files, etc which the game loads as required. This is game data which ships with the game by default (such as the Megapack). Mods are not placed here but in the users' home directory (ApplicationData on Windows) - they use the same directory structure, though.
data/glest_game/data/core Core game data such as menu textures, fonts and sounds
data/glest_game/data/lang Language files translated into your native tongue (feel free to contribute)
data/glest_game/maps Map files (these are the world definition to play the game in)
data/glest_game/scenarios Scenario files (Lua scripting for story mode)
data/glest_game/screens This is the folder where screenshots are saved when users press the E hotkey in game
data/glest_game/techs Techtrees which contains selected faction definitions (XML, G3D, OGG, etc)
data/glest_game/tilesets Tileset files (this defines how the terrain should look, grassy, sandy, forest, etc)
data/glest_game/tutorials Tutorial files (this is where beginners should start to learn how to play)
docs Contains various readme files, license agreements, etc. This is a good place to start reading for developers.
mk This is where platform specific project files are kept. Currently there are folders for linux, windoze, macosx and shared (for files used on multiple platforms)
mk/linux Linux related files
mk/fedora fedora rpm build related files
mk/macosx OS X project files (using XCode)
mk/windoze Windows project files (using Visual Studio 2008 Express)
source All source code for the project lives inside here.
source/g3d_viewer A tool for G3D model and particle file viewing
source/glest_game C / C++ MegaGlest game code
source/glest_map_editor A tool for editing *.gbm (Glest) and *.mgm (MegaGlest) map files
source/masterserver PHP source code for our hosted masterserver
source/shared_lib C / C++ shared library code used in MegaGlest and some of the tools above
source/tests C / C++ unit tests
source/tools Several utilities related to MegaGlest
source/windows_deps C / C++ dependencies for Windows Compilation

Linux Scripts

The following are miscellaneous scripts located in mk/linux:

Script Description
mg-version.sh Indicates the current version # for a new release.
makedata.sh Creates a data ONLY archive containing game content for a new release.
makedata-diff.sh Create a game data diff ONLY archive containing data that is different between two releases (usually very small). Edit the variable: OLD_VERSION=3.3.4 to determine which version to compare with)
makerelease.sh Creates a source code archive for a new release.
setupBuildDeps.sh Installs required linux dependencies (Ubuntu, Debian, Fedora and open SuSE based)

See Also