MegaGlest
Mega Glest (MG) is a fork / modification of the Glest engine. The primary goal for MG was to rework the network abilities of the original Glest engine to offer a richer Network play experience. MG may be downloaded from https://sourceforge.net/projects/megaglest/files/current_release/.
Contents
History
Megaglest started in January 2010...( to be continued )
Features
- Only loads the factions used in game settings.
- Multi-Player over LAN or Internet
- Up to 8 players for network or single player games.
- 4 new factions to pick from (and more downloadable)
- Many new maps
- New AI player difficulty level (easy, normal, ulta, mega)
- Minimal Master-Server to display hosted Internet games
- Cross platform network play (Linux vs Windows works fine)
- Support for multiple hosted servers through configurable TCP port #'s
- Network game lobby chat mode (press enter to toggle on/off)
- Queued commands (hold CTRL key while queuing multiple commands)
- Per Unit Particles.
- Command line options (type --help to see current options)
- Supported on most Linux distributions (32 and 64 bit) via universal full installer or data and binary packages.
- Supported on Windows XP - Windows 7.
- Enhanced map editor (with tooltips)
- Enhanced G3D Model viewer (supports showing particles)
- Enhanced LUA commands and scripting support
- Additional Support for JPG, PNG and BMP textures for models
- Custom loading screens per faction
- Full support for mod's via the mydata folder
XMLs
Source Code / Compiling
For people who would like to work on the Megaglest we have worked hard to make things as easy for you as possible. Below is a small fact sheet to try to assist anyone who is interested in helping with development or just to learn for your own enjoyment:
Version Control and Getting the code:
We host the project at sourceforget.net at: https://sourceforge.net/projects/megaglest/
To get the code you may run the following command from a commandline:
svn co https://megaglest.svn.sourceforge.net/svnroot/megaglest megaglest
Project folder layout:
All active development is done in the trunk subfolder. Each release is 'tagged' and a copy resides in the tags folder. Branches are created in the branches folder when required to seperate larger changes from active / stable development.
The following is a description of the next level of folders under trunk (which is usually the same for each release or branch):
| Folder | Description |
|---|---|
| data | 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. |
| data/glest_game/data/core | Core game data such as menu textures and sounds |
| data/glest_game/data/lang | Language files translated into your native tongue (feel free to contribute) |
| data/glest_game/maps | |
| data/glest_game/scenarios | |
| data/glest_game/screens | |
| data/glest_game/techs | |
| data/glest_game/tilesets | |
| data/glest_game/tutorials | |
| 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 and windoze (spelling mistake on purpose ) |
| mk/linux | Linux project files (using perforce JAM) |
| mk/windoze | Windows project files (using Visual Studio 2008 Express) |
| source | All source code for the project lives inside here. |
| source/configurator | A deprecated tool used to modify game settings |
| source/g3d_viewer | A tool for G3D model and particle file viewing |
| source/glest_map_editor | A tool for editing *.gbm (Glest) and *.mgm (Mega-Glest) map files |
| source/masterserver | PHP source code for our hosted masterserver |
| source/shared_lib | C / C++ shared library code used in Mega-Glest and some of the tools above |
| source/glest_game | C / C++ Mega-Glest game code |
| source/win32_deps | C / C++ dependencies for Windows Compilation |
Linux Compiling:
1. Get the project from SVN using the above commandline or your favorite SVN tool (rabbitvcs or tortoise)
2. Download package dependencies for your Linux distribution (see mk/linux/setupBuildDeps.sh which can do that for Debian, Ubuntu, Fedora and Open SuSE based distro's)
3. Open a terminal window and navigate to mk/linux and type the following:
./autogen.sh ./configure jam
4. If nothing goes wrong you will see glest.bin (and other binaries) in the same folder (mk/linux).
5. To test running the game, run the binary in mk/linux like this:
./glest.bin
These are some commandline options:
./glest.bin --help ./glest.bin --version ./glest.bin --opengl-info
Windows Compiling:
1.
Get the project from SVN using the above commandline or your favorite SVN tool (tortoise)
2. Download package dependencies (from https://sourceforge.net/projects/megaglest/files/win32_deps.7z/download)
3. Decompress the dependency archive into the source folder. You should now see a win32_deps sub-folder with lots of stuff inside. (you will require 7zip from http://www.7-zip.org/)
4. Open the main solution in Visual Studio (I use VC++ 2008 express, currently 2010 DOES NOT WORK) located at:
mk/windoze/Glest.sln
5. Do a rebuild project.
6. If nothing goes wrong you will see glest_game.exe (and other binaries) in data/glest_game (where all the data content lives).
7. To test the game, run the batch file CopyWindowsRuntimeDlls.bat location in mk\windoze to copy dependency dll's to the runtime binary folder
Installers: Windows Installer:
We use Null Soft Installer NSIS located: here. Open MegaGlestInstaller.nsi located in mk/windoze/Installer from the NSIS compiler and compile the installer into an executable. I use a free GUI editor for the installer called HM NIS Edit which can be obtained from here: http://hmne.sourceforge.net/
Linux Installer:
We use the mojosetup installer located: here. To build a Linux installer, open a terminal window and navigate to mk/linux/mojosetup/megaglest-installer. Edit make.sh and change the version # tag (some example below):
#megaglest_release_folder="trunk" megaglest_release_folder="release-3.3.5.1"
From this folder run:
./make.sh
If everything runs properly, the script will build an installation from the binaries and data location in the svn project specified in the top of the script (typically the trunk branch or a release branch) and the final installer is location in the same folder as make.sh and called: megaglest-installer
Misc Scripts:
The following are miscalleneous scripts located in mk/linux:
makedata.sh - makes a data ONLY archive containing game content for a new release
makedata-diff.sh - makea data differences ONLY archive containing data that is different between two release (usually very small. Edit the variable: OLD_VERSION=3.3.4 to determine which version to compare with)
makerelease.sh - makes a source code archive for a new release
setupBuildDeps.sh - installs required linux dependencies (Ubuntu, Debian, Fedora and open SuSE based)
Code Discussions
<coming soon>
Processes
<coming soon>
Links
- Mega Glest web forums (hosted on main Glest site)
- subversion repository
- feature requests
- Sourceforge hosting
MG-based mods
<coming soon>
