MegaGlest
Mega Glest (MG) is a fork / modification of the Real Time Strategy (RTS) game Glest
The primary goal for MG was to rework the network capabilities 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 as a vision from a longtime community member: Titus Tscharntke (Titi) [here].
Joining Titus in the capacity of a project developer was Mark Vejvoda (SoftCoder) [here]. Together (with frequent help
from numerous members of the community such as, Ultifd, Tomreyn, Silnarm) this project has seen
tremendous success and offers a fun platform for playing and learning.
Features
- Only loads the factions selected 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 (more can be downloaded [see MG Mod's below])
- Many new maps
- New AI player difficulty levels (easy, normal, ultra, 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/
Download the latest full version from here ( source/data/binarys ):
https://sourceforge.net/projects/megaglest/files/current_release/
Or the hottest staff by running the following command from a commandline:
svn co https://megaglest.svn.sourceforge.net/svnroot/megaglest/trunk 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 | 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 | Tech Trees 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 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
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:
| Script | Description |
|---|---|
| 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) |
Links
- Mega Glest web forums (hosted on main Glest site)
- subversion repository
- feature requests
- Sourceforge hosting
MG-based mods
Media Coverage
http://freegamer.blogspot.com/2010/06/megaglest-335-pre-release-special.html
