Author Topic: Megaglest developer information  (Read 5101 times)

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,238
    • View Profile
Megaglest developer information
« on: 14 April 2010, 16:02:55 »
For anyone who would like to work on the Megaglest project as a developer we have made good progress on making things easy for you to compile and begin the learning process. 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:
Quote
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 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):

data - contains game content like models, textures, xml files, etc which the game loads as required. This is where modders would play most of the time.

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 wndoze (spelling mistake on purpose :) )

source - all source code for the project lives inside here

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:
Code: [Select]
./autogen.sh
./configure
jam
4. If nothing goes wrong you will see glest.bin (and other binaries) in the same folder.
5. To test running the game, run the binary in mk/linux like this:
./glest.bin

These are some commandline options:
 ./glest.bin --version
 ./glest.bin --opengl-info

Windows Compiling:
1.
Get the project from SVN using the above commandline or your favorite SVN tool (rabbitvcs or 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

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):

Code: [Select]
#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)
« Last Edit: 5 August 2010, 15:38:58 by softcoder »

Gabbe

  • Guest
Re: Megaglest developer information
« Reply #1 on: 21 April 2010, 16:26:25 »
I don`t know if this is the right place to post but How many developers are there for megaglest? will you compile a team like, UI developer Graphics developer etc.?

titi

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 4,239
    • View Profile
    • http://www.titusgames.de
Re: Megaglest developer information
« Reply #2 on: 23 April 2010, 08:43:34 »
Currently we are 3 persons. We meet in irc and then we decide what we do next  ;)
Thats the current organisation. I think everyone does everything in the code at the moment, just changing the data is my job  ;D.
« Last Edit: 23 April 2010, 08:46:13 by titi »
Try Megaglest! Improved Engine / New factions / New tilesets / New maps / New scenarios

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Megaglest developer information
« Reply #3 on: 4 August 2010, 15:22:42 »
Note that additional developer information is now availabel from the MegaGlest wiki.

A little information on external services and resources which can help with further development of the game:


Building on Windows console (i.e. non-GUI, i.e. less slow):
Quote from: softcoder
we can build the windows binary from commandline now. no need to open visual studio:
install sliksvn - this gives you commandline svn tools

then from the trunk folder you just type:
svn update

to build, goto mk/windoze and run the following:
"\Program Files\Microsoft Visual Studio 9.0\vc\vcvarsall.bat"

then:
msbuild Glest.sln /p:Configuration=Release

and voila mg builds - compiler info shows in the console.
« Last Edit: 18 June 2016, 12:59:18 by filux »
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·