Difference between revisions of "MG/Project Structure"

From MegaGlest
Jump to navigation Jump to search
(Refresh)
 
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
This page describes the folder structure of the [[MegaGlest]] Project.
+
This page describes the directory structure of the [[MegaGlest]] Project.
  
 
==Structure==
 
==Structure==
Line 6: Line 6:
 
! scope="col"|Description
 
! scope="col"|Description
 
|-
 
|-
|top level folder
+
|<tt>/</tt>
 
|Contains top level CMakeLists.txt which controls how the sub modules get built using cmake
 
|Contains top level CMakeLists.txt which controls how the sub modules get built using cmake
 
|-
 
|-
|<tt>data</tt>
+
|<tt>/data</tt>
 
|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.
 
|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>
 
|Core game data such as menu textures, fonts and sounds
 
|Core game data such as menu textures, fonts and sounds
 
|-
 
|-
|<tt>data/glest_game/data/lang</tt>
+
|<tt>/data/glest_game/data/lang</tt>
 
|Language files translated into your native tongue (feel free to contribute)
 
|Language files translated into your native tongue (feel free to contribute)
 
|-
 
|-
|<tt>data/glest_game/maps</tt>
+
|<tt>/data/glest_game/maps</tt>
 
|[[Map]] files (these are the world definition to play the game in)
 
|[[Map]] files (these are the world definition to play the game in)
 
|-
 
|-
|<tt>data/glest_game/scenarios</tt>
+
|<tt>/data/glest_game/scenarios</tt>
 
|[[Scenario]] files ([[Lua]] scripting for story mode)
 
|[[Scenario]] files ([[Lua]] scripting for story mode)
 
|-
 
|-
|<tt>data/glest_game/screens</tt>
+
|<tt>/data/glest_game/screens</tt>
 
|This is the folder where screenshots are saved when users press the ''E'' hotkey in game
 
|This is the folder where screenshots are saved when users press the ''E'' hotkey in game
 
|-
 
|-
|<tt>data/glest_game/techs</tt>
+
|<tt>/data/glest_game/techs</tt>
 
|[[Techtrees]] which contains selected [[faction]] definitions (XML, G3D, OGG, etc)
 
|[[Techtrees]] which contains selected [[faction]] definitions (XML, G3D, OGG, etc)
 
|-
 
|-
|<tt>data/glest_game/tilesets</tt>
+
|<tt>/data/glest_game/tilesets</tt>
 
|[[Tileset]] files (this defines how the terrain should look, grassy, sandy, forest, etc)
 
|[[Tileset]] files (this defines how the terrain should look, grassy, sandy, forest, etc)
 
|-
 
|-
|<tt>data/glest_game/tutorials</tt>
+
|<tt>/data/glest_game/tutorials</tt>
 
|Tutorial files (this is where beginners should start to learn how to play)
 
|Tutorial files (this is where beginners should start to learn how to play)
 
|-
 
|-
|<tt>docs</tt>
+
|<tt>/docs</tt>
 
|Contains various readme files, license agreements, etc. This is a good place to start reading for developers.
 
|Contains various readme files, license agreements, etc. This is a good place to start reading for developers.
 
|-
 
|-
|<tt>mk</tt>
+
|<tt>/mk</tt>
 
|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)
 
|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>
 
|Linux related files
 
|Linux related files
 
|-
 
|-
|<tt>mk/fedora</tt>
+
|<tt>/mk/fedora</tt>
 
|fedora rpm build related files
 
|fedora rpm build related files
 
|-
 
|-
|<tt>mk/macosx</tt>
+
|<tt>/mk/macosx</tt>
 
|OS X project files (using XCode)
 
|OS X project files (using XCode)
 
|-
 
|-
|<tt>mk/windoze</tt>
+
|<tt>/mk/windoze</tt>
 
|Windows project files (using Visual Studio 2008 Express)
 
|Windows project files (using Visual Studio 2008 Express)
 
|-
 
|-
|<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/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>
+
|<tt>/source/glest_game</tt>
 
|C / C++ MegaGlest game code
 
|C / C++ MegaGlest game code
 
|-
 
|-
|<tt>source/glest_map_editor</tt>
+
|<tt>/source/glest_map_editor</tt>
 
|A tool for editing *.gbm (Glest) and *.mgm (MegaGlest) map files
 
|A tool for editing *.gbm (Glest) and *.mgm (MegaGlest) map files
 
|-
 
|-
|<tt>source/masterserver</tt>
+
|<strike><tt>/source/masterserver</tt></strike>
|PHP source code for our hosted masterserver
+
|<strike>PHP source code for our hosted masterserver</strike> now is moved to separate repository
 
|-
 
|-
|<tt>source/shared_lib</tt>
+
|<tt>/source/shared_lib</tt>
 
|C / C++ shared library code used in MegaGlest and some of the tools above
 
|C / C++ shared library code used in MegaGlest and some of the tools above
 
|-
 
|-
|<tt>source/tests</tt>
+
|<tt>/source/tests</tt>
 
|C / C++ unit tests
 
|C / C++ unit tests
 
|-
 
|-
|<tt>source/tools</tt>
+
|<tt>/source/tools</tt>
 
|Several utilities related to MegaGlest
 
|Several utilities related to MegaGlest
 
|-
 
|-
|<tt>source/windows_deps</tt>
+
|<tt>/source/windows_deps</tt>
 
|C / C++ dependencies for Windows Compilation
 
|C / C++ dependencies for Windows Compilation
 
|}
 
|}
  
 
==Linux Scripts==
 
==Linux Scripts==
The following are miscellaneous scripts located in <tt>mk/linux</tt>:
+
The following are miscellaneous scripts located in <tt>/mk/linux</tt>:
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 102: Line 102:
 
|-
 
|-
 
|''setupBuildDeps.sh''
 
|''setupBuildDeps.sh''
|Installs required linux dependencies (Ubuntu, Debian, Fedora and open SuSE based)
+
|Installs required Linux dependencies (for Ubuntu, Debian, Fedora, Opensuse and other distributions)
 
|}
 
|}
  

Latest revision as of 05:51, 23 June 2014

This page describes the directory structure of the MegaGlest Project.

Structure[edit]

Folder Description
/ 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 now is moved to separate repository
/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[edit]

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 (for Ubuntu, Debian, Fedora, Opensuse and other distributions)

See Also[edit]