<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://globulation2.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Giszmo</id>
	<title>Globulation2 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://globulation2.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Giszmo"/>
	<link rel="alternate" type="text/html" href="https://globulation2.org/wiki/Special:Contributions/Giszmo"/>
	<updated>2026-05-17T10:34:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://globulation2.org/index.php?title=Compiling&amp;diff=10082</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Compiling&amp;diff=10082"/>
		<updated>2016-04-11T16:48:58Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Debian/Ubuntu */ updated the dependencies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{Message|Compiling on Windows|The instructions below will not work for Windows. To compile on that OS, please see the &amp;lt;u&amp;gt;[[Mingw compilation]]&amp;lt;/u&amp;gt; guide, which explains how to compile globulation2 on windows using mingw.}}&lt;br /&gt;
&lt;br /&gt;
==Compilation requirements==&lt;br /&gt;
{{Message|Compiling on Mac OSX|There is an easier way to get all the dependancies than to compile them all. See the [[MAC OS X Development]] page for more information.}}&lt;br /&gt;
For source tarbal, Mercurial source, and package installations, you&amp;#039;ll also need to install these packages:&lt;br /&gt;
* [http://www.scons.org/ scons] build system&lt;br /&gt;
* [http://www.libsdl.org/index.php SDL 1.2] download SDL-devel and SDL&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_net/ SDL_net 1.2] download SDL_net-devel&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_image/ SDL_image 1.2] download SDL_image-devel&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_ttf/ SDL_ttf 2.0] download SDL_ttf-devel&lt;br /&gt;
* [http://www.speex.org speex] download current stable release&lt;br /&gt;
* [http://www.xiph.org/ libogg and libvorbis] can be found in their download-section. libspeex, too.&lt;br /&gt;
* [http://zlib.net/ zlib]&lt;br /&gt;
* [http://boost.org/ Boost C++ Libraries] download boost, boost-devel, including boost_thread and boost_date_time.&lt;br /&gt;
* (optional) [http://fribidi.org/ Fribidi] download GNU FriBidi&lt;br /&gt;
&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
The following terminal command will get you all the dependencies:&lt;br /&gt;
 sudo apt-get install mercurial scons libsdl1.2-dev libsdl-net1.2-dev libsdl-image1.2-dev \&lt;br /&gt;
 libsdl-ttf2.0-dev zlibc libspeex-dev libogg-dev libvorbis-dev libboost-dev libboost-thread-dev \&lt;br /&gt;
 libboost-date-time-dev&lt;br /&gt;
&lt;br /&gt;
== Compile from Sources ==&lt;br /&gt;
=== Source Distribution ===&lt;br /&gt;
* Get the [[Download and Install|source distribution archive]] from the download section.&lt;br /&gt;
* Extract the archive using a compression/extraction utility such as tar.&lt;br /&gt;
* Go in the extracted archive. If you have a Unix system (GNU/Linux, Solaris, Mac OS X):&lt;br /&gt;
** Run the &amp;#039;scons&amp;#039; script to compile the game (it will check dependencies, install any you have missing)&lt;br /&gt;
*** If you want to install the game in a special place, instead of &amp;#039;scons&amp;#039;, type: &lt;br /&gt;
 scons BINDIR=&amp;quot;/path/to/install/bin&amp;quot; INSTALLDIR=&amp;quot;/path/to/install/share&amp;quot;&lt;br /&gt;
** Install with a simple &amp;#039;scons install&amp;#039; command (will install to the location you might have entered when compiling (BINDIR and INSTALLDIR)).&lt;br /&gt;
** Run the game by typing &amp;#039;glob2&amp;#039;. If it doesn&amp;#039;t work, type &amp;#039;/path/to/install/bin/glob2&amp;#039; instead.&lt;br /&gt;
** Note: in some GNU/+Linux distributions (eg: Archlinux), scons complains about not finding -lboost_thread (with boost already installed). A solution is to modify the SConstruct file to look for boost_thread-mt instead of boost_thread, and the modify the LIBS variable with boost_thread-mt, to link against this library. If you have root access you can create a symlink libboost_thread.so instead.&lt;br /&gt;
&lt;br /&gt;
=== Sources from [[Mercurial]] ===&lt;br /&gt;
{{Message|Warning|The source from Mercurial is occasionally unstable and will break. It is not meant for playing games but only for development and testing.}}&lt;br /&gt;
==== The quick way ====&lt;br /&gt;
Use this if you want to get exactly one copy of glob2 repository to compile and run it. This is also the recommended way if you are sure you will not want to push only parts of your changes.&lt;br /&gt;
* Initial download&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
* Subsequent updates&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg update&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;pull&amp;#039;&amp;#039;&amp;#039; will get all changes from the original repository into your repository&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;update&amp;#039;&amp;#039;&amp;#039; will get your local files to the latest revision. Use &amp;#039;&amp;#039;&amp;#039;-C&amp;#039;&amp;#039;&amp;#039; to loose all local changes.&lt;br /&gt;
==== The more complicated way ====&lt;br /&gt;
Use this if you want to commit several changes that you are not sure of being finished some day while at the same time you want to have access to a clean checkout, too.&lt;br /&gt;
* Initial download&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
* clone to a working directory&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone glob2 glob2-work&lt;br /&gt;
* Subsequent updates&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg pull&lt;br /&gt;
 cd ../glob2-work&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg update&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;pull&amp;#039;&amp;#039;&amp;#039; will get all changes from the original repository into your target repository&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;update&amp;#039;&amp;#039;&amp;#039; will get your files to the latest revision. Use &amp;#039;&amp;#039;&amp;#039;-C&amp;#039;&amp;#039;&amp;#039; to loose all local changes.&lt;br /&gt;
&lt;br /&gt;
* Read the README.hg and README files.&lt;br /&gt;
* Continue by following the [[#Source_Distribution|&amp;#039;&amp;#039;source distribution&amp;#039;&amp;#039;]] instructions from the 3rd step onwards.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Videos&amp;diff=10080</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Videos&amp;diff=10080"/>
		<updated>2014-11-13T16:13:33Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Assassination campaign (5 minutes) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translations|View this page in|Article=Videos}}&lt;br /&gt;
&lt;br /&gt;
===Fosdem 2008 presentation===&lt;br /&gt;
* [http://video.fosdem.org/2008/maintracks/FOSDEM2008-globulation2.ogg PAL quality]&lt;br /&gt;
*: &amp;lt;small&amp;gt; you need the [http://www.theora.org/ ogg theora] codec to watch the video.&amp;lt;/small&amp;gt;&lt;br /&gt;
* [http://stephane.magnenat.net/data/glob2-fosdem2008-presentation.pdf slides of the presentation]&lt;br /&gt;
&lt;br /&gt;
===Small game (13 minutes) : nct v.s. AI numbi===&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/watch?v=5_2GLBBXOl8 320x240 flash video on Youtube]&lt;br /&gt;
* [http://www.archive.org/details/Globulation2_small_game_vs_ai_numbi_movie 640x480 full quality ogg theora from archive.org]&lt;br /&gt;
&lt;br /&gt;
=== Small game (18 minutes) : Giszmo vs 7 * AI-Numbi ===&lt;br /&gt;
In this video you see how to effectively use fruits to convert your opponents.&lt;br /&gt;
* not a single warrior is built&lt;br /&gt;
* no barracks&lt;br /&gt;
* [http://download.savannah.gnu.org/releases/glob2/videos/ the video]&lt;br /&gt;
&lt;br /&gt;
===Really small game (5 minutes) : Migi vs. AiWarrush===&lt;br /&gt;
This video shows how to effectively counter the Warrush AI and beat him pretty fast.&lt;br /&gt;
&lt;br /&gt;
* Youtube: [http://www.youtube.com/watch?v=JSP72nOazaI click here].&lt;br /&gt;
* Mpeg file: [http://www.box.net/shared/a8gk7fgmau click here].&lt;br /&gt;
&lt;br /&gt;
===Assassination campaign (5 minutes)===&lt;br /&gt;
This is a video showing you how to beat [http://globulation2.org/forums/viewtopic.php?t=928 Assassination], a campaign created by Migi. It&amp;#039;s about 5 minutes long. Actually playing the campaign usually takes about 5 times longer though.&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/watch?v=rZPLCCsqYZM the video on youtube].&lt;br /&gt;
&lt;br /&gt;
===How to create one yourself===&lt;br /&gt;
[http://globulation2.org/wiki/Video_Creation_Howto How do I create a glob2 video?]&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Contributor_Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Videos&amp;diff=10079</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Videos&amp;diff=10079"/>
		<updated>2014-11-13T16:12:57Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Small game (18 minutes) : Giszmo vs 7 * AI-Numbi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translations|View this page in|Article=Videos}}&lt;br /&gt;
&lt;br /&gt;
===Fosdem 2008 presentation===&lt;br /&gt;
* [http://video.fosdem.org/2008/maintracks/FOSDEM2008-globulation2.ogg PAL quality]&lt;br /&gt;
*: &amp;lt;small&amp;gt; you need the [http://www.theora.org/ ogg theora] codec to watch the video.&amp;lt;/small&amp;gt;&lt;br /&gt;
* [http://stephane.magnenat.net/data/glob2-fosdem2008-presentation.pdf slides of the presentation]&lt;br /&gt;
&lt;br /&gt;
===Small game (13 minutes) : nct v.s. AI numbi===&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/watch?v=5_2GLBBXOl8 320x240 flash video on Youtube]&lt;br /&gt;
* [http://www.archive.org/details/Globulation2_small_game_vs_ai_numbi_movie 640x480 full quality ogg theora from archive.org]&lt;br /&gt;
&lt;br /&gt;
=== Small game (18 minutes) : Giszmo vs 7 * AI-Numbi ===&lt;br /&gt;
In this video you see how to effectively use fruits to convert your opponents.&lt;br /&gt;
* not a single warrior is built&lt;br /&gt;
* no barracks&lt;br /&gt;
* [http://download.savannah.gnu.org/releases/glob2/videos/ the video]&lt;br /&gt;
&lt;br /&gt;
===Really small game (5 minutes) : Migi vs. AiWarrush===&lt;br /&gt;
This video shows how to effectively counter the Warrush AI and beat him pretty fast.&lt;br /&gt;
&lt;br /&gt;
* Youtube: [http://www.youtube.com/watch?v=JSP72nOazaI click here].&lt;br /&gt;
* Mpeg file: [http://www.box.net/shared/a8gk7fgmau click here].&lt;br /&gt;
&lt;br /&gt;
===Assassination campaign (5 minutes)===&lt;br /&gt;
This is a video showing you how to beat [http://globulation2.org/forums/viewtopic.php?t=928 Assassination], a campaign created by Migi. It&amp;#039;s about 5 minutes long. Actually playing the campaign usually takes about 5 times longer though.&lt;br /&gt;
&lt;br /&gt;
* Youtube: [http://www.youtube.com/watch?v=rZPLCCsqYZM click here].&lt;br /&gt;
* Mpeg file: coming soon.&lt;br /&gt;
&lt;br /&gt;
===How to create one yourself===&lt;br /&gt;
[http://globulation2.org/wiki/Video_Creation_Howto How do I create a glob2 video?]&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Contributor_Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Videos&amp;diff=10078</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Videos&amp;diff=10078"/>
		<updated>2014-11-13T16:11:20Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Small game (18 minutes) : Giszmo vs 7 * AI-Numbi */ fixed broken link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translations|View this page in|Article=Videos}}&lt;br /&gt;
&lt;br /&gt;
===Fosdem 2008 presentation===&lt;br /&gt;
* [http://video.fosdem.org/2008/maintracks/FOSDEM2008-globulation2.ogg PAL quality]&lt;br /&gt;
*: &amp;lt;small&amp;gt; you need the [http://www.theora.org/ ogg theora] codec to watch the video.&amp;lt;/small&amp;gt;&lt;br /&gt;
* [http://stephane.magnenat.net/data/glob2-fosdem2008-presentation.pdf slides of the presentation]&lt;br /&gt;
&lt;br /&gt;
===Small game (13 minutes) : nct v.s. AI numbi===&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/watch?v=5_2GLBBXOl8 320x240 flash video on Youtube]&lt;br /&gt;
* [http://www.archive.org/details/Globulation2_small_game_vs_ai_numbi_movie 640x480 full quality ogg theora from archive.org]&lt;br /&gt;
&lt;br /&gt;
=== [http://download.savannah.gnu.org/releases/glob2/videos/ Small game (18 minutes) : Giszmo vs 7 * AI-Numbi] ===&lt;br /&gt;
In this video you see how to effectively use fruits to convert your opponents.&lt;br /&gt;
* not a single warrior is built&lt;br /&gt;
* no barracks&lt;br /&gt;
&lt;br /&gt;
===Really small game (5 minutes) : Migi vs. AiWarrush===&lt;br /&gt;
This video shows how to effectively counter the Warrush AI and beat him pretty fast.&lt;br /&gt;
&lt;br /&gt;
* Youtube: [http://www.youtube.com/watch?v=JSP72nOazaI click here].&lt;br /&gt;
* Mpeg file: [http://www.box.net/shared/a8gk7fgmau click here].&lt;br /&gt;
&lt;br /&gt;
===Assassination campaign (5 minutes)===&lt;br /&gt;
This is a video showing you how to beat [http://globulation2.org/forums/viewtopic.php?t=928 Assassination], a campaign created by Migi. It&amp;#039;s about 5 minutes long. Actually playing the campaign usually takes about 5 times longer though.&lt;br /&gt;
&lt;br /&gt;
* Youtube: [http://www.youtube.com/watch?v=rZPLCCsqYZM click here].&lt;br /&gt;
* Mpeg file: coming soon.&lt;br /&gt;
&lt;br /&gt;
===How to create one yourself===&lt;br /&gt;
[http://globulation2.org/wiki/Video_Creation_Howto How do I create a glob2 video?]&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Contributor_Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Building_the_.deb_file&amp;diff=6324</id>
		<title>Building the .deb file</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Building_the_.deb_file&amp;diff=6324"/>
		<updated>2012-10-04T19:51:12Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: https://bitbucket.org/giszmo/glob2 again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Install building tool:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;sudo apt-get install dpkg-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Install glob2 building dependencies:&lt;br /&gt;
#:sudo apt-get install debhelper quilt scons libsdl1.2-dev libsdl-image1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev libglu1-mesa-dev libvorbis-dev libspeex-dev libfreetype6-dev libboost-dev libboost-thread-dev libboost-date-time-dev libfribidi-dev portaudio19-dev libboost-math-dev&lt;br /&gt;
#Get glob2 sources as it is suggested here [[Compiling#Sources_from_Mercurial]]&lt;br /&gt;
#Build a package:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;cd glob2&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:&amp;lt;pre&amp;gt;dpkg-buildpackage -I.hg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=6323</id>
		<title>Mingw compilation</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=6323"/>
		<updated>2012-10-04T19:50:27Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: https://bitbucket.org/giszmo/glob2 again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to compile Globulation 2 on windows using [http://www.mingw.org/ mingw].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OVERVIEW -READ ME- to get smartly started ==&lt;br /&gt;
&lt;br /&gt;
*READ-ME-FIRST&lt;br /&gt;
I Wanted to have a Quick Wiki to get through and While First time I followed it I got many pain due to many Errors Returned back to me from the compilation process, We fixed the most of them, and I wanted to help the people to know Why those Bug came from and sometime it was just another question, like &amp;#039;&amp;#039;How to choose my source&amp;#039;&amp;#039; to compile, since the First tutorial was really with none other explanations, I got lost.&lt;br /&gt;
&lt;br /&gt;
On The other Hand Now,with a lot of investigation&amp;amp;time, the Tutorial is getting a kind a small Book, and this could &amp;#039;&amp;#039;&amp;#039;bored&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;discouraged&amp;#039;&amp;#039;&amp;#039; many of Windows Users, (linux users are more use to read documentations to do staff on their machines, and this is an advantage, they do understand quite well their machine behavior.&lt;br /&gt;
&lt;br /&gt;
So I decided&amp;#039;&amp;#039;&amp;#039; to create A Fast-way&amp;#039;&amp;#039;&amp;#039; to get ride of compilation &amp;#039;&amp;#039;&amp;#039;faster than never&amp;#039;&amp;#039;&amp;#039;, because I&amp;#039;m convince that many of you want to spend time on playing/testing the new release than reading the manual and the compilation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PLEASE NOTE&amp;#039;&amp;#039;&amp;#039; IF YOU HAVE SOME INTEREST ON COMPILATION AND HOW IT WORKS OR HOW IT DOES NOT WORKS --BUG CASES--- even HOW TO CUSTOMISE YOUR COMPILATION PICKING YOUR SOURCE PLEASE FOLLOW THE MAIN TUTORIAL TWO WAYS ARE The &amp;#039;&amp;#039;old command line&amp;#039;&amp;#039; WAY and THE &amp;#039;&amp;#039;MS windows way&amp;#039;&amp;#039; PLEASE NOTE THAT WE NEED TO USE COMMAND LINE FOR LAUNCHING THE COMPILATION SOFTWARE By HAND (2 code lines, quasi nothing) and making the bundle (3 more lines)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Message|From Windows VISTA and above Microsoft O.S| You need to run as an &amp;#039;&amp;#039;&amp;#039;administrator&amp;#039;&amp;#039;&amp;#039; to install packages/software.&lt;br /&gt;
:*The Msi installer type are perfect,but could required to accept some &amp;#039;un-zip&amp;#039; authorization.&lt;br /&gt;
:*Some other type, deprecated one but compatible, got &amp;#039;&amp;#039;&amp;#039;warnings&amp;#039;&amp;#039;&amp;#039; from&amp;#039;&amp;#039;&amp;#039; VISTA and above MS O.S&amp;#039;&amp;#039;&amp;#039; ,some because their developers did not get a Digital Windows O.S-type certificate ( from Xp, Vista,7 -apparented to the MS O.S logo on the bundle software pack or on the product web pages )in this case &amp;#039;&amp;#039;&amp;#039;DO accept the installation&amp;#039;&amp;#039;&amp;#039; we need those and we know that they are not verify and sign by MS Digital certification but they run well.&lt;br /&gt;
:*Another one may ask for an authorization to install some other dependence files , &amp;#039;&amp;#039;&amp;#039;do accept&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:*All_installation_pack_with_this_extension.&amp;#039;&amp;#039;&amp;#039;exe&amp;#039;&amp;#039;&amp;#039;&amp;quot; &amp;#039;&amp;#039;&amp;#039;MUST BE&amp;#039;&amp;#039;&amp;#039; run as administrator by right-clicking on it and selecting  -&amp;#039;&amp;#039;in the contextual menu&amp;#039;&amp;#039;- &amp;#039;&amp;#039;&amp;#039;run as an administrators&amp;#039;&amp;#039;&amp;#039;, specially for scons &amp;amp; MinGW.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
== HIGH-WAY COMPILATION -Toll free- ==&lt;br /&gt;
&lt;br /&gt;
HERE YOU WILL GET NO &amp;lt;bla bla bla&amp;gt; BUT IF YOU DO NOT STRICTLY OBSERVE THE DIRECTION YOU MIGHT FAIL DURING THE PROCESS ! Also if some step are obscure and you can&amp;#039;t achieve it please Get off from the HIGH-Way to the next EXIT -free toll- and follow the  MAIN TUTORIAL.&lt;br /&gt;
That said let&amp;#039;s start it now !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*DOWNLOAD &amp;amp; INSTALL&lt;br /&gt;
&lt;br /&gt;
:*GET [http://www.python.org/download/ Python 2.6] EXCLUSIVELY&lt;br /&gt;
:*Install into the directory &amp;quot;C:\Python26&amp;quot; &lt;br /&gt;
:*GET [http://www.scons.org/download.php scons-1.1.0] EXCLUSIVELY and install it [**AS ADMINISTRATOR**] into the same directory as the python got installed&lt;br /&gt;
:*GET [http://tortoisehg.bitbucket.org/ TortoiseHg].&lt;br /&gt;
:*GET [http://www.rarlab.com/ winrar] (winrar is a Commercial Shareware -with a 30day free-trial) or [http://portableapps.com/apps/utilities/7-zip_portable 7-ZIP] (gnu, but friendless)&lt;br /&gt;
:*GET [http://sourceforge.net/projects/mingw/files/ MinGW- Minimalist GNU for Windows] (the actual v5.x.x works well)and&lt;br /&gt;
:* Install it into the directory c:\mingw (&amp;#039;&amp;#039;lower case&amp;#039;&amp;#039;).&lt;br /&gt;
:* During installation, select &amp;quot;&amp;#039;&amp;#039;Curren&amp;#039;&amp;#039;t&amp;quot; when asked what version, and then&lt;br /&gt;
:* select the &amp;quot;&amp;#039;&amp;#039;MinGW base tools&amp;#039;&amp;#039;&amp;quot; (by default) and &amp;quot;&amp;#039;&amp;#039;g++ compiler&amp;#039;&amp;#039;&amp;quot; packages &amp;#039;&amp;#039;&amp;#039;only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*Download and install [http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe MSYS-1.0.10.exe] into the directory c:\msys\1.0\ (&amp;#039;&amp;#039;lower case&amp;#039;&amp;#039;).&lt;br /&gt;
:*  At the end of the installation, it will ask you if you want to continue with the post-install. Select yes, and yes again when it ask if you have mingw installed.&lt;br /&gt;
:* Then -the black windows prompt- will continue asking you to indicate where the directory is installed,type :&lt;br /&gt;
:* c:/mingw  (yes, with a forward slash -linux habit to have- as the program prefers it that way).&lt;br /&gt;
:*GET&amp;amp;save [http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz2 GLOB2 LIBRARY ] in &amp;quot;c:\msys\1.0\&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* First &amp;#039;&amp;#039;manual&amp;#039;&amp;#039; GEAR&lt;br /&gt;
&lt;br /&gt;
:*Un-zip the Archive &amp;#039;&amp;#039;glob2_required_libs_mingw-scons.tar.bz2&amp;#039;&amp;#039; into &amp;quot;c:\msys\1.0\&amp;quot;&lt;br /&gt;
{{message|TIP|OVER-WRITE FILES AND FOLDERS MUST BE ON or GRANTED on Vista and above OS.Tell &amp;#039;&amp;#039;&amp;#039;Yes for all&amp;#039;&amp;#039;&amp;#039; if this it&amp;#039;s asked to you.}}&lt;br /&gt;
&lt;br /&gt;
* Second GEARS&lt;br /&gt;
We&amp;#039;ll get the &amp;#039;Original-Project&amp;#039;&lt;br /&gt;
:*Get there &amp;quot;C:\msys\1.0\&amp;quot;&lt;br /&gt;
:*Create a Directory Call &amp;quot;glob-compilation&amp;quot;, Get inside this folder&lt;br /&gt;
:*Right clicking, This open the contextual menu, then&lt;br /&gt;
:*Select TortoiseHG&amp;gt;&amp;gt;Clone ,a pop-up windows will appear,&lt;br /&gt;
:*In source path please fill in this: &amp;quot;https://bitbucket.org/giszmo/glob2&amp;quot; without the quotation mark.&lt;br /&gt;
:*As Destination fill it that way: &amp;quot;C:\msys\1.0\glob-compilation\repository\&amp;quot; without the quotation mark.&lt;br /&gt;
:*Push the button &amp;quot;Clone&amp;quot;&lt;br /&gt;
This Will take a lot of CPU energy and internet bandwidth, internet broadband &amp;#039;&amp;#039;&amp;#039;is recommended&amp;#039;&amp;#039;&amp;#039; ! -about 3mins@ 6Mi-bit/s -&lt;br /&gt;
&lt;br /&gt;
*CLONING: things get faster&lt;br /&gt;
&lt;br /&gt;
:*Create a Sub-Directory called &amp;quot;glob2_source_building&amp;quot;&lt;br /&gt;
:*Right clicking on this new folder, will open the contextual menu, then&lt;br /&gt;
:*Select TortoiseHG&amp;gt;&amp;gt;Clone&lt;br /&gt;
:*Set the source path to the &amp;quot; repository&amp;quot; folder&lt;br /&gt;
:*In the &amp;quot;advanced options&amp;quot; Check the box &amp;quot;clone to Revision&amp;quot; and in the next field, fill in that: &amp;#039;&amp;#039;default&amp;#039;&amp;#039;&lt;br /&gt;
:*launch the clonning process by pressing the button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*UPDATING: Never faster than ever  [OPTIONAL !!!!]&lt;br /&gt;
&amp;#039;&amp;#039;clony&amp;#039;&amp;#039; do an update anyways -&amp;#039;&amp;#039;from the source path set above&amp;#039;&amp;#039;.And for the first time -&amp;#039;&amp;#039;following this wiki&amp;#039;&amp;#039;- your repository data are fresh food ! so on the High-way we decide to skip this ! &amp;#039;&amp;#039;Further informations about this in the main tutorial&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Third GEARS&lt;br /&gt;
Alright budy, now time to let&amp;#039;s free your Engine HORSES, shifting the third gears :)&lt;br /&gt;
&lt;br /&gt;
:*Open msys by double clicking the desktop icon,&lt;br /&gt;
:*Could you type the following code;&lt;br /&gt;
&amp;#039;&amp;#039;hint: The &amp;quot;TAB KEY&amp;quot; help you to finish to fill up the path name use it to save time and mistake&amp;#039;&amp;#039;.&lt;br /&gt;
 cd /glob-compilation/glob2_source_building&lt;br /&gt;
 scons&lt;br /&gt;
&lt;br /&gt;
The process -compilation- Could take a while (minimum 10 mins on recent computer)The cursor or prompter is blinking and a lot of information quickly print out.The process ending when no more information are printing in the &amp;quot;yellow command line&amp;quot; windows and the prompter is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; blinking and Marine-blue you should normally find the glob2.exe in the folder &amp;#039;&amp;#039;glob2_source_building&amp;#039;&amp;#039; if not you need to take the next exit, getting off the High-way, and follow the MAIN TUTORIAL, sorry.&lt;br /&gt;
&lt;br /&gt;
{{message|NOTE: On old/tired/busy computer| this process could take a while, even HOURS ! &lt;br /&gt;
PLEASE NOTE &amp;#039;&amp;#039;&amp;#039;also&amp;#039;&amp;#039;&amp;#039; that you could check out the &amp;quot;Possible Issues&amp;quot; section scrolling all your way down this page, and look for some possibles common ISSUES/BUGS/MISTAKES or a solution if any.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fourth GEARS&lt;br /&gt;
If you read this is because all things goes well, congratulation, you are a fine compilitor-pilot, now let&amp;#039;s shift the fourth gears.&lt;br /&gt;
&lt;br /&gt;
:*Make a &amp;#039;TEST&amp;#039; directory.&lt;br /&gt;
:*Copy into it all the file found in &amp;quot;C:\msys\1.0\local\lib&amp;quot;&lt;br /&gt;
:*Copy also the Glob2.exe from &amp;#039;&amp;#039;glob2_source_building&amp;#039;&amp;#039;.&lt;br /&gt;
:*Copy the SDL.dll from &amp;quot;C:\msys\1.0\local\bin&amp;quot;.&lt;br /&gt;
:*GET READY BUDY, your Engine Horses make you good, alright --&amp;gt;launch glob2.exe&lt;br /&gt;
&amp;#039;&amp;#039;At first start the application, the game, is freezing , because it is setting many parameters, so on a slow/busy machine this could take a while.&amp;#039;&amp;#039;&lt;br /&gt;
{{message|On Vista and above|you could get an alert saying&amp;#039;&amp;#039;&amp;#039; this application do not answer/respond&amp;#039;&amp;#039;&amp;#039; or similar, and ask what to do, you must select &amp;#039;&amp;#039;&amp;#039;Wait until the program respond&amp;#039;&amp;#039;&amp;#039; or similar.As it as been told this could take a while (e.g &amp;#039;&amp;#039;30s on recent not busy computer&amp;#039;&amp;#039;, but much more on a busy or old computer -like one core computer).&lt;br /&gt;
OF COURSE this is different if the application &amp;#039;&amp;#039;&amp;#039;crashed&amp;#039;&amp;#039;&amp;#039; by an alert saying this &amp;#039;&amp;#039;application has stop to run  in an&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;unexpected manner&amp;#039;&amp;#039;&amp;#039; or similar !}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fifth GEARS (stage under testing)&lt;br /&gt;
Budy is the Test was good? You &amp;#039;r certainly feeling good, right now ! Let&amp;#039;s shift the 5th Gears, Do we need it? Well if you do want to set an installation-bundle-pack, yes you need it!&lt;br /&gt;
&lt;br /&gt;
:*In MSYS, run the following codes making a &amp;#039;&amp;#039;windows bundle set-up&amp;#039;&amp;#039; file:&lt;br /&gt;
 cd /glob-compilation/glob2_source_building&lt;br /&gt;
 cd bundle&lt;br /&gt;
 glob2_make_win32.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If all things goes well, an binary(.exe) is ready, making installation on windows computers easier than ever ! Look in the &amp;#039;&amp;#039;&amp;#039;bundle&amp;#039;&amp;#039;&amp;#039; folder. Test it (install and play), and if it works, send it to your friends ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The Happy Ending :D :) :-D &lt;br /&gt;
I hope this first trip was AwEsOmE, if you need to customize your &amp;#039;&amp;#039;baby&amp;#039;&amp;#039; take your way off by the MAIN TUTORIAL EXIT, thank you for riding on our compilation-High-way, We wish to you a Happy &amp;amp; nice day :D &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
== MAIN TUTORIAL  ==&lt;br /&gt;
Here you will Have, I wish, all the information&amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; you need for learning on &amp;#039;&amp;#039;&amp;#039;how to compile&amp;#039;&amp;#039;&amp;#039; Globulation2-project to get a binary(.exe).&amp;#039;&amp;#039;If you don&amp;#039;t care about this please do follow the earlier (above) HIGH-WAY Tutorial/stage&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{{message|MESSAGE| Main tutorial are completely under remodeling it still working though, some informations could be redundant.The goal is to have a very nice Mercurial Repository System Overview Definition , to assist you in picking your source code you want to build for MS_Windows_O.S and to have a Quick &amp;amp; clear View of What to do. As you can see &amp;#039;&amp;#039;&amp;#039;A lot of work&amp;#039;&amp;#039;&amp;#039; ! }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Line Method old school &amp;amp; well efficient === &lt;br /&gt;
&lt;br /&gt;
==== DownLoad &amp;amp; Installation ====&lt;br /&gt;
*Download and install Python2.6 &amp;#039;&amp;#039;&amp;#039;EXCLUSSIVELY&amp;#039;&amp;#039;&amp;#039; into the directory &amp;quot;C:\Python26&amp;quot; (default install is Python26, don&amp;#039;t change this)&lt;br /&gt;
*Download and install Scons-1.1.0 &amp;#039;&amp;#039;&amp;#039;EXCLUSSIVELY&amp;#039;&amp;#039;&amp;#039; into the same directory as the python install (C:\Python26\)&lt;br /&gt;
*Download and install stable Mercurial locally so the command hg will work. When you get to the end of the install, make sure you check &amp;quot;add mercurial to your computers search path&amp;quot; or something similar.&lt;br /&gt;
*Download and install NSIS into all its default installation folder &amp;quot;C:\Program Files\NSIS\&amp;quot;.(For creating a windows installer)&lt;br /&gt;
*Download and install MinGW into the directory c:\mingw (lower case). During installation,&lt;br /&gt;
*select &amp;quot;Current&amp;quot; when asked what version,then&lt;br /&gt;
*select the MinGW base tools and g++ compiler packages only And,&lt;br /&gt;
*download and install MSYS-1.0.10.exe into the directory c:\msys\1.0\ (lower case). *At the end of the installation, it will ask you if you want to continue with the post-install.&lt;br /&gt;
*Select yes, and yes again when it ask if you have mingw installed.&lt;br /&gt;
*When it ask you to indicate the directory where it is installed, type in c:/mingw (yes, with a forward slash as the program prefers it that way).&lt;br /&gt;
*Download glob2 required library &amp;#039;&amp;#039;glob2_required_libs_mingw-scons.tar.bz2&amp;#039;&amp;#039; &amp;amp;save it at &amp;quot;c:\msys\1.0\&amp;quot;&lt;br /&gt;
*Double click the MSYS icon that has been placed on your desktop during MSYS&amp;#039;s installation.&lt;br /&gt;
*untar the libraries using the command:&lt;br /&gt;
 cd /&lt;br /&gt;
 tar jxf glob2_required_libs_mingw-scons.tar.bz2 -C /&lt;br /&gt;
&amp;#039;&amp;#039;This process could take a while&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Globulation 2 cooking Preparation ====&lt;br /&gt;
&lt;br /&gt;
===== Stage 1:Ingredient =====&lt;br /&gt;
*Released source code ingredient&lt;br /&gt;
If you wish to Compile from Released source code follow this stage if not skip to the next &amp;#039;&amp;#039;Ingredient&amp;#039;&amp;#039; mark below.&lt;br /&gt;
:*Download&amp;amp;Save The Archive Source Code Released (e.g glob2-0.9.4.4.tar.gz)and&lt;br /&gt;
:*extract it into &amp;quot;c:\msys\1.0\&amp;quot;&lt;br /&gt;
 cd /&lt;br /&gt;
 tar zxf glob2-X.x.x.x.tar.gz -C /&lt;br /&gt;
&amp;#039;&amp;#039;zxf: mean z for .gz archive file, x for extracting, f force it.So if &amp;#039;&amp;#039;&amp;#039;ever&amp;#039;&amp;#039;&amp;#039; the extension of the source is a&amp;#039;&amp;#039; .&amp;#039;&amp;#039;&amp;#039;bz2&amp;#039;&amp;#039;&amp;#039; use &amp;#039;&amp;#039;&amp;#039;jxf&amp;#039;&amp;#039;&amp;#039; instead of &amp;#039;&amp;#039;&amp;#039;zxf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:*then run (changing the version numbers):&lt;br /&gt;
 cd /&lt;br /&gt;
 mkdir glob-compilation&lt;br /&gt;
 cd glob-compilation&lt;br /&gt;
 mkdir glob2_source_building&lt;br /&gt;
 cd /&lt;br /&gt;
 mv glob2-X.x.x.x.tar.gz glob-compilation/glob2_source_building&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Using the Mercurial software repository ingredient&lt;br /&gt;
:*Getting Globulation 2 from mercurial:&lt;br /&gt;
 cd /glob-compilation&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2 repository&lt;br /&gt;
:*Get -branch you would like to work/play, you might also get other branches, such as beta4-rc, more information in the Definition section (not yet created):&lt;br /&gt;
 hg clone -r default repository glob2_source_building&lt;br /&gt;
&lt;br /&gt;
:*To get the latest code [OPTIONAL, not required], run:&lt;br /&gt;
 cd glob2_source_building&lt;br /&gt;
 hg update -C tip&lt;br /&gt;
More information about update, tag like tip, and branch in the definition section (under construction section of this wiki, not yet released though)&lt;br /&gt;
&lt;br /&gt;
===== Step 2: Cooking =====&lt;br /&gt;
Start compiling Globulation 2. Don&amp;#039;t worry about the warnings. If something is wrong, it will grind to a halt and it will let you know why.&lt;br /&gt;
Here you might got many errors please check out the ISSUE SECTION by scrolling ALL your way down.&lt;br /&gt;
&lt;br /&gt;
{{message|Message|Also on a slow/busy/tired Computer this process burn a lot of time &amp;amp; cpu energy.&lt;br /&gt;
On a recent computer it takes an average of 12 mins, but could be multiply by 10 or more according to your system characteristic -specially cpu core clock frequency.}}&lt;br /&gt;
&lt;br /&gt;
:*To launch the compilation, run:&lt;br /&gt;
 cd /glob-compilation/glob2_source_building&lt;br /&gt;
 scons -j5 --random --cache-force&lt;br /&gt;
The argument are optional and are add here when you got a multi-core CPU , that command order to compile on 5 other cores simultaneously! [Multi-threading or tasking]&lt;br /&gt;
&lt;br /&gt;
More Details will be found at [http://www.scons.org/doc/HTML/scons-man.html scons MAN PAGE].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Normally if all is done you should see the blinking cursor in the shell,return to a new line with a $ followed by the no more blink cursor (marine blue color normally).Also as a rule of dumb you should get the Binary from a succesful cooking/compilation, So Have a look inside&amp;#039;&amp;#039; &amp;#039;&amp;#039;glob2_source_building&amp;#039;&amp;#039; folder ;)&lt;br /&gt;
&lt;br /&gt;
===== Step 3: Testing ===== &lt;br /&gt;
&lt;br /&gt;
Once compiling has successfully finished&lt;br /&gt;
*Make a &amp;#039;TEST&amp;#039; directory call &amp;quot;test&amp;quot; at &amp;quot;C:\msys\1.0\glob-compilation&amp;quot;.&lt;br /&gt;
*Copy into it all the file found in &amp;quot;C:\msys\1.0\local\lib&amp;quot; then do not forget to do,&lt;br /&gt;
*Copy and past of the Glob2.exe from &amp;quot;C:\msys\1.0\glob-compilation\glob2_source_building\src\&amp;quot; into this &amp;#039;Test&amp;#039; directory you have just made.&lt;br /&gt;
*Copy the SDL.dll from &amp;quot;C:\msys\1.0\local\bin&amp;quot; and past it into your &amp;#039;test&amp;#039; folder, and...&lt;br /&gt;
*launch it ! ENJOY IT !&lt;br /&gt;
&lt;br /&gt;
{{message|NOTE|At first start the application, the game, is freezing , because it is setting many parameters, so on a slow/busy machine this could take a while.&lt;br /&gt;
*ON VISTA and Above set the alert if any to &amp;#039;&amp;#039;&amp;#039;Wait until the application respond&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
===== Step 4: Packaging (SECTION UNDER TESTING) =====&lt;br /&gt;
In this Stage We will Build a Globulation2 NSIS package.&lt;br /&gt;
&lt;br /&gt;
*In MSYS, run the following codes to compile a windows installable exe file:&lt;br /&gt;
 cd /glob-compilation/glob2_source_building&lt;br /&gt;
 cd bundle (or &amp;#039;&amp;#039;windows&amp;#039;&amp;#039; if bug)&lt;br /&gt;
 glob2_make_win32.sh&lt;br /&gt;
&lt;br /&gt;
If all things go well, an exe ready for installation on windows computers is now ready within the bundle folder. Test it (install and play), and if it works, send it to your friends ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ! ! ! SECTION UNDER REMODELING ! ! ! ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOW THE COMMAND LINE IS REDUCED to the minimal -while the command line method remain in the wiki for the linux-lover-, This wiki may seems long to read, but it does contain many informations to dig deeper later than a simple compilation, and this will be really a hand when a question like, &amp;#039;&amp;#039;Can I choose my source to compile ?&amp;#039;&amp;#039;, &amp;#039;&amp;#039;How I patch it thought ?&amp;#039;&amp;#039;.... exciting is&amp;#039;n it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*DOWNLOAD&amp;amp;INSTALLATION&lt;br /&gt;
&lt;br /&gt;
:* Download  [http://www.python.org/download/ Python] &amp;#039;&amp;#039;&amp;#039;EXCLUSIVELY&amp;#039;&amp;#039;&amp;#039; A PYTHON &amp;#039;&amp;#039;&amp;#039;V2&amp;#039;&amp;#039;&amp;#039;.x.x VERSION -Newer Python are not compatible with scons (V1.x.x or V2.0.0.final.0)&lt;br /&gt;
:* Install &amp;#039;&amp;#039;&amp;#039;into&amp;#039;&amp;#039;&amp;#039; the directory &amp;quot;&amp;#039;&amp;#039;&amp;#039;C:\Python26&amp;#039;&amp;#039;&amp;#039;&amp;quot; (default install is Python_version_number, &amp;#039;&amp;#039;&amp;#039;change this number to 26&amp;#039;&amp;#039;&amp;#039; during installation if you want to avoid a BUG [Issue #3], &amp;#039;&amp;#039;even if you got Python34&amp;#039;&amp;#039; )! the Version 3.1.2 is NOT COMPATIBLE as I&amp;#039;m writing now (july-2010) !&lt;br /&gt;
:* Download [http://www.scons.org/download.php &amp;#039;&amp;#039;&amp;#039;scons-1.1.0&amp;#039;&amp;#039;&amp;#039;] and install it [**AS ADMINISTRATOR**] into the same directory as the python install (C:\Python26\) If you are installing the most recent scons version than the &amp;quot;scons-1.1.0&amp;quot; An &amp;#039;&amp;#039;&amp;#039;issue #3&amp;#039;&amp;#039;&amp;#039; [BUG] will occurred. An easy measure is not yet defined. The Version 2 has been tested and is compatible with Python27 but not with Python31 nevertheless using other version than the v1.1.0 will call the issue #3!&lt;br /&gt;
:* Download and install HgTortoise we come along with mercurial software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{message|PLEASE INSTALL| &amp;#039;&amp;#039;&amp;#039;ONLY ONE&amp;#039;&amp;#039;&amp;#039; Mercurial ! The Mercurial version 1.6.0 &amp;#039;&amp;#039;&amp;#039;with Turtoise or not&amp;#039;&amp;#039;&amp;#039; work perfectly ! }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::*EITHER &amp;#039;&amp;#039;Friendly Windows&amp;#039;&amp;#039; &amp;amp; command line: [http://tortoisehg.bitbucket.org/ GET TurtoiseHG NOW] &amp;#039;&amp;#039;&amp;#039;along with mercurial&amp;#039;&amp;#039;&amp;#039; out of the box !&lt;br /&gt;
&lt;br /&gt;
::*OR &amp;#039;&amp;#039;Command line Only&amp;#039;&amp;#039;, [http://bitbucket.org/tortoisehg/thg-winbuild/downloads/mercurial-1.6.0.msi Mercurial-1.6.0 stable without TortoiseHg]. For the futur (&amp;#039;&amp;#039;When the link will be broken&amp;#039;&amp;#039;) you can check this area:[http://mercurial.selenic.com/downloads/ other download link] to get mercurial.The old Mercurial data References for this Wiki could be found [http://mercurial.berkwood.com/ there] (Outdated-support).&lt;br /&gt;
&lt;br /&gt;
:::*What exactly is HgTortoise, though ?&lt;br /&gt;
TortoiseHg is a set of &amp;#039;&amp;#039;&amp;#039;graphical tools&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;a shell extension for the &amp;#039;&amp;#039;Mercurial&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; distributed revision control system.&lt;br /&gt;
On Windows, TortoiseHg consists of a shell extension, which provides overlay icons and context menus in your&lt;br /&gt;
file explorer, and a command line program named hgtk.exe which can launch the TortoiseHg tools. Binary&lt;br /&gt;
packages of TortoiseHg for Windows come with &amp;#039;&amp;#039;&amp;#039;Mercurial&amp;#039;&amp;#039;&amp;#039; and a merge tool and are thus completely ready for&lt;br /&gt;
use “Out of the Box”.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s a powerful Graphical User Interface (GUI) for developer, and give to the simple user an overview easiest and simplest ever ! Even better than Globulation2 Hg Web site, in my opinion, I &amp;#039;&amp;#039;just&amp;#039;&amp;#039; love it. After Testing, &amp;#039;&amp;#039;&amp;#039;No trouble&amp;#039;&amp;#039;&amp;#039; has been noticed and you can &amp;#039;&amp;#039;continue to use Minimalist Gnu for Windows and  Hg command line&amp;#039;&amp;#039; to perform it by hand like this tutorial teach you to do. Soon we will use this powerful GUI for even less command lines ! :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wanna Know more about TortoiseHg visit [http://tortoisehg.bitbucket.org/  their Web Site] here, please. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*OPTIONAL DOWNLOAD:&lt;br /&gt;
&lt;br /&gt;
(To create a windows installer)&lt;br /&gt;
:*Download and install [http://nsis.sourceforge.net/Download NSIS] into all its default installation folder &amp;quot;C:\Program Files\NSIS\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(To be proud of using MS WINDOWS GUI for tarballing archives matter)&lt;br /&gt;
:* Look for[http://portableapps.com/apps/utilities/7-zip_portable 7-Zip] (GNU) or [http://www.rarlab.com/ winrar] (winrar is a Commercial Shareware -with a 30day free-trial), You have also IZarc [Free](but it can&amp;#039;t make Gzip archive, he does extract them However) for a more friendly GUI than command line, We are under Windows, do we ?&lt;br /&gt;
&lt;br /&gt;
(In case of Bug or Issues, who knows ? )&lt;br /&gt;
:*[http://portableapps.com/apps/development/notepadpp_portable Look for  notepadd++] (free gnu software) to edit code lines (specially for scons).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
=== Setting up MinGW and MSYS ===&lt;br /&gt;
:*Download [http://sourceforge.net/projects/mingw/files/ MinGW- Minimalist GNU for Windows] (the actual v5.x.x works well)and&lt;br /&gt;
:* Install it into the directory c:\mingw (&amp;#039;&amp;#039;lower case&amp;#039;&amp;#039;).&lt;br /&gt;
:* During installation, select &amp;quot;&amp;#039;&amp;#039;Curren&amp;#039;&amp;#039;t&amp;quot; when asked what version, and then&lt;br /&gt;
:* select the &amp;quot;&amp;#039;&amp;#039;MinGW base tools&amp;#039;&amp;#039;&amp;quot; (by default) and &amp;quot;&amp;#039;&amp;#039;g++ compiler&amp;#039;&amp;#039;&amp;quot; packages &amp;#039;&amp;#039;&amp;#039;only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*Download and install [http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe MSYS-1.0.10.exe] into the directory c:\msys\1.0\ (&amp;#039;&amp;#039;lower case&amp;#039;&amp;#039;).&lt;br /&gt;
:*  At the end of the installation, it will ask you if you want to continue with the post-install. Select yes, and yes again when it ask if you have mingw installed.&lt;br /&gt;
:* Then -the black windows prompt- will continue asking you to indicate where the directory is installed,type :&lt;br /&gt;
:* c:/mingw  (yes, with a forward slash -linux habit to have- as the program prefers it that way).&lt;br /&gt;
&lt;br /&gt;
=== Compiling Prerequisites ===&lt;br /&gt;
==== Windows Method ====&lt;br /&gt;
:*Open in a news Windows Explorer windows the path &amp;quot;C:\msys\1.0&amp;quot; (we will drop some files into it later from an archive)&lt;br /&gt;
:*Download [http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz2 glob2_required_libs_mingw-scons.tar.bz2] and put it in the home directory of msys (c:\msys\1.0\home\XXX\ where XXX is the username)&lt;br /&gt;
:*Open it with a bz2-tar archiver application like Winrar,or 7z, and&lt;br /&gt;
:*Drag and drop All Directories from the Archivers (e.g Winrar) into the path &amp;quot;C:\msys\1.0&amp;quot; (remember we already got a windows ready for that) , tell yes if it ask for over writting, or already existing files/folders. This could take a While.&lt;br /&gt;
&lt;br /&gt;
{{message|NOTE|:&amp;#039;&amp;#039;On Windows VISTA and Above you might need the Administrators Right to access copy or drag and drop files into the C Drive trees. &amp;#039;&amp;#039; an inheritance from linux chmod :(  }}&lt;br /&gt;
&lt;br /&gt;
ONCE Done, close the Archiver, and Windows that we opened for the drag and drop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Linux like Method ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OLD_METHODE , &amp;#039;command line geek&amp;#039;&amp;#039;&amp;#039;&amp;#039;  -This will be cleared soon- :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*Double click the MSYS icon that has been placed on your desktop during MSYS&amp;#039;s installation.&lt;br /&gt;
:*Go in the directory where you put the glob2_required_libs_mingw-scons.tar.bz2 (for example cd ~) and untar the libraries using the command below. This process could take a while:&lt;br /&gt;
 tar jxf glob2_required_libs_mingw-scons.tar.bz2 -C /&lt;br /&gt;
&lt;br /&gt;
== ON The Way to get Ready for Compiling Globulation 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Step 1: Choosing from What Source Code to compile===&lt;br /&gt;
INFO: &amp;#039;Mercurial source&amp;#039; is a well known expression but at my sens are an Idiom abuse, What People called here mercurial Sources,is designing in reality the &amp;#039;&amp;#039;Globulation Source Development Pool using Mercurial&amp;#039;&amp;#039;, and that is the way I would prefer to name it &amp;quot;Project source files&amp;quot;.Mercurial is indeed a Sotfware who organized the Globulation project development and not The project name itself, but I will sometime refer to &amp;quot;mercurial sources&amp;quot; idiom inside this wiki, since this is a pretty common well-known-expression. &lt;br /&gt;
&lt;br /&gt;
Follow the &lt;br /&gt;
:*step 1A for compilation with Official Code source release (tar-ball download)&lt;br /&gt;
:*step 1B for compilation from &amp;#039;Mercurial source&amp;#039; by hand -friendless-&lt;br /&gt;
:*step 1C for compilation from &amp;#039;Mercurial source&amp;#039; by Friendly windows :D &lt;br /&gt;
&lt;br /&gt;
Follow only one of those step and after done it , got to go to the appropriate STEP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== STEP1 A -  Official Web site Released source code====&lt;br /&gt;
:*Download [ [[Download_and_Install]] ] The c++ tarball archive source code file&lt;br /&gt;
:* Create a Folder name &amp;quot;glob2_source_building&amp;quot; at c:\msys\1.0\home\XXX\ (where XXX is the username)&lt;br /&gt;
:* Extract the source code archive [USING &amp;#039;&amp;#039;&amp;#039;7-Zip&amp;#039;&amp;#039;&amp;#039; or assimilated software]in the folder you have just made.&lt;br /&gt;
:* Then Go Down to &amp;#039;&amp;#039;&amp;#039;STEP2&amp;#039;&amp;#039;&amp;#039; ( quicker compiling way :)&lt;br /&gt;
&lt;br /&gt;
==== STEP1 B - The &amp;quot;Project source files&amp;quot; [NO TURTOISE API]====&lt;br /&gt;
(known formerly as &amp;#039;&amp;#039;Mercurial Source&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hint: If you got the TortoiseHG (is friendly Windows software appearance using Mercurial ) you can USE IT, by going down now to the &amp;#039;&amp;#039;&amp;#039;B.2&amp;#039;&amp;#039;&amp;#039; Section! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download Globulation 2 from a remote repository (Formerly called here &amp;#039;&amp;#039;&amp;#039;mercurial-Sources&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2 glob2-local-repository&lt;br /&gt;
: This can take a while if your internet connexion is a limited bandwidth, You are &amp;quot;just&amp;quot; getting ALL the Globulation Work history back from November 2001, when it all began ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do you look for more information about hg clone option&amp;amp;parameters see this [http://www.selenic.com/mercurial/hg.1.html#clone MAN PAGE].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION:&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; Tags are used to name particular revisions of the repository and are very useful to compare different revisions, to go back to significant earlier versions or to mark branch points as releases, mark certain versions when glob2 publishes a new released (e.g beta4.&amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039; is the beta-4 series &amp;#039;&amp;#039;&amp;#039;5th version&amp;#039;&amp;#039;&amp;#039; ). This is better and more stable than the beta4.4 but should not desync against beta4.1. If you only want to play glob2 beta4, use the latest tag beta4.whatever_revision.&lt;br /&gt;
&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039; is a special Revision tag. It is the revision last committed to the Working repository. In general this is not what you want but you get it by default.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;Branches&amp;#039;&amp;#039; are a kind of core-game or working-pool which is based on an existing release ( game source_code) so branches are set to define some news BIG changes or features like &amp;#039;replay&amp;#039; or &amp;#039;market_bug&amp;#039; or why not AI_changes ,They are used to mark a sequence of revisions that are not &amp;#039;&amp;#039;necessarily all stable&amp;#039;&amp;#039;. Somewhere between beta4-rc branch and beta4.5  there might be versions -branches with Revision update applied or not- that don&amp;#039;t compile (mainly for Coding mistake or incompatible branch modification with the apply of an Revision (patch for other bug or merged branches) or not. If you want to help on a beta4.6 you would need to get &amp;#039;&amp;#039;the branch beta4-rc&amp;#039;&amp;#039; and update with the revision you would like to help for in this case beta4.6 -this will be explain later.If you would like to play the Beta4.5 with the latest patch (who may be unstable too) you will need to extract the Branch &amp;quot;beta4-rc&amp;quot; and later update it with a proper tags like &amp;quot;tip&amp;quot; or &amp;quot;beta4.5&amp;quot; or else(you got the tags list from the command &amp;#039;hg tags&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039; is the main branch where the latest changes is being made (New Series Version,New RC, or unstable version, so this might include new branch). IT&amp;#039;s the right place to check it out what news stuff is being coded and implemented.&lt;br /&gt;
&lt;br /&gt;
:::*NOTE:If you would to play this branch is not the right -could be Desynchronized , and Unstable.If you look for fixing bugs, this is not the right &amp;#039;setting&amp;#039; either, because you might look for the buggiest version. Bugs in the &amp;#039;&amp;#039;default&amp;#039;&amp;#039; could got fixed in the earliest supported branches (those with an -rc) but not always.If you want to implement new features that you are sure to finish do it in &amp;quot;default&amp;quot;. If your feature is complex, use &amp;quot;default&amp;quot; but branch off a feature branch (hg branch my-complex-feature)-&amp;gt; the branch creation will not exist in the repository until the next commit -see [http://www.selenic.com/mercurial/hg.1.html#branch HG MAN page] for references.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now time for Extracting The [branch name you picked above (this depending of your goal)] you want to work/play with from the &amp;#039;Project source pool called mercurial&amp;#039; download into the a separate folder for the updating &amp;amp; compilation work, I decided to named it &amp;quot;glob2_source_building&amp;quot;. So if the compilation abort you do not have to download again from the remote site the mercurial data, avoiding a server overload.&amp;#039;&amp;#039;&amp;#039;In a case of a compilation failure&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;ONLY&amp;#039;&amp;#039;&amp;#039; in &amp;#039;&amp;#039;this&amp;#039;&amp;#039; case you should just delete glob2_source_building by using Windows explorer GUI (with contextual menu and mouse use) This folder should be found at &amp;quot;C:\msys\1.0\home\XXX&amp;quot; Where XXX is your PC&amp;#039;s name or username.After that start over from down here.&lt;br /&gt;
&lt;br /&gt;
 hg clone -r [branch name you picked above e.g beta5-rc] glob2-local-repository glob2_source_building&lt;br /&gt;
 cd glob2_source_building&lt;br /&gt;
Hg clone HELP [http://www.selenic.com/mercurial/hg.1.html#clone here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* update to the Revision you would like to apply, have or work with.&lt;br /&gt;
&lt;br /&gt;
The [OPTION] -C will assure you that no Hybrid code will be made by any merge branching uncommitted &amp;#039;revision&amp;#039;. if the update tag chosen is an no consequent one like you choose to apply a Revision design for Beta3-series on your chosen branch beta5-rc , The updater will abort with no modification -I&amp;#039;&amp;#039;f I correctly get the meaning in the manual&amp;#039;&amp;#039; see: [http://www.selenic.com/mercurial/hg.1.html#update Hg manual]. Hint: Branch name could be alias as &amp;#039;Feature-pool&amp;#039; and tag as &amp;#039;Revision&amp;#039; ,both are proper called &amp;#039;changeset&amp;#039; in the Hg manual.&lt;br /&gt;
 hg update -C [tag &amp;#039;revision&amp;#039; name you&amp;#039;d like to have e.g tip or beta4.5 ]&lt;br /&gt;
Hints: The list of tags are listed with the command &amp;quot;hg tags&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To get more information about How Mercurial Work have look there :[[Mercurial]].&lt;br /&gt;
&lt;br /&gt;
==== STEP1 C - The &amp;quot;Project source files&amp;quot; [USING TURTOISE API]====&lt;br /&gt;
(known formerly as &amp;#039;&amp;#039;Mercurial Source&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;THIS SECTION HAS SUCCESSFULLY BEEN TESTED and APPROVED !&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*DOWNLOADING the &amp;#039;Project&amp;#039;&lt;br /&gt;
::*Open Windows File Explorer (WIN_KEY+E) and go to &amp;quot;C:\msys\1.0\&amp;quot;&lt;br /&gt;
::*Create a Directory Call &amp;quot;glob-compilation&amp;quot;, Get inside this folder&lt;br /&gt;
::*Right clicking, This open the contextual menu, then&lt;br /&gt;
::*select TortoiseHG&amp;gt;&amp;gt;Clone ,a pop-up windows will appear,&lt;br /&gt;
::*in source path please fill in this: &amp;quot;https://bitbucket.org/giszmo/glob2&amp;quot; without the quotation mark.&lt;br /&gt;
::*as Destination fill it that way: &amp;quot;C:\msys\1.0\glob-compilation\repository\&amp;quot; without the quotation mark.&lt;br /&gt;
::*push the button &amp;quot;Clone&amp;quot;&lt;br /&gt;
This Will take a lot of CPU energy and internet bandwidth, internet broadband is recommanded (size is over 100MB)!&lt;br /&gt;
&lt;br /&gt;
:*SELECTING Branch&lt;br /&gt;
::*Right-click on the repository folder, mouse down -&amp;#039;&amp;#039;in the contextual menu&amp;#039;&amp;#039;- to &amp;quot;Hg Repository Explorer&amp;quot;, this open the Explorer where you can see and get an overview of all the sources modification from the very beginning of the project up to now ( at least the download date or update of the [https://bitbucket.org/giszmo/glob2 online-repository] !&lt;br /&gt;
&lt;br /&gt;
Now Here you can see The project source board is a bit complicated to explain all things though , I will limited myself to the basic staff, feel free to read the Software HELP.&lt;br /&gt;
Now let &amp;#039;s get the list of those branches,On the middle under the task-bar of Turtoise, you can see a kind of button  following by an arrow called &amp;quot;branches&amp;quot; if you click on the next by arrow you can see a list of the actual branches in the repository you are actually exploring.&lt;br /&gt;
&lt;br /&gt;
:::* Branch Definition&lt;br /&gt;
A NEW changing state in the repository -where code data are recorded- and has been created from an another branch that is not a head -the very beginning of a any branch. If a new branch is named, it becomes a &amp;#039;&amp;#039;&amp;#039;named branch&amp;#039;&amp;#039;&amp;#039;. If a new branch is not named, it becomes an &amp;#039;&amp;#039;&amp;#039;anonymous branch&amp;#039;&amp;#039;&amp;#039;. A branch name should represent the tipmost revision of that branch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::*Beyond the water.&lt;br /&gt;
(you can skip it if you don&amp;#039;t care about How the code is organized)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Branches are like real trees branches they grow on a tree from the ground zero (the first branch  call -NULL- (ID 00000000). and from branch to branch they keep growing, and like real tree they have communication point-node- between each one another (merge) and for easiest classification the use of name and tag name along with Unique SHA1-ID.When a Branch got mature and got merge into the trunk (the main first branch call by default: &amp;#039;&amp;#039;default&amp;#039;&amp;#039;), on the website and the hgturtoise software they are represented as different colored lines.The different between real tree and the &amp;#039;&amp;#039;program&amp;#039;&amp;#039; is that the real tree branches have his branches that keep growing, in opposition, with the &amp;#039;&amp;#039;Mercurial Program Branches&amp;#039;&amp;#039;, which when a branch is not any longer supported -mainly because the goal is reached  and then are merge into one another or they miss their goal and have their Head set to be closed.Then naturally they could not grow any longer, they just Disappear -into the main branch or ended in a dead-end -as I believe- see the [http://www.selenic.com/mercurial/hg.1.html Mercurial Documentation] for Exact Details and our [http://globulation2.org/wiki/Mercurial local Documentation].&lt;br /&gt;
&lt;br /&gt;
Branches are like a small-working-pool which is based on an existing release (earlier branch)so branches are set to define some news changes that the dev or devs team wish to implement and for testing game core stability and avoiding corruption the Code are split into branches - e.g the famous 2007_Game_core_Writing, for this example a tag has been created to avoid people to update from the main branch to the experimental branch. Branch functionality are very complex to understand and to explain.When a experimental branch get stable and add an new features or fix a bug ,they are &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; into the main branch called &amp;#039;&amp;#039;default&amp;#039;&amp;#039; at this point if the dev feel the need for, He/she could set a tag to refer to his improvement.&lt;br /&gt;
&lt;br /&gt;
:::::*Cloning a branch -example-&lt;br /&gt;
Cloning a branch that has been split from the main branch for experimentation and not yet get merge into it, will give you the game source data that this dev team are working on, due to the fact that the code is under writing of course it may be not always be compilable, specialy since other well known bug could be fixed on other branches or in the main default branch, who do not profit to a particular branch unless they get merge into.I told you complicated staff.&lt;br /&gt;
&lt;br /&gt;
:::::* Head&lt;br /&gt;
it&amp;#039;s even more complicated if you can imagine that branch should have a &amp;#039;&amp;#039;Head&amp;#039;&amp;#039; and many head could exist in the &amp;#039;&amp;#039;Mercurial system&amp;#039;&amp;#039; but are not recommended. Head are define as a very new branch beginning with no descendants yet.&lt;br /&gt;
&lt;br /&gt;
or features like &amp;#039;replay&amp;#039; or &amp;#039;market_bug&amp;#039; or why not AI_changes ,They are used to mark a sequence of revisions that are not necessarily all stable, they come from parent and lead to children unless if the got merge in or off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::* SUMMARY&lt;br /&gt;
The &amp;#039;Default&amp;#039; is the last one where every one look at for improvement.not necessary stable. after come the &amp;#039;betaX-rc&amp;#039; -&amp;#039;&amp;#039;branch name&amp;#039;&amp;#039;- who the X represent the Game Core Version along with the suffix -rc , meaning Release Candidate are usualy &amp;#039;&amp;#039;stable&amp;#039;&amp;#039; and less buggy, good for gaming ! However I found in some case that betaX-rc are less stable than the Default branch !&lt;br /&gt;
And the other are mostly dedicated for debugger, tester, and other geeks!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:* CLONYING our Branch [DIRECTION]&lt;br /&gt;
(for a clean Re-compilation in case of Failure )&lt;br /&gt;
&lt;br /&gt;
::*Create a Directory called &amp;quot;&amp;#039;&amp;#039;&amp;#039;glob2_source_building&amp;#039;&amp;#039;&amp;#039;&amp;quot; -&amp;#039;&amp;#039;with Windows File Explorer (WIN_KEY+E)&amp;#039;&amp;#039;- at &amp;quot;C:\msys\1.0\glob-compilation\&amp;quot;&lt;br /&gt;
::*Right clicking on this new folder, will open the contextual menu, then&lt;br /&gt;
::*select TortoiseHG&amp;gt;&amp;gt;Clone ,a pop-up windows will appear,&lt;br /&gt;
::*Set the source path to the &amp;quot; repository&amp;quot; folder either using the Browse button or filling up the field with &amp;quot;C:\msys\1.0\glob-compilation\repository&amp;quot;&lt;br /&gt;
::*Select using the arrow the &amp;quot;advanced options&amp;quot;&lt;br /&gt;
::*Check the box &amp;quot;clone to Revision&amp;quot; and in the next field, fill in the branch you want. ( e.g: Default ,or, beta5-rc ).&lt;br /&gt;
::*launch the clonning process by pressing the button. ( this time it&amp;#039;s require less time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*UPDATING IT [DIRECTION]&lt;br /&gt;
This stage may be useful if you are getting to work on a long term with mercurial system,if you are just a fast windows player skip this part to the next.&lt;br /&gt;
&lt;br /&gt;
{{message|Revision| is A repository snapshot at a particular time.Therefore earlier revisions can be updated to by using the Update command.It can be specified as a changeset &amp;#039;&amp;#039;&amp;#039;revision number&amp;#039;&amp;#039;&amp;#039;, a &amp;#039;&amp;#039;&amp;#039;tag name&amp;#039;&amp;#039;&amp;#039;, or a &amp;#039;&amp;#039;&amp;#039;unique SHA-1 hash value&amp;#039;&amp;#039;&amp;#039; substring of the changeset.&lt;br /&gt;
&lt;br /&gt;
The tag &amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;: is the snapshot with the highest revision number.It is the changeset most recently added in a repository.&lt;br /&gt;
&lt;br /&gt;
The tag &amp;#039;&amp;#039;&amp;#039;betaX&amp;#039;&amp;#039;&amp;#039; (X is a number): are tag created to refer to a particular working branch bond normally to the branch name &amp;quot;betaX-rc&amp;quot; }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When your local Globulation2 Project Repository is getting &amp;#039;&amp;#039;&amp;#039;old&amp;#039;&amp;#039;&amp;#039; -&amp;#039;&amp;#039;for months&amp;#039;&amp;#039;- you can use the Update option find in the contextual  menu under the HgTurtoise section, when right clicking on a folder. The best bet is to update either your &amp;#039;&amp;#039;local repository&amp;#039;&amp;#039; or just your working source folder &amp;quot;&amp;#039;&amp;#039;glob2_source_building&amp;#039;&amp;#039;&amp;quot;.Using mostly the &amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039; tag or &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039; or a betaX-rc -where X is a number.&lt;br /&gt;
&lt;br /&gt;
::*Details&lt;br /&gt;
This stage , in my opinion as I am writing, is optional, the purpose is to get the last Revision that has been coded for a typical branch, they are called Tags, Revision.When using a local &amp;#039;&amp;#039;&amp;#039;repository&amp;#039;&amp;#039;&amp;#039; up to date, the update is not needed.See the [https://bitbucket.org/giszmo/glob2 online GRAPH improvement] to see if you need to update your data and compare to your local repository Data using HgTurtoise explorer on the &amp;#039;&amp;#039;&amp;#039;repository&amp;#039;&amp;#039;&amp;#039; folder -that you has cloned maybe for a while.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::*Tag -definition-&lt;br /&gt;
Do not hesitase to get read those pages for further Informations:&lt;br /&gt;
:::::* Local Mercurial [http://globulation2.org/wiki/Mercurial#A_quick_overview_of_Mercurial wiki page].&lt;br /&gt;
:::::* Hg [http://www.selenic.com/mercurial/hg.1.html#tag online Manual] Page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::*Get Beyond the water.&lt;br /&gt;
:::::*A tag name is associated with a revision ID number.&lt;br /&gt;
:::::*The special tag &amp;quot;tip&amp;quot; is always identifies the most recent revision.&lt;br /&gt;
:::::*Tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
If you update to an &amp;quot;Revision&amp;quot; -tag-,let&amp;#039;s say the beta4-rc you was an branch aside from the main one -default-, the beta4-rc was under development on the developer local repository, until they commit their work online.&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
who is buggy or old, you could create some version who is really not WANTED, because of the bug they can create and the hight risk of compilation failures.To prevent this check the box , &amp;quot;&amp;#039;&amp;#039;discard local changes,nobackup -C/--clean&amp;#039;&amp;#039;&amp;quot; option, and always show log ( to get a traceback of any change that will be done). USING the -C option will avoid any bad update ! it&amp;#039;s a safe way to update, I think.&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;m not really confident with updating, but some do , with no trouble. The Tags, or &amp;quot;Revison&amp;quot;; &amp;#039;&amp;#039;tip&amp;#039;&amp;#039; is really adapted to the &amp;#039;&amp;#039;default branch&amp;#039;&amp;#039;, for a good &amp;#039;cooking&amp;#039; ask the devs or look upon the forum to see what update Revision to use with what Branch.&lt;br /&gt;
&lt;br /&gt;
On the Update setting windows you can choose your Tags, and see the target description below , who will change for each different one. The parent part will inform you about the actual branch you are updating from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::*Right clicking on the &amp;#039;&amp;#039;glob2_source_building&amp;#039;&amp;#039; folder, This open the contextual menu, then&lt;br /&gt;
::*select TortoiseHG&amp;gt;&amp;gt;update ,a pop-up windows will appear,&lt;br /&gt;
::*choose your Revision you decided to apply (e.g: tip)&lt;br /&gt;
::*check the First option box only and verify the other are uncheck.&lt;br /&gt;
::* then push the update button&lt;br /&gt;
Once done, close the windows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now time for compiling, and we need to get ready for command lines....&lt;br /&gt;
&lt;br /&gt;
===STEP 2: COMPILATION ===&lt;br /&gt;
PLEASE NOTE: The compilation Stage could lead to some ISSUES,they are disccuss in the proper section below. Don&amp;#039;t worry about the &amp;#039;&amp;#039;warnings&amp;#039;&amp;#039; while compiling. If something is wrong, it will grind to a halt and it will let you know why.Also Depending on the machine characteristic the process could take more or less longer.&lt;br /&gt;
from 5min from a rocker computer to I guess over 192 mins for a old and tired computer&lt;br /&gt;
&lt;br /&gt;
When You have Followed the&lt;br /&gt;
:*STEP 1A follow the STEP2 A&amp;amp;B&lt;br /&gt;
:*STEP 1B follow the STEP2 A&amp;amp;B&lt;br /&gt;
:*STEP 1C follow the STEP  2C&lt;br /&gt;
&lt;br /&gt;
Pretty easy , right....&lt;br /&gt;
&lt;br /&gt;
===Step 2 A&amp;amp;B Direction ===&lt;br /&gt;
&lt;br /&gt;
:*Start compiling Globulation 2.&lt;br /&gt;
:*Open msys by double clicking the desktop icon, type the following code into the emulated *NIX-shell;&lt;br /&gt;
 cd glob2_source_building &lt;br /&gt;
 scons&lt;br /&gt;
&lt;br /&gt;
===Step 2 C Direction ===&lt;br /&gt;
&lt;br /&gt;
:*Starting Globulation 2 compilation.&lt;br /&gt;
:*Open msys by double clicking the desktop icon, type the following code into the emulated *NIX-shell;&lt;br /&gt;
 cd /glob-compilation/glob2_source_building&lt;br /&gt;
 scons&lt;br /&gt;
HINT: The &amp;quot;TAB KEY&amp;quot; help you to finish to fill up the path name use it to save time and mistake.&lt;br /&gt;
&lt;br /&gt;
===Step 2 A&amp;amp;B&amp;amp;C The TEST After a Success compilation ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*Once compiling has finished&lt;br /&gt;
:* Make a &amp;#039;TEST&amp;#039; directory call &amp;quot;test&amp;quot; or &amp;quot;whatever&amp;quot; using MS WINDOWS in your desktop or &amp;#039;elsewhere&amp;#039; for the simplest example we will set it up in our windows desktop :) .&lt;br /&gt;
:*Copy into it all the file found in &amp;quot;C:\msys\1.0\local\lib&amp;quot; then do not forget to do,&lt;br /&gt;
:*Copy and past of the Glob2.exe from &amp;quot;C:\msys\1.0\home\XXX\glob2_source_building\src\&amp;quot; where XXX is the PC&amp;#039;s name or user into this &amp;#039;Test&amp;#039; directory you have made in your desktop.&lt;br /&gt;
{{message| if you went from C Step| The binary will be found into &amp;#039;&amp;#039;C:\msys\1.0\glob-compilation\glob2_source_building&amp;#039;&amp;#039; directory.}}&lt;br /&gt;
:*Copy the SDL.dll from &amp;quot;C:\msys\1.0\local\bin&amp;quot; and past it into your desktop &amp;#039;test&amp;#039; folder, and...&lt;br /&gt;
:* launch it ! ENJOY IT !&lt;br /&gt;
At first start the application, the game, is freezing , because it is setting many parameters, so on a slow/busy machine this could take a while.&lt;br /&gt;
&lt;br /&gt;
===Building a Globulation 2 NSIS installer===&lt;br /&gt;
&lt;br /&gt;
When You had run the STEP2 A&amp;amp;B:&lt;br /&gt;
:*In MSYS, run the following codes to compile a windows installable exe file:&lt;br /&gt;
 cd glob2_source_building&lt;br /&gt;
 cd bundle&lt;br /&gt;
 glob2_make_win32.sh&lt;br /&gt;
&lt;br /&gt;
When You had run the STEP2 C:&lt;br /&gt;
:*In MSYS, run the following codes to compile a windows installable exe file:&lt;br /&gt;
 cd /glob-compilation/glob2_source_building&lt;br /&gt;
 cd bundle&lt;br /&gt;
 glob2_make_win32.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*If all things go well, an exe ready for installation on windows computers is now ready within the &amp;#039;&amp;#039;&amp;#039;bundle&amp;#039;&amp;#039;&amp;#039; folder. Test it (install and play), and if it works, send it to your friends ;)&lt;br /&gt;
&lt;br /&gt;
==Possible Issues==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ISSUE #1.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Make sure you have no hidden GNU-GCC installed somewhere. GCC is for example included in the FreePascal-Compiler. (You won&amp;#039;t find any Lib anymore if another GCC is activ.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ISSUE #2.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Make sure path to GCC is set in Path Enviroment Variable. The Scons-Script just aborts (can&amp;#039;t find libSDL) if it is not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ISSUE #3.0 sh: /bin/scons: No such file or directory&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Wrote in Summer-2010)&lt;br /&gt;
:*Fixed that by installing Python2.6 along with scons-1.1.0 or editing scons file found in the ../Bin/ more details about that below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I got this trouble as many other people [http://globulation2.org/forums/viewtopic.php?t=210 look there].&lt;br /&gt;
It is not quite easy to explain how to make-it-works,The solution could be fixed easily but have to be dynamic with ever new python &amp;amp; scons product version .&lt;br /&gt;
So this Trouble could come over again later.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Where that Trouble come from ?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This comes from a &amp;quot;unix-kind-link&amp;quot; who has been designed for Python 2.6  AND scons-1.1.0 Versions ONLY due to the fact that today the Python version and scons have and will evolve their name, their path will too, breaking the scons unix-type-link !&lt;br /&gt;
That said, as you see The Trouble will come over and over if the way to bond the scons to mingw sh (unix command bash, &amp;amp; emulated environment) will stay like that -none dynamic-&lt;br /&gt;
&lt;br /&gt;
:* How the Community can fix it ?&lt;br /&gt;
Here some ideas:&lt;br /&gt;
We need to maintain a right scons file provided in the [http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz tarball file ] call &amp;#039;Prerequisites&amp;#039; (glob2_required_libs_mingw). &lt;br /&gt;
&lt;br /&gt;
:* What &amp;#039;&amp;#039;&amp;#039;YOU&amp;#039;&amp;#039;&amp;#039; can do to make it works ?&lt;br /&gt;
::*The  EASIEST, SIMPLEST,EFFICIENT WAY:&lt;br /&gt;
&lt;br /&gt;
Remove the actual Python and scons program from your computer, then download and install the old python2.6 **AND** scons1.1.0 version for windows if they are still available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::*OR THE MOST COMPLICATED WAY: Editing the scons file.&lt;br /&gt;
&lt;br /&gt;
Scons File with no Extension and normaly &amp;quot;located&amp;quot; at &amp;quot;&amp;#039;&amp;#039;&amp;#039;c:\msys\1.0\bin\&amp;#039;&amp;#039;&amp;#039;&amp;quot; or might also work or be found there at &amp;quot;&amp;#039;&amp;#039;&amp;#039;c:\mingw\bin\&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should use a &amp;#039;&amp;#039;proper&amp;#039;&amp;#039; Text Editor , do not even think to use the MS notepad because it does sometime files coruption, at least you may use MS WORDPAD at your own files risk !,Better to use the &amp;#039;&amp;#039;&amp;#039;Free Notepad++ [http://portableapps.com/apps/development/notepadpp_portable -get it now-]&amp;#039;&amp;#039;&amp;#039; who really edit well available as portable application also.&lt;br /&gt;
&lt;br /&gt;
:::*&amp;#039;&amp;#039;&amp;#039;Editing&amp;#039;&amp;#039;&amp;#039; the ORIGINAL scons file : &lt;br /&gt;
FOR THIS WORK YOU NEED TO USE &amp;#039;&amp;#039;notepad++&amp;#039;&amp;#039; (gnu) [http://portableapps.com/apps/development/notepadpp_portable get it now].&lt;br /&gt;
&lt;br /&gt;
::::*Replace the line:&lt;br /&gt;
 &lt;br /&gt;
 #! C:/Python26/python  ,&lt;br /&gt;
by your real python version (it is either 26 or 27 , newer version are not compatible) :&lt;br /&gt;
&lt;br /&gt;
 #! Drive:/Python_version_location/python &lt;br /&gt;
&lt;br /&gt;
::::*&amp;#039;&amp;#039;&amp;#039;AND&amp;#039;&amp;#039;&amp;#039; the &amp;#039;&amp;#039;&amp;#039;two next&amp;#039;&amp;#039;&amp;#039; occurrences of the expression or chart: &amp;#039;scons-1.1.0&amp;#039;&lt;br /&gt;
by your actual &amp;#039;scons-version.x.x.x.&amp;#039;&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
Original scons link:&lt;br /&gt;
 #! C:/Python26/python&lt;br /&gt;
 &lt;br /&gt;
 from os.path import join&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 sys.path = [ join(sys.prefix, &amp;#039;Lib&amp;#039;, &amp;#039;site-packages&amp;#039;, &amp;#039;scons-1.1.0&amp;#039;),&lt;br /&gt;
 join(sys.prefix, &amp;#039;Lib&amp;#039;, &amp;#039;site-packages&amp;#039;, &amp;#039;scons&amp;#039;), join(sys.prefix, &amp;#039;scons-1.1.0&amp;#039;),&lt;br /&gt;
 join(sys.prefix, &amp;#039;scons&amp;#039;)] + sys.path&lt;br /&gt;
 import SCons.Script&lt;br /&gt;
 SCons.Script.main()&lt;br /&gt;
&lt;br /&gt;
Modified Scons for using Python2.7 and scons-2.0.0.final.0 as:&lt;br /&gt;
&lt;br /&gt;
 #! C:/Python27/python&lt;br /&gt;
 &lt;br /&gt;
 from os.path import join&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 sys.path = [ join(sys.prefix, &amp;#039;Lib&amp;#039;, &amp;#039;site-packages&amp;#039;, &amp;#039;scons-2.0.0.final.0&amp;#039;),&lt;br /&gt;
 join(sys.prefix, &amp;#039;Lib&amp;#039;, &amp;#039;site-packages&amp;#039;, &amp;#039;scons&amp;#039;), join(sys.prefix, &amp;#039;scons-2.0.0.final.0&amp;#039;),&lt;br /&gt;
 join(sys.prefix, &amp;#039;scons&amp;#039;)] + sys.path&lt;br /&gt;
 import SCons.Script&lt;br /&gt;
 SCons.Script.main()&lt;br /&gt;
(3 entry has been changed, for this example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::*Try again the STEP2 according to what STEP1 you followed, If &amp;#039;scons&amp;#039; start compiling - a lot of information will be writting in the MSYS application windows, you &amp;#039;r done !&lt;br /&gt;
&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;IF NOT see those hint&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
you might need to check and found the file &amp;#039;SConscript.pyc&amp;#039; on the right path following this model&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;Drive:\Python_version_path\Lib\site-packages\scons-version.x.x.x\SCons\Script\SConscript.pyc&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
IF the problem persist uninstall scons first and python after, and  INSTALL PYTHON2.6 and SCONS-1.1.0 , that will fixed your trouble, no need to uninstall MSys neither MinGW.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ISSUE #3.1 scons line 7 ImportError: No module named SCons.Script&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Its more likely you got the right python26 but the scons is not the scons-1.1.0 version, if this version is not any longer available to download, try to EDIT the scons file with the your exact scons version.&lt;br /&gt;
you can know it by looking for the file SConscript.py in your computer and look closely the path the name you look for is right after the &amp;quot;....site-packages\&amp;#039;&amp;#039;&amp;#039;scons-1.3.0&amp;#039;&amp;#039;&amp;#039;\SCons\Script\SConscript.pyc&amp;quot; .&lt;br /&gt;
&lt;br /&gt;
YOU NEED to have installed as an Administrator &amp;quot;&amp;#039;&amp;#039;&amp;#039;scons-1.1.0&amp;#039;&amp;#039;&amp;#039;&amp;quot; this exact version IF not the Issue will occur The Error look like :&lt;br /&gt;
 &amp;quot;../bin/scons&amp;quot;, line 7, in &amp;lt;module&amp;gt;&lt;br /&gt;
 import SCons.Script&lt;br /&gt;
 ImportError: No module named SCons.Script&lt;br /&gt;
and then a painful debugging process will be engage :(&lt;br /&gt;
&lt;br /&gt;
More details on the Issue#3 who is related to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ISSUE #3.2  ImportError: No module named SCons.compat or/and _scons_builtins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Your Python Version installed in your Windows &amp;#039;&amp;#039;&amp;#039;is not compatible with scons&amp;#039;&amp;#039;&amp;#039; , ALL Python v3.x.x.x Are NOT COMPATIBLE with Scons v1.1.0 or v2.0.0.final.0 (as I am typing this help august-2010), please consider to un-install it and &amp;#039;&amp;#039;get the python26 and scons-1.1.0&amp;#039;&amp;#039; who is the best bet !&lt;br /&gt;
&lt;br /&gt;
Also the &amp;#039;&amp;#039;&amp;#039;Python SHOULD BE a V2&amp;#039;&amp;#039;&amp;#039;.x.x release not The V3.x.x.x who break compatibility with scons !&lt;br /&gt;
&lt;br /&gt;
Error code look like :&lt;br /&gt;
 File &amp;quot;c:\Python26\Lib\site-packages\scons-2.0.0.final.0\SCons\__init__.py&amp;quot;, line 43, &amp;lt;in module&amp;gt;&lt;br /&gt;
 import SCons.compat&lt;br /&gt;
 ImportError: No module named SCons.compat&lt;br /&gt;
 (same things with) _scons_builtins&lt;br /&gt;
The Python Website -official- clearly show that even the __init__.py file, line 42 !&lt;br /&gt;
&lt;br /&gt;
(related to Issue#3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ISSUE #4.&amp;#039;&amp;#039;&amp;#039;  No SConstruct file found&lt;br /&gt;
( users made mistake )&lt;br /&gt;
This is because your are not in the working source directoring to compile or The Source code has been altered or missing ! re-do step by step the wiki skipping the Download &amp;amp; settings stages. a&lt;br /&gt;
 cd glob2_source_building&lt;br /&gt;
 scons&lt;br /&gt;
might help thoough !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MOTD&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This Help is there and is provided AS IS , its works on my Windows Vista 32bit, and this Details Help should stay here long enough as long the file glob2_required_libs_mingw-scons.tar.bz2 contain the **OUTDATED** &amp;#039;scons unix-link&amp;#039; ! Thank you for the reading&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
&lt;br /&gt;
That concludes this Mingw compilation tutorial.&lt;br /&gt;
&lt;br /&gt;
When I will know How to use friendly the GUI Hgturtoise , I will Update this Tutorial, that mean it will have less command line ever, in fact command line will be &amp;#039;&amp;#039;&amp;#039;limited to the ONLY Source code compilation&amp;#039;&amp;#039;&amp;#039; , up to this comming day , take this Wiki has a reliable and Stable one , since I made &amp;#039;&amp;#039;&amp;#039;effort&amp;#039;&amp;#039;&amp;#039; to &amp;#039;&amp;#039;correct the main errors people got while folllowing it&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Surely, Section designing need yet to be perform, and it will be .&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
:*Compilation_story&lt;br /&gt;
Also to give you and idea on a 4 cores pentium cpu @ 2.33GHZ the compilation of the RC beta5 got 12 minutes and the binary (Glob2.exe file) &amp;quot;pound&amp;quot; 133MB !! well the other geek guys made one at 98MB so we are 1.32 time more weighty with this type of compilation. But clearly as today the comparison between Beta4 &amp;amp; Beta 5 is  amazing by the Glob2 binary file size ! from 4.8kb to 100Mb .&lt;br /&gt;
&lt;br /&gt;
:*Trouble&lt;br /&gt;
If you have &amp;#039;&amp;#039;&amp;#039;any NEW Trouble&amp;#039;&amp;#039;&amp;#039;, please write a bug report and one of the Windows maintainers should be able to help you. More information on bug reports can be found at the [[Bug Reports]] page.&lt;br /&gt;
Also think about the IRC , easy connexion via YOG.&lt;br /&gt;
&lt;br /&gt;
Happy compiling.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Team&amp;diff=6322</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Team&amp;diff=6322"/>
		<updated>2012-10-04T19:48:17Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: https://bitbucket.org/giszmo/glob2 again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is automatically updated from the &lt;br /&gt;
Mercurial AUTHORS file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Any change you make may dissapear.&lt;br /&gt;
==Game design, initial programming==&lt;br /&gt;
&lt;br /&gt;
:*Luc-Olivier de Charrière &lt;br /&gt;
:*Stéphane Magnenat &lt;br /&gt;
&lt;br /&gt;
==Maintainer==&lt;br /&gt;
&lt;br /&gt;
:*Bradley Arsenault  (As of August 2006)&lt;br /&gt;
:*Stéphane Magnenat  (Until August 2006)&lt;br /&gt;
&lt;br /&gt;
==Further programming==&lt;br /&gt;
&lt;br /&gt;
:*Bradley Arsenault  (Nicowar AI, Echo AI System, New Map Editor, Miscellaneous Bugfixes)&lt;br /&gt;
:*Martin Nyffenegger  (SGSL)&lt;br /&gt;
:*Andrew Sayers  (Miscellaneous bugfixes)&lt;br /&gt;
:*Leo Wandersleb  (Perlin-noise based map generation and clouds, ...)&lt;br /&gt;
:*Hein-Pieter van Braam  (IRC patch, debugging)&lt;br /&gt;
:*Martin Voelkle  (GUI, bugfixes and more)&lt;br /&gt;
:*Joe LeBlanc  (YOG &amp;amp; IRC fixes and improvements)&lt;br /&gt;
:*Emmanuel Eckard  (CreditScreen JJ)&lt;br /&gt;
:*Kevin Clement  (improved settings menu &amp;amp; bugfixes)&lt;br /&gt;
:*Ahmad Sayed  (bidi text support)&lt;br /&gt;
:*Kai Antweiler  (gradient algorithms, bugfixes, ...)&lt;br /&gt;
&lt;br /&gt;
==Graphics==&lt;br /&gt;
&lt;br /&gt;
:*Emmanuel Eckard  (drawing new buildings)&lt;br /&gt;
:*Cyrille Dunant  (coloring new buildings)&lt;br /&gt;
:*Andrew Sayers  (new grass and sand)&lt;br /&gt;
:*Matthew Marshall  (new units)&lt;br /&gt;
:*Stéphane Magnenat  (GUI, new water)&lt;br /&gt;
:*Joey Marshall  (additional drawing, coloring)&lt;br /&gt;
:*Luc-Olivier de Charrière  (swarm, old terrains, buildings and units)&lt;br /&gt;
:*Gabriel Walt  (GUI)&lt;br /&gt;
:*Leo Wandersleb (Clouds, Headsets)&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
:*[http://jacques.grivaz.net Jacques Paul Grivaz]&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
&lt;br /&gt;
:*Julia Schmitt  (Deutsch)&lt;br /&gt;
:*Michal Turek  (Czech)&lt;br /&gt;
:*Przemyslaw Kaminski  (Polish)&lt;br /&gt;
:*Łukasz Demianiuk  (Polish)&lt;br /&gt;
:*Martin Nyffenegger  (Deutsch)&lt;br /&gt;
:*Matthias Warkus  (Deutsch)&lt;br /&gt;
:*Martin Hinrichs  (Deutsch)&lt;br /&gt;
:*Manuel Soukup  (Deutsch)&lt;br /&gt;
:*Denis Lianda  (Russian)&lt;br /&gt;
:*Munteanu Olimpiu Andrei  (Romanian)&lt;br /&gt;
:*Vakvarju  (Hungarian)&lt;br /&gt;
:*samaritan  (Serbian)&lt;br /&gt;
:*Daniel Nilsson  (Swedish)&lt;br /&gt;
:*christooss  (Slovene)&lt;br /&gt;
:*Matic Ahacic  (Slovene)&lt;br /&gt;
:*Heine Laursen  (Danish)&lt;br /&gt;
:*Tobe Deprez  (Dutch)&lt;br /&gt;
:*Elías Díaz Molins  (Catalain - Català)&lt;br /&gt;
:*Stefan Kangas  (Swedish)&lt;br /&gt;
:*David Morán  (Spanish)&lt;br /&gt;
:*Fernando J. Rodríguez  (Portuguese, Spanish)&lt;br /&gt;
:*Igor TAmara  (Spanish)&lt;br /&gt;
:*Sébastien Le Ray  (French)&lt;br /&gt;
:*Muhammet Kara  (Turkish)&lt;br /&gt;
:*Adam Olausson  (Swedish)&lt;br /&gt;
:*White Raven  (Slovensky)&lt;br /&gt;
:*Anonymous  (Spanish)&lt;br /&gt;
:*Raoul Verveer  (Nederlands)&lt;br /&gt;
:*David Barnett  (English)&lt;br /&gt;
:*Federico Massi  (Italian)&lt;br /&gt;
:*Erik Blomqvist  (Swedish)&lt;br /&gt;
:*Osoitz Elkorobarrutia  (Basque)&lt;br /&gt;
:*IGA Tosiki  (Japanese)&lt;br /&gt;
&lt;br /&gt;
==Maps and campaign==&lt;br /&gt;
&lt;br /&gt;
:*Bradley Arsenault  (new tutorial)&lt;br /&gt;
:*Joey Marshall  (Joey campaign)&lt;br /&gt;
&lt;br /&gt;
==Game Packaging==&lt;br /&gt;
&lt;br /&gt;
:*Vincent Deffontaines  (Debian)&lt;br /&gt;
:*Sebastian Gerlach  (Win32 VS)&lt;br /&gt;
:*Alexandru Munteanu  (Win32 mingw32)&lt;br /&gt;
:*Dejan Lekic  (Win32, Fedora)&lt;br /&gt;
:*Jens Reimann  (Fedora)&lt;br /&gt;
:*Martin Nyffenegger  (Mac OS X)&lt;br /&gt;
:*Jean-David Maillefer  (Mac OS X)&lt;br /&gt;
:*Kieran  (Win32 runtime/executable, Mandriva RPM/Source RPM)&lt;br /&gt;
:*Christian  (Win32 executable images)&lt;br /&gt;
:*Thierry Thomas  (FreeBSD)&lt;br /&gt;
:*&amp;quot;Dave Vasilevsky&amp;quot;  (Mac OS X)&lt;br /&gt;
:*Ruben Zilibowitz  (Mac OS X)&lt;br /&gt;
&lt;br /&gt;
==Internet, documentation and community==&lt;br /&gt;
&lt;br /&gt;
:*Luc-Olivier de Charrière  (yog metaserver)&lt;br /&gt;
:*Kyle Lutze  (hosting, phpbb/mediawiki integration)&lt;br /&gt;
:*Drazak  (hosting)&lt;br /&gt;
:*Munteanu Olimpiu Andrei  (wiki)&lt;br /&gt;
:*Stéphane Magnenat  (server, wiki, savannah, forum)&lt;br /&gt;
:*Gabriel Walt  (hosting, old CMS, wiki, forum)&lt;br /&gt;
:*Munteanu Alexandru  (phpbb/mediawiki integration)&lt;br /&gt;
:*Martin Voelkle  (wiki)&lt;br /&gt;
:*Leo Wandersleb  (wiki)&lt;br /&gt;
:*Louis Gagnon  (wiki)&lt;br /&gt;
:*Loki Azgorodin  (#glob2)&lt;br /&gt;
:*Dejan Lekic  (#globulation2)&lt;br /&gt;
:*Ghislain Leveque &lt;br /&gt;
:*Kieran  (wiki, savannah project site)&lt;br /&gt;
&lt;br /&gt;
==Usability review==&lt;br /&gt;
&lt;br /&gt;
:*Ellen Reitmayr&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Compiling&amp;diff=6321</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Compiling&amp;diff=6321"/>
		<updated>2012-10-04T19:40:34Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: https://bitbucket.org/giszmo/glob2 again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{Message|Compiling on Windows|The instructions below will not work for Windows. To compile on that OS, please see the &amp;lt;u&amp;gt;[[Mingw compilation]]&amp;lt;/u&amp;gt; guide, which explains how to compile globulation2 on windows using mingw.}}&lt;br /&gt;
&lt;br /&gt;
==Compilation requirements==&lt;br /&gt;
{{Message|Compiling on Mac OSX|There is an easier way to get all the dependancies than to compile them all. See the [[MAC OS X Development]] page for more information.}}&lt;br /&gt;
For source tarbal, Mercurial source, and package installations, you&amp;#039;ll also need to install these packages:&lt;br /&gt;
* [http://www.scons.org/ scons] build system&lt;br /&gt;
* [http://www.libsdl.org/index.php SDL 1.2] download SDL-devel and SDL&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_net/ SDL_net 1.2] download SDL_net-devel&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_image/ SDL_image 1.2] download SDL_image-devel&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_ttf/ SDL_ttf 2.0] download SDL_ttf-devel&lt;br /&gt;
* [http://www.speex.org speex] download current stable release&lt;br /&gt;
* [http://www.xiph.org/ libogg and libvorbis] can be found in their download-section. libspeex, too.&lt;br /&gt;
* [http://zlib.net/ zlib]&lt;br /&gt;
* [http://boost.org/ Boost C++ Libraries] download boost, boost-devel, including boost_thread and boost_date_time.&lt;br /&gt;
* (optional) [http://fribidi.org/ Fribidi] download GNU FriBidi&lt;br /&gt;
&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
The following terminal command will get you all the dependencies:&lt;br /&gt;
 sudo apt-get install scons libsdl1.2-dev libsdl-net1.2-dev libsdl-image1.2-dev \&lt;br /&gt;
 libsdl-ttf2.0-dev zlib-bin libspeex-dev libogg-dev libvorbis-dev libboost-dev \&lt;br /&gt;
 libboost-thread1.40-dev libboost-date-time1.40-dev&lt;br /&gt;
* Adding &amp;#039;mercurial&amp;#039; to that line will get you all you need to get involved.&lt;br /&gt;
&lt;br /&gt;
== Compile from Sources ==&lt;br /&gt;
=== Source Distribution ===&lt;br /&gt;
* Get the [[Download and Install|source distribution archive]] from the download section.&lt;br /&gt;
* Extract the archive using a compression/extraction utility such as tar.&lt;br /&gt;
* Go in the extracted archive. If you have a Unix system (GNU/Linux, Solaris, Mac OS X):&lt;br /&gt;
** Run the &amp;#039;scons&amp;#039; script to compile the game (it will check dependencies, install any you have missing)&lt;br /&gt;
*** If you want to install the game in a special place, instead of &amp;#039;scons&amp;#039;, type: &lt;br /&gt;
 scons BINDIR=&amp;quot;/path/to/install/bin&amp;quot; INSTALLDIR=&amp;quot;/path/to/install/share&amp;quot;&lt;br /&gt;
** Install with a simple &amp;#039;scons install&amp;#039; command (will install to the location you might have entered when compiling (BINDIR and INSTALLDIR)).&lt;br /&gt;
** Run the game by typing &amp;#039;glob2&amp;#039;. If it doesn&amp;#039;t work, type &amp;#039;/path/to/install/bin/glob2&amp;#039; instead.&lt;br /&gt;
** Note: in some GNU/+Linux distributions (eg: Archlinux), scons complains about not finding -lboost_thread (with boost already installed). A solution is to modify the SConstruct file to look for boost_thread-mt instead of boost_thread, and the modify the LIBS variable with boost_thread-mt, to link against this library. If you have root access you can create a symlink libboost_thread.so instead.&lt;br /&gt;
&lt;br /&gt;
=== Sources from [[Mercurial]] ===&lt;br /&gt;
{{Message|Warning|The source from Mercurial is occasionally unstable and will break. It is not meant for playing games but only for development and testing.}}&lt;br /&gt;
==== The quick way ====&lt;br /&gt;
Use this if you want to get exactly one copy of glob2 repository to compile and run it. This is also the recommended way if you are sure you will not want to push only parts of your changes.&lt;br /&gt;
* Initial download&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
* Subsequent updates&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg update&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;pull&amp;#039;&amp;#039;&amp;#039; will get all changes from the original repository into your repository&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;update&amp;#039;&amp;#039;&amp;#039; will get your local files to the latest revision. Use &amp;#039;&amp;#039;&amp;#039;-C&amp;#039;&amp;#039;&amp;#039; to loose all local changes.&lt;br /&gt;
==== The more complicated way ====&lt;br /&gt;
Use this if you want to commit several changes that you are not sure of being finished some day while at the same time you want to have access to a clean checkout, too.&lt;br /&gt;
* Initial download&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
* clone to a working directory&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone glob2 glob2-work&lt;br /&gt;
* Subsequent updates&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg pull&lt;br /&gt;
 cd ../glob2-work&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg update&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;pull&amp;#039;&amp;#039;&amp;#039; will get all changes from the original repository into your target repository&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;update&amp;#039;&amp;#039;&amp;#039; will get your files to the latest revision. Use &amp;#039;&amp;#039;&amp;#039;-C&amp;#039;&amp;#039;&amp;#039; to loose all local changes.&lt;br /&gt;
&lt;br /&gt;
* Read the README.hg and README files.&lt;br /&gt;
* Continue by following the [[#Source_Distribution|&amp;#039;&amp;#039;source distribution&amp;#039;&amp;#039;]] instructions from the 3rd step onwards.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Source_Understanding_Guide&amp;diff=6320</id>
		<title>Source Understanding Guide</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Source_Understanding_Guide&amp;diff=6320"/>
		<updated>2012-10-04T19:38:48Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: https://bitbucket.org/giszmo/glob2 again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Message|outdated content|most of the following referenced documents are outdated}}&lt;br /&gt;
&lt;br /&gt;
You can start understanding the code by:&lt;br /&gt;
* To have an idea of the main loop :  [https://bitbucket.org/giszmo/glob2/src/8d2f3a39946a/doc/main%20engine%20loop.txt doc/main engine loop.txt]&lt;br /&gt;
* To have an overview of the glob2&amp;#039;s &amp;#039;&amp;#039;&amp;#039;class structure&amp;#039;&amp;#039;&amp;#039;, you can begin by reading the doc/sourceCodeUnderstanding.txt file in glob2&amp;#039;s [[Mercurial]]&lt;br /&gt;
* To have an idea of &amp;#039;&amp;#039;&amp;#039;unit allocation&amp;#039;&amp;#039;&amp;#039; doc/unitAllocationUnderstanding.txt&lt;br /&gt;
* To have a list of all &amp;#039;&amp;#039;&amp;#039;capitals quick comments&amp;#039;&amp;#039;&amp;#039; , read doc/sourceCodeTagging.txt&lt;br /&gt;
* To have an overview of the  `BuildingType system, read doc/BuildingType.txt&lt;br /&gt;
* For a listing of all the BuildingType INT&amp;#039;s read [[BuildingSourceInts]]&lt;br /&gt;
* To have an insight on how the actual YOG system works, and to understand the complexity of FW/NAT passing, read doc/YOGUnderstanding.txt&lt;br /&gt;
* To have a &amp;#039;&amp;#039;&amp;#039;quick summary of the unit&amp;#039;&amp;#039;&amp;#039;, read doc/unit.txt&lt;br /&gt;
* To understand how &amp;#039;&amp;#039;&amp;#039;building with connecting capabilities (like walls) are ordered&amp;#039;&amp;#039;&amp;#039;, read doc/wall.txt&lt;br /&gt;
* The [http://lists.nongnu.org/archive/html/glob2-devel/2005-05/msg00042.html scripting language] thread on the mailing list threw up a few interesting points about SGSL.  Noteably, [http://lists.nongnu.org/archive/html/glob2-devel/2005-05/msg00063.html these] [http://lists.nongnu.org/archive/html/glob2-devel/2005-05/msg00085.html two] posts by nct.&lt;br /&gt;
* [http://lists.gnu.org/archive/html/glob2-devel/2005-07/msg00014.html This thread] on the mailing list has some discussion of map-related functions.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Releasing_a_new_version&amp;diff=6319</id>
		<title>Releasing a new version</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Releasing_a_new_version&amp;diff=6319"/>
		<updated>2012-10-04T19:34:59Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: https://bitbucket.org/giszmo/glob2 again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Message|Some permissions needed|The following guide assumes that you have upload ability to savannah (you will need to be a group member), and write access to Mercurial (contact Nct if you need a username and password access). If you don&amp;#039;t have these, then you probably arn&amp;#039;t allowed to make releases :P}}&lt;br /&gt;
&lt;br /&gt;
== Planning a release ==&lt;br /&gt;
&lt;br /&gt;
Globulation2 is developed in a very open way concerning release cycles and versions maintained. Since using Mercurial it became easier to keep older versions updated as committing bugfixes there and merging them up the ladder to default is very easy.&lt;br /&gt;
&lt;br /&gt;
* First thing to do when planning a release is to propose it. Email the development mailing list and say you think a release should be made.&lt;br /&gt;
* If no-one complains within days go into the test phase&lt;br /&gt;
&lt;br /&gt;
== Test phase ==&lt;br /&gt;
&lt;br /&gt;
* branch off a release candidate which &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; be used for testing and bugfixing &amp;#039;&amp;#039;&amp;#039;only&amp;#039;&amp;#039;&amp;#039; - and finally will be released:&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg update -r default&lt;br /&gt;
 hg branch beta&amp;lt;nowiki&amp;gt;[number]&amp;lt;/nowiki&amp;gt;-rc&lt;br /&gt;
* Increment version number in SConstruct (find and edit env[&amp;quot;VERSION&amp;quot;])&lt;br /&gt;
* Run these 3:&lt;br /&gt;
 scons&lt;br /&gt;
 scons install&lt;br /&gt;
 scons dist&lt;br /&gt;
* make sure all three work (compile, install, and package). If that works, then commit and push your changes&lt;br /&gt;
* Adjust the [[Changes|Changelog]]&lt;br /&gt;
* Now announce (on the mailing list) that you branched off the release candidate and that everyone who wants to help testing or fixing it can do the following:&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg update beta&amp;lt;nowiki&amp;gt;[number]&amp;lt;/nowiki&amp;gt;-rc&lt;br /&gt;
* Now wait for the go of all relevant developers and make sure, all cases are tested in depth including&lt;br /&gt;
** custom maps&lt;br /&gt;
*** with all AIs and&lt;br /&gt;
*** all maps played&lt;br /&gt;
** map editor and&lt;br /&gt;
*** playability of those maps&lt;br /&gt;
** tutorial and&lt;br /&gt;
** campaign&lt;br /&gt;
** LAN and YOG both with &lt;br /&gt;
*** more than two players and with &lt;br /&gt;
*** all major systems (Linux, Mac and Windows preferably &lt;br /&gt;
*** both 32bit and 64bit) involved.&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
;Note 1: Bugfixes should go into the oldest maintained branch having that bug and then be merged up into later branches like this:&lt;br /&gt;
 hg update beta1-rc #beta1-rc is defninitely not supported anymore. Decide for yourself where you want to have the bug fixed.&lt;br /&gt;
 &amp;lt;fix what is wrong&amp;gt;&lt;br /&gt;
 hg commit -m&amp;quot;bugfix ...&amp;quot;&lt;br /&gt;
 hg update beta2-rc&lt;br /&gt;
 hg merge beta1-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge beta&amp;lt;nowiki&amp;gt;[number]&amp;lt;/nowiki&amp;gt;-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Note 2: &amp;#039;&amp;#039;hg update tip&amp;#039;&amp;#039; is almost always a bad idea after having pulled. tip might be some random branch. Use the branch name when using update. If using &lt;br /&gt;
;Note 3: Normal glob2 development can take place in the main branch (i.e. default) as usual.&lt;br /&gt;
&lt;br /&gt;
== Release phase ==&lt;br /&gt;
=== Testing ===&lt;br /&gt;
* Pull a new copy of the release branch:&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
 hg clone -r release-rc glob2 glob2_release&lt;br /&gt;
 cd glob2_release&lt;br /&gt;
 hg update tip&lt;br /&gt;
* Clear:&lt;br /&gt;
 scons -c&lt;br /&gt;
* Compile somewhat optimised:&lt;br /&gt;
 scons CXXFLAGS=&amp;quot;-O2 -g&amp;quot;&lt;br /&gt;
* if any problem occurs, then the release candidate is not ready for release! (the final release could be compiled without the -g and with -O3 but right now -g -O2 is a reasonable trade-off between speed and debugability)&lt;br /&gt;
* Install:&lt;br /&gt;
 scons install&lt;br /&gt;
* if any problem occurs, then the release candidate is *still* not ready for release!&lt;br /&gt;
* Test the resulting installed:&lt;br /&gt;
 gdb glob2&lt;br /&gt;
* if any problem occurs, then the release candidate is nearly ready for release, but too buggy to go out right now, wait another day or two! Never ever feel pressed to get out a release within hours or days. If You have bugs making this release worse than the last one for some players, you may make those players leave glob2 and you cause a lot of trouble getting things straight later. The transition between 2 versions is always a problem and the better the new version the faster this transition will be.&lt;br /&gt;
&lt;br /&gt;
=== Releasing ===&lt;br /&gt;
* If the testing above was successfull, run &amp;#039;scons dist&amp;#039; to create a tar.gz package.&lt;br /&gt;
* [[Uploading_to_Savannah|Upload it to Savannah]] in the folder relating to their version (for example, alpha22 = 0.8.22/).&lt;br /&gt;
* Send a mail to the development mailing list, update the wiki, update savannah news, and tell rest of the world about the &amp;quot;Good news&amp;quot; ;-)&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mingw_cross_compilation&amp;diff=6318</id>
		<title>Mingw cross compilation</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mingw_cross_compilation&amp;diff=6318"/>
		<updated>2012-10-04T19:31:28Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: https://bitbucket.org/giszmo/glob2 again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build and test glob2 for Windows on a Debian/Ubuntu GNU/Linux operating system.&lt;br /&gt;
To see how to compile it natively on Windows, please see [[Mingw compilation]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compile globulation2 for Windows on Debian using mingw===&lt;br /&gt;
&lt;br /&gt;
#Install a mingw compiler:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;sudo apt-get install mingw32-binutils mingw32 mingw32-runtime&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Install NSIS (required only if you want to build NSIS installer):&lt;br /&gt;
#:&amp;lt;pre&amp;gt;sudo apt-get install nsis&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Create the following directory:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;mkdir build&amp;lt;/pre&amp;gt; &lt;br /&gt;
#:&amp;lt;pre&amp;gt;cd build&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Download glob2_required_libs_mingw-scons.tar.bz2:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;wget http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz2&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Untar the libraries:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;tar -xjf glob2_required_libs_mingw-scons.tar.bz2&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Download glob2 sources from mercurial (check [[Compiling#Sources_from_Mercurial]] for details):&lt;br /&gt;
#:&amp;lt;pre&amp;gt;hg clone https://bitbucket.org/giszmo/glob2&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:&amp;lt;pre&amp;gt;cd glob2-new&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Compile:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;scons -j5 mingwcross=yes&amp;lt;/pre&amp;gt; &lt;br /&gt;
#To create NSIS installer package run after previous step:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;scons -j5 mingwcross=yes dist&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test globulation2 for Windows on Debian===&lt;br /&gt;
&lt;br /&gt;
#Install wine:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;sudo apt-get install wine&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Copy files necessary to run:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;cp src/glob2.exe .&amp;lt;/pre&amp;gt; &lt;br /&gt;
#:&amp;lt;pre&amp;gt;cp ../local/bin/* ../local/lib/* .&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Run glob2:&lt;br /&gt;
#:&amp;lt;pre&amp;gt;wine glob2.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6317</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6317"/>
		<updated>2012-10-04T19:28:33Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: hg.globulation2.org was broken. https://bitbucket.org/giszmo/glob2 from now on is the &amp;quot;main&amp;quot; repository.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
== Browsing the Project Repository ==&lt;br /&gt;
At https://bitbucket.org/giszmo/glob2 you can browse through the repository.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
;hg: To really access a mercurial repository you need mercurial. You can get it from your distribution if you are running Linux or from [http://www.selenic.com/mercurial the mercurial homepage]. An in depth manual of hg you can find [http://hgbook.red-bean.com/read/ here].&lt;br /&gt;
;tortoise-hg: To generally access hg repositories at a file system level you might want to use a GUI. [http://tortoisehg.bitbucket.org/ Tortoise-HG] is just great for that.&lt;br /&gt;
;HGE: The mercurial plugin for Eclipse is another great way to navigate our repository. You need Eclipse (the CDT-version) and can then get HGE by going to help -&amp;gt; install new software... -&amp;gt; Add... -&amp;gt; Location = http://cbes.javaforge.com/update -&amp;gt; checking mercurial eclipse ...&lt;br /&gt;
&lt;br /&gt;
== Getting a Copy of the Mercurial Repository ==&lt;br /&gt;
No matter if you want to contribute with write access or just want to get a read only copy of glob2, you should cd to a directory where you have write permissions and run hg clone:&lt;br /&gt;
 cd ~/my_hg_repositories&lt;br /&gt;
 hg clone https://bitbucket.org/giszmo/glob2&lt;br /&gt;
 cd glob2&lt;br /&gt;
The same can be achieved using HGE or tortoise-HG.&lt;br /&gt;
&lt;br /&gt;
== Which revision to use ==&lt;br /&gt;
Having cloned the repository you now have all the history of glob2 at hands. According to your intents you now might want to choose different revisions to jump to and start working on them. Pick from the subsections what most fits your intents:&lt;br /&gt;
&lt;br /&gt;
=== The player ===&lt;br /&gt;
If you want to play against others you need the same &amp;#039;&amp;#039;&amp;#039;major&amp;#039;&amp;#039;&amp;#039; version of glob2 as they have. If they have betaX.4 you should pick some betaX version. You get the latest version in the betaX release candidate branch using the tip of betaX-rc. To get there issue&lt;br /&gt;
 hg update betaX-rc&lt;br /&gt;
&lt;br /&gt;
In rare occasions this version might not work. To get a version that was tagged for being released, check the output of&lt;br /&gt;
 hg tags&lt;br /&gt;
for lines matching betaX.y and update to the highest y:&lt;br /&gt;
 hg update betaX.y&lt;br /&gt;
&lt;br /&gt;
=== The tester ===&lt;br /&gt;
If you want to test the latest not yet released version of glob2 you should update to the tip of the latest release candidate (-rc) branch:&lt;br /&gt;
 hg update betaY-rc&lt;br /&gt;
or if a feature freeze was not yet decided on, you can also test the latest version of the default branch:&lt;br /&gt;
 hg update default&lt;br /&gt;
&lt;br /&gt;
=== The bug fixer ===&lt;br /&gt;
You might have started as a tester but now want to actually touch code. Now it is getting slightly more complicated. Having found a bug and a solution to it means applying the fix to the right revision. As bugs often are not only bugs of not yet released features but also express in years old versions you should fix the oldest relevant version. If on the download page beta4 is still promoted, you should fix this and merge your changes up to beta5 and finally to default. In hg this is pretty easy to do:&lt;br /&gt;
 hg update beta4-rc&lt;br /&gt;
 do your changes to the code ....&lt;br /&gt;
 hg commit -m&amp;quot;fixed bug xy ...&amp;quot;&lt;br /&gt;
 hg update beta5-rc&lt;br /&gt;
 hg merge beta4-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge beta5-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
Depending on how important the bug-fix was you might now want to directly tag the new versions:&lt;br /&gt;
 hg tag beta4-rc beta4.X&lt;br /&gt;
 hg tag beta5-rc beta5.Y&lt;br /&gt;
&lt;br /&gt;
=== The mini-features guy ===&lt;br /&gt;
If you have a new small feature to contribute, you do this in &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 do your changes to the code ...&lt;br /&gt;
 hg commit -m&amp;quot;implemented mini-feature xy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== The big-features guy ===&lt;br /&gt;
If you have a new big feature to contribute, you do this in a separate branch starting at &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg branch fooFeature&lt;br /&gt;
work on your feature with a series of&lt;br /&gt;
 change code&lt;br /&gt;
 hg commit -m&amp;quot;changed this and that&amp;quot;&lt;br /&gt;
but while you work on your feature don&amp;#039;t miss to get in sync with the changing &amp;quot;default&amp;quot; by doing as follows:&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg merge -r default&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
once your feature is ready to be used in the game just like other features, merge it into default:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge fooFeature&lt;br /&gt;
 hg commit -m&amp;quot;merged&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
All the above was read only from the point of view of the main glob2-repository. If you have changes worth sharing you must make them public. Easiest is to pick one of the free mercurial hosters. If you go for [https://bitbucket.org bit bucket] you can fork [[User:Giszmo|Giszmo]]&amp;#039;s [https://bitbucket.org/giszmo/glob2 repository].&lt;br /&gt;
With your own bitbucket setup you can check for what would push&lt;br /&gt;
 hg outgoing https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
and push your changes there:&lt;br /&gt;
 hg push https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
&lt;br /&gt;
Now after you checked all is fine you can ask on the glob2 mailing list for someone with write access to the main repo to pull your changes. Asking on the irc is an option, too but for bigger changes you review might take some time and then it is safer to do it via the mailing list.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t forget to change the authors file if it&amp;#039;s your first contribution ;)&lt;br /&gt;
&lt;br /&gt;
If you are a regular contributor you may get write permissions for the central repo from [[User:Nct|Nct]]. You can mail him your username and password at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our &amp;quot;trunk&amp;quot; or default branch is called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
You can try everything with mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg tags&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpful to get information. Try &amp;quot;hg help&amp;quot; for details.&lt;br /&gt;
&lt;br /&gt;
 hg serve //and browsing to localhost:8000&lt;br /&gt;
is very good for a graphical overview of the repository structure. If you prefer using a GUI tool, go for  [http://tortoisehg.bitbucket.org/ Tortoise-HG].&lt;br /&gt;
And you definitely have to set up a merge tool for those case when you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=User_talk:Zwarn&amp;diff=6315</id>
		<title>User talk:Zwarn</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=User_talk:Zwarn&amp;diff=6315"/>
		<updated>2012-07-02T05:19:58Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: Created page with &amp;quot;Hi, I have no clue why &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039; created the German version of your user page, but if anything, this would belong to your namespace. --~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, I have no clue why &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039; created the German version of your user page, but if anything, this would belong to [[User:Zwarn/de|your namespace]]. --[[User:Giszmo|Giszmo]] ([[User talk:Giszmo|talk]]) 05:19, 2 July 2012 (UTC)&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=User:Zwarn/de&amp;diff=6314</id>
		<title>User:Zwarn/de</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=User:Zwarn/de&amp;diff=6314"/>
		<updated>2012-07-02T05:15:40Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: user page translation in user&amp;#039;s namespace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ich mag das Spiel und würde gerne helfen es (und diese Seite) zu übersetzen.&lt;br /&gt;
&lt;br /&gt;
Und zwar solange, bis nirgendwo mehr der Verweis &amp;quot;(englisch)&amp;quot; stehen muss!&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=CodingConventions&amp;diff=6313</id>
		<title>CodingConventions</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=CodingConventions&amp;diff=6313"/>
		<updated>2012-07-02T04:48:31Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Coding Conventions==&lt;br /&gt;
&lt;br /&gt;
This page lists the coding conventions actually in use within Glob2. The intended purpose is to have coherent-looking code through the project. Sorry if this different to your usual conventions.&lt;br /&gt;
&lt;br /&gt;
=== KISS: Keep it Simple Stupid ===&lt;br /&gt;
All new code written in Glob2 should be obvious. Don&amp;#039;t use clever tricks. Everything should be kept as simple as possible, but no simpler. This is a fundamental principle, and all new code should be kept with KISS in mind.&lt;br /&gt;
&lt;br /&gt;
=== Maintainability Is God ===&lt;br /&gt;
If code is readable, if its maintainable, then it is good. Sometimes people get haggled about using pure OO or get/set. Make sure that your code is maintainable. If you change one portion, always try to minimize the amount of other code segments that need updated. This encompasses many techniques. Encapsulation is one of the best.&lt;br /&gt;
&lt;br /&gt;
===Indentation===&lt;br /&gt;
&lt;br /&gt;
Code should be indented by tabs. A tab should be equivalent to 4 spaces. Please note that in the code below, non-breaking spaces are used because tabs don&amp;#039;t display correctly in web pages.&lt;br /&gt;
&lt;br /&gt;
===Class and struct naming===&lt;br /&gt;
&lt;br /&gt;
Classes should begin with capitals, new words should be denoted by a capital, and words should not be separated by underscores or dashes.  In other words,&lt;br /&gt;
&lt;br /&gt;
 class TotoIsMyFriend { }; &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;// correct&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 class toto_is_my_friend{}; &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;// wrong&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Class members, variables, and C function follow the same convention but without the initial capital:&lt;br /&gt;
&lt;br /&gt;
 void totoIsMyFriend(void); &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;// correct&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 void Toto-is-my-friend(void); &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;// wrong&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bracket placement===&lt;br /&gt;
&lt;br /&gt;
Brackets {} should be placed alone on a line, except if there is no or only one function call within them.&lt;br /&gt;
&lt;br /&gt;
 class Toto&lt;br /&gt;
 {&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;int i;&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;void totoIsMyFriend(void) { return i; };&lt;br /&gt;
 }; &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;// correct&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 class Toto {&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;int i;&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;void Toto-is-my-friend(void) {&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;return i;&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;};&lt;br /&gt;
 }; &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;// wrong&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Emacs===&lt;br /&gt;
&lt;br /&gt;
If you use Emacs as your editor, you can make it apply these rules to Globulation 2 files by putting the following in the .emacs file in your home directory:&lt;br /&gt;
&lt;br /&gt;
 (defconst glob2-c-style&lt;br /&gt;
  &amp;#039;((c-basic-offset	. 4)&lt;br /&gt;
    (c-offsets-alist            . ((substatement-open . 0)&lt;br /&gt;
 				   (inline-open	. 0)&lt;br /&gt;
 				   ))&lt;br /&gt;
    )&lt;br /&gt;
  &amp;quot;Globulation 2 programming style&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 ;; Customizations for all modes in CC Mode.&lt;br /&gt;
 (defun glob2-c-mode-common-hook ()&lt;br /&gt;
  (c-add-style &amp;quot;glob2&amp;quot; glob2-c-style)&lt;br /&gt;
  )&lt;br /&gt;
 &lt;br /&gt;
 (add-hook &amp;#039;c-mode-common-hook &amp;#039;glob2-c-mode-common-hook)&lt;br /&gt;
&lt;br /&gt;
And adding the following to the top line of each of your source files:&lt;br /&gt;
&lt;br /&gt;
 /* emacs settings information: -*- mode: c++; tab-width: 4; c-file-style: &amp;quot;glob2&amp;quot;; -*- */&lt;br /&gt;
&lt;br /&gt;
==Proposed Conventions==&lt;br /&gt;
&lt;br /&gt;
This section discusses proposals for programming style rules that have not yet been widely accepted&lt;br /&gt;
&lt;br /&gt;
===Counting===&lt;br /&gt;
&lt;br /&gt;
When referring to the total number of items of a particular type that there are, the current rule is to use &amp;lt;code&amp;gt;numberOfFoo&amp;lt;/code&amp;gt;.  I find this confusing, as I expect &amp;lt;code&amp;gt;numberOfFoo&amp;lt;/code&amp;gt; to refer to the index number of a particular instance of foo.  Some alternatives include:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;fooCount&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;fooTotal&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;fooSize&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fooCount&amp;lt;/code&amp;gt; seems the easiest to read of the three, &amp;lt;code&amp;gt;fooTotal&amp;lt;/code&amp;gt; also makes sense, and &amp;lt;code&amp;gt;fooSize&amp;lt;/code&amp;gt;, while confusing, mirrors the &amp;lt;code&amp;gt;foo.size()&amp;lt;/code&amp;gt; convention used in STL containers.&lt;br /&gt;
&lt;br /&gt;
By extension, where there is an ordered list of things (most likely an enum), we should always have the following definitions:&lt;br /&gt;
&lt;br /&gt;
 enum foo { foo1, foo2, ... fooN };&lt;br /&gt;
 static const int fooMin = foo1;&lt;br /&gt;
 static const int fooMax = fooN;&lt;br /&gt;
 static const int fooCount = fooMax - fooMin + 1;&lt;br /&gt;
&lt;br /&gt;
===Getting and setting===&lt;br /&gt;
&lt;br /&gt;
At present, it&amp;#039;s standard to get values with &amp;lt;code&amp;gt;getFoo()&amp;lt;/code&amp;gt; and set them with &amp;lt;code&amp;gt;setFoo(value)&amp;lt;/code&amp;gt;.  While this is clear, it doesn&amp;#039;t fit with the C++ convention of using &amp;lt;code&amp;gt;foo()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foo(value)&amp;lt;/code&amp;gt;.  It also doesn&amp;#039;t distinguish between the cases where we are supposed to think of &amp;lt;code&amp;gt;getFoo()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;setFoo()&amp;lt;/code&amp;gt; as simple wrappers around private variables vs. where we should expect more significant processing to be done.  I propose that we use &amp;lt;code&amp;gt;getFoo()&amp;lt;/code&amp;gt; only where the user should expect significant processing to be done.  For example, &amp;lt;code&amp;gt;GAGCore::getFilename()&amp;lt;/code&amp;gt; searches an entire list of directories for a file, whereas &amp;lt;code&amp;gt;debugLevel()&amp;lt;/code&amp;gt; just sets an internal variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== documentation ===&lt;br /&gt;
When doing documentation, a comment section for a function should look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Any comments go here&lt;br /&gt;
 * @param string $foo &lt;br /&gt;
 * @param int $bar&lt;br /&gt;
 * @return boolean&lt;br /&gt;
 * @access private&lt;br /&gt;
 * @todo document&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
keep in mind not all of these items are always needed. if it doesn&amp;#039;t take any parameters, that section is not needed.&amp;lt;br /&amp;gt;&lt;br /&gt;
so if it doesn&amp;#039;t take any parameters, you can leave @param out&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Main_Page&amp;diff=6312</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Main_Page&amp;diff=6312"/>
		<updated>2012-07-02T04:40:26Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: removed all &amp;quot;news&amp;quot; that were more than 12 years old&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translations|Watch page in|Article=Main_Page}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; margin: 10px 0px 10px 20px;&amp;quot;&amp;gt;[[Image:Alpha23-attack.jpg|200px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
Globulation 2 is an innovative Real-Time Strategy (RTS) game which reduces micro-management by automatically assigning tasks to units. Take a look at the [[Screenshots|screenshots]] or just [[Download and Install|download]] and try it right now. Globulation 2 is Free Software, licensed and distributed under the [http://www.gnu.org/copyleft/gpl.html GNU General Public License].&lt;br /&gt;
&lt;br /&gt;
Globulation 2 brings a new type of gameplay to RTS games. The player chooses the number of units to assign to various tasks, and the units do their best to satisfy the requests. This allows players to manage more units and focus on strategy rather than on micro-management. Globulation 2 also [[AI|features AI]], allowing single-player games or any possible combination of human-computer teams. The game also includes a [[Map_editor_guide|scripting language]] for versatile gameplay or tutorials and an integrated [[Map_editor_guide|map editor]]. You can play Globulation 2 in single player mode, through your local network, or over the Internet with [[YOG|Ysagoon Online Gaming]] (or &amp;#039;&amp;#039;YOG&amp;#039;&amp;#039; for short). -- [[Team|Globulation 2 team]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:left;&amp;quot;&amp;gt;Note : the wiki and forums have the same usernames and passwords.&amp;lt;/div&amp;gt;&lt;br /&gt;
{|valign=&amp;quot;top&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;width:49%;&amp;quot;|&lt;br /&gt;
== You Can Help! ==&lt;br /&gt;
Globulation 2 isn&amp;#039;t just a bunch of code - it needs artwork, playable maps, campaigns and tutorials, sound effects and documentation to make a fun game. If you want to see your name in Globulation 2&amp;#039;s credits, jump right in!&lt;br /&gt;
&lt;br /&gt;
;[[Players]]: The more Players, the more fun in Globulation 2 online games. &lt;br /&gt;
;Programmer: There&amp;#039;s a wide variety of topics that need contribution.  You name it - we need it.&amp;lt;br/&amp;gt;If you want to program right away, you can do so by forking this code for example at [http://bitbucket.org/giszmo/glob2 BitBucket] and ask for a merge once you think it is worth merging ;)&lt;br /&gt;
;Map and Campaign Designer: To give the game a good selection of maps, and a new, longer, in depth campaign&lt;br /&gt;
;2D and 3D Artist: To add campaign specific units, to do an opening cinematic.&lt;br /&gt;
;[[SoundFX|Sound Artist]]: To do in game sound effects for events like attacking, moving, ...&lt;br /&gt;
;Tester: The more testers; the better gameplay and the less bugs.&lt;br /&gt;
;Documenter: We always welcome people who can write documentation on playing the game, to go along with the tutorial&lt;br /&gt;
;Translators: We are also always in need of people who can translate the in game texts to new languages or maintain existing translations.&lt;br /&gt;
&lt;br /&gt;
Should you be interested, the first steps would be to have a look on the [http://www.globulation2.org/forums forums], join the [https://savannah.nongnu.org/mail/?group=glob2 development Mailing list], drop into the developers&amp;#039; [[IRC]] channel (#glob2-dev and #glob2 on irc.globulation2.org) and look around this site.&lt;br /&gt;
&lt;br /&gt;
You also can help by simply &amp;#039;&amp;#039;&amp;#039;telling your friends about Globulation 2&amp;#039;&amp;#039;&amp;#039; or inform us of any game reporting site that does not list Globulation 2.&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;width:2%;&amp;quot;|&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;width:49%;&amp;quot;|&lt;br /&gt;
== News ==&lt;br /&gt;
;30.06.2012 : Forum and wiki has been moved to [[User:ProgVal|ProgVal]]&amp;#039;s server.&lt;br /&gt;
&lt;br /&gt;
:More news in the [[News Archive|news archive]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PAGE MODIFIERS GO DOWN HERE --&amp;gt;&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=News_Archive&amp;diff=6311</id>
		<title>News Archive</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=News_Archive&amp;diff=6311"/>
		<updated>2012-07-02T04:39:20Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Old News ==&lt;br /&gt;
&lt;br /&gt;
;25.05.2009 : [[Players]] started the &amp;#039;&amp;#039;&amp;#039;first [[Tournament]]&amp;#039;&amp;#039;&amp;#039; since beta status.&lt;br /&gt;
;25.03.2009 : Beta 4 0.9.4.1 has been released. This fixes the corrupt Tutorial 3 in Beta 4. [[Download_and_Install|download page]].&lt;br /&gt;
;02.02.2009 : Beta 4 has been released. Check out the new release on [[Download_and_Install|download page]].&lt;br /&gt;
;24.04.2008 : Beta 3 has been released. Check out the new release on [[Download_and_Install|download page]].&lt;br /&gt;
;07.04.2008 : After a short down time we are back online on the server of [[User:Giszmo|Giszmo]]. If you experience bad performance, please let us know via [[IRC]], [https://savannah.nongnu.org/mail/?group=glob2 Mailing List], posts to [[Talk:Main_Page]] or via the [http://www.globulation2.org/forums forum].&lt;br /&gt;
;20.03.2008 : The [[Download and Install]] page has been redone, and the compiling instructions have been split into a [[Compiling]] section, which dramatically improves the pages usability.&lt;br /&gt;
;03.03.2008 : Globulation 2 was present at [http://www.fosdem.org/2008/schedule/events/globulation http://www.globulation2.org/wiki/images/a/ae/Fosdem08.png]. The presentation is available at [http://stephane.magnenat.net/data/glob2-fosdem2008-presentation.pdf here]. A video of the presentation can be downloaded from [http://ftp.heanet.ie/mirrors/fosdem-video/2008/maintracks/FOSDEM2008-globulation2.ogg here].&lt;br /&gt;
;23.02.2008 : Beta 2 has been released. Check out the new release on [[Download_and_Install|download page]].&lt;br /&gt;
;20.02.2008 : The wiki and forums have finally been brought up to date! Unfortunately the passwords for the forum couldn&amp;#039;t be salvaged so you have to create a new password, and the glob2 theme hasn&amp;#039;t been fully recreated yet.&lt;br /&gt;
&lt;br /&gt;
==Old Game News==&lt;br /&gt;
&lt;br /&gt;
*01.09.2007&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Beta1 released&lt;br /&gt;
*18.04.2007&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha23 released&lt;br /&gt;
*03.04.2007&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha22 released&lt;br /&gt;
*04.08.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha21 released&lt;br /&gt;
*04.08.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha20 released&lt;br /&gt;
*12.03.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha19 released&lt;br /&gt;
*29.01.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha18 released&lt;br /&gt;
*11.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha17 released&lt;br /&gt;
*04.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha16 released&lt;br /&gt;
*15.05.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha15 released&lt;br /&gt;
*24.04.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha14 released&lt;br /&gt;
*16.04.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha13 released&lt;br /&gt;
*13.02.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha12 released&lt;br /&gt;
*16.01.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha11 released&lt;br /&gt;
*29.12.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha10 released&lt;br /&gt;
*08.10.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha9 released&lt;br /&gt;
*12.09.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha8 released&lt;br /&gt;
*08.08.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha7 released&lt;br /&gt;
*09.06.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha6 released&lt;br /&gt;
*30.03.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha5 released&lt;br /&gt;
*20.03.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha4 released&lt;br /&gt;
*08.02.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha3 released&lt;br /&gt;
*08.02.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha2 released&lt;br /&gt;
*01.02.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Alpha1 released&lt;br /&gt;
&lt;br /&gt;
==Old Website News==&lt;br /&gt;
*22.04.2007&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The front page was spammed. The spammer &amp;#039;&amp;#039;very impressivly&amp;#039;&amp;#039; overwrote the main page with some links that said &amp;quot;HacKeD BY ...&amp;quot; on public wiki on an open source webpage, certainly not something any person could do. The changes where reverted and the admin has banned the spammer.&lt;br /&gt;
*22.04.2007&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp; Globulation 2 has moved its source code from [[CVS]] to [[Mercurial]]. If you are a contributor, please learn about and commit to [[Mercurial]] from now on. We have updated the wiki to reflect these changes. The last things to do are to change the translated pages (page in a language other than English), and the bot that updates the [[Team]] page when the AUTHORS files is changed.&lt;br /&gt;
*15.04.2007&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;[[Bug day 20070414]] went ok, but hopefully next time we can have more participants. That shouldn&amp;#039;t stop you from submitting regular [[Bug Reports]] though.&lt;br /&gt;
*4.03.2007&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The website is back online! [[2007-03-04_prolonged_downtime | click here for more details]]&lt;br /&gt;
*27.11.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The server experienced 14 hours of downtime due to a hard drive failure, but everything is back up and running just fine now! [[User:AppleBoy|AppleBoy]]&lt;br /&gt;
*17.08.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;the forum code has been updated by [[user:Ion bidon|Ion bidon]] and myself to clean out spam and deter spam-bots from being able to register. please give us feedback, and if you&amp;#039;re account was deleted please let me know (I&amp;#039;m sorry about that) [[User:AppleBoy|AppleBoy]]&lt;br /&gt;
*18.06.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;mediawiki has been upgraded to the latest version (1.6.7). Please report any problems to [[User:Ion bidon|Ion bidon]].&lt;br /&gt;
*18.06.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Email addresses *@mail.ru and *@cachette.com have been banned due to spam.&lt;br /&gt;
*14.06.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The forums have been upgraded. Please report any problems to [[User:Ion bidon|Ion bidon]].&lt;br /&gt;
*12.02.2006&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;[[User:Glob2bot|Glob2bot]] is a bot created to update the [[Team]] page from the [http://cvs.savannah.nongnu.org/viewcvs/glob2/glob2/AUTHORS?view=markup CVS AUTHORS file]&lt;br /&gt;
*30.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;[http://glob2.ysagoon.com glob2.ysagoon.com] and [http://forum.ysagoon.com forum.ysagoon.com] now redirect to here.&lt;br /&gt;
*19.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Small bugs fixed on the phpbb/mediawiki users integrations.&lt;br /&gt;
*16.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The custom theme has been updated.&lt;br /&gt;
*12.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The wiki now has a customized theme.&lt;br /&gt;
*11.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;http://www.globulation2.org/ is now considered the main homepage for Globulation 2.  The old site should be quickly incorporated into this one.&lt;br /&gt;
*05.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The mediawiki/phpbb users integration is now finished. From now on, each person has the same account on both mediawiki and the forum. You need only to register once (mediawiki or phpbb). You can access the forums with the link &amp;quot;players forums&amp;quot; on the left.&lt;br /&gt;
*01.12.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;New server online, will be http://www.globulation2.org/&lt;br /&gt;
*11.03.2005&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Server has been moved in new room with air-conditioning and is back online.&lt;br /&gt;
*10.10.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;The wiki documentation has been cleaned up&lt;br /&gt;
*26.02.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Small web update, french translation updated.&lt;br /&gt;
*18.01.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Forum installed.&lt;br /&gt;
*18.01.2004&amp;amp;nbsp;&amp;amp;nbsp;-&amp;amp;nbsp;&amp;amp;nbsp;Engine rework completed. Network fixed. YOG is up. Now the game needs tuning and graphics for the 1.0 release.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Archives]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=CodingConventions&amp;diff=6310</id>
		<title>CodingConventions</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=CodingConventions&amp;diff=6310"/>
		<updated>2012-07-02T04:20:43Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: integrated Code Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Coding Conventions==&lt;br /&gt;
&lt;br /&gt;
This page lists the coding conventions actually in use within Glob2. The intended purpose is to have coherent-looking code through the project. Sorry if this different to your usual conventions.&lt;br /&gt;
&lt;br /&gt;
=== KISS: Keep it Simple Stupid ===&lt;br /&gt;
All new code written in Glob2 should be obvious. Don&amp;#039;t use clever tricks. Everything should be kept as simple as possible, but no simpler. This is a fundamental principle, and all new code should be kept with KISS in mind.&lt;br /&gt;
&lt;br /&gt;
=== Maintainability Is God ===&lt;br /&gt;
If code is readable, if its maintainable, then it is good. Sometimes people get haggled about using pure OO or get/set. Make sure that your code is maintainable. If you change one portion, always try to minimize the amount of other code segments that need updated. This encompasses many techniques. Encapsulation is one of the best.&lt;br /&gt;
&lt;br /&gt;
===Indentation===&lt;br /&gt;
&lt;br /&gt;
Code should be indented by tabs. A tab should be equivalent to 4 spaces. Please note that in the code below, non-breaking spaces are used because tabs don&amp;#039;t display correctly in web pages.&lt;br /&gt;
&lt;br /&gt;
===Class and struct naming===&lt;br /&gt;
&lt;br /&gt;
Classes should begin with capitals, new words should be denoted by a capital, and words should not be separated by underscores or dashes.  In other words,&lt;br /&gt;
&lt;br /&gt;
 class TotoIsMyFriend { }; &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;// correct&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 class toto_is_my_friend{}; &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;// wrong&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Class members, variables, and C function follow the same convention but without the initial capital:&lt;br /&gt;
&lt;br /&gt;
 void totoIsMyFriend(void); &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;// correct&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 void Toto-is-my-friend(void); &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;// wrong&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bracket placement===&lt;br /&gt;
&lt;br /&gt;
Brackets {} should be placed alone on a line, except if there is no or only one function call within them.&lt;br /&gt;
&lt;br /&gt;
 class Toto&lt;br /&gt;
 {&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;int i;&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;void totoIsMyFriend(void) { return i; };&lt;br /&gt;
 }; &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;// correct&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 class Toto {&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;int i;&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;void Toto-is-my-friend(void) {&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;return i;&lt;br /&gt;
 &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;&amp;amp;#160;};&lt;br /&gt;
 }; &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;// wrong&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Emacs===&lt;br /&gt;
&lt;br /&gt;
If you use Emacs as your editor, you can make it apply these rules to Globulation 2 files by putting the following in the .emacs file in your home directory:&lt;br /&gt;
&lt;br /&gt;
 (defconst glob2-c-style&lt;br /&gt;
  &amp;#039;((c-basic-offset	. 4)&lt;br /&gt;
    (c-offsets-alist            . ((substatement-open . 0)&lt;br /&gt;
 				   (inline-open	. 0)&lt;br /&gt;
 				   ))&lt;br /&gt;
    )&lt;br /&gt;
  &amp;quot;Globulation 2 programming style&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 ;; Customizations for all modes in CC Mode.&lt;br /&gt;
 (defun glob2-c-mode-common-hook ()&lt;br /&gt;
  (c-add-style &amp;quot;glob2&amp;quot; glob2-c-style)&lt;br /&gt;
  )&lt;br /&gt;
 &lt;br /&gt;
 (add-hook &amp;#039;c-mode-common-hook &amp;#039;glob2-c-mode-common-hook)&lt;br /&gt;
&lt;br /&gt;
And adding the following to the top line of each of your source files:&lt;br /&gt;
&lt;br /&gt;
 /* emacs settings information: -*- mode: c++; tab-width: 4; c-file-style: &amp;quot;glob2&amp;quot;; -*- */&lt;br /&gt;
&lt;br /&gt;
==Proposed Conventions==&lt;br /&gt;
&lt;br /&gt;
This section discusses proposals for programming style rules that have not yet been widely accepted&lt;br /&gt;
&lt;br /&gt;
===Counting===&lt;br /&gt;
&lt;br /&gt;
When referring to the total number of items of a particular type that there are, the current rule is to use &amp;lt;code&amp;gt;numberOfFoo&amp;lt;/code&amp;gt;.  I find this confusing, as I expect &amp;lt;code&amp;gt;numberOfFoo&amp;lt;/code&amp;gt; to refer to the index number of a particular instance of foo.  Some alternatives include:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;fooCount&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;fooTotal&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;fooSize&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fooCount&amp;lt;/code&amp;gt; seems the easiest to read of the three, &amp;lt;code&amp;gt;fooTotal&amp;lt;/code&amp;gt; also makes sense, and &amp;lt;code&amp;gt;fooSize&amp;lt;/code&amp;gt;, while confusing, mirrors the &amp;lt;code&amp;gt;foo.size()&amp;lt;/code&amp;gt; convention used in STL containers.&lt;br /&gt;
&lt;br /&gt;
By extension, where there is an ordered list of things (most likely an enum), we should always have the following definitions:&lt;br /&gt;
&lt;br /&gt;
 enum foo { foo1, foo2, ... fooN };&lt;br /&gt;
 static const int fooMin = foo1;&lt;br /&gt;
 static const int fooMax = fooN;&lt;br /&gt;
 static const int fooCount = fooMax - fooMin + 1;&lt;br /&gt;
&lt;br /&gt;
===Getting and setting===&lt;br /&gt;
&lt;br /&gt;
At present, it&amp;#039;s standard to get values with &amp;lt;code&amp;gt;getFoo()&amp;lt;/code&amp;gt; and set them with &amp;lt;code&amp;gt;setFoo(value)&amp;lt;/code&amp;gt;.  While this is clear, it doesn&amp;#039;t fit with the C++ convention of using &amp;lt;code&amp;gt;foo()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foo(value)&amp;lt;/code&amp;gt;.  It also doesn&amp;#039;t distinguish between the cases where we are supposed to think of &amp;lt;code&amp;gt;getFoo()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;setFoo()&amp;lt;/code&amp;gt; as simple wrappers around private variables vs. where we should expect more significant processing to be done.  I propose that we use &amp;lt;code&amp;gt;getFoo()&amp;lt;/code&amp;gt; only where the user should expect significant processing to be done.  For example, &amp;lt;code&amp;gt;GAGCore::getFilename()&amp;lt;/code&amp;gt; searches an entire list of directories for a file, whereas &amp;lt;code&amp;gt;debugLevel()&amp;lt;/code&amp;gt; just sets an internal variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= documentation =&lt;br /&gt;
When doing documentation, a comment section for a function should look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Any comments go here&lt;br /&gt;
 * @param string $foo &lt;br /&gt;
 * @param int $bar&lt;br /&gt;
 * @return boolean&lt;br /&gt;
 * @access private&lt;br /&gt;
 * @todo document&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
keep in mind not all of these items are always needed. if it doesn&amp;#039;t take any parameters, that section is not needed.&amp;lt;br /&amp;gt;&lt;br /&gt;
so if it doesn&amp;#039;t take any parameters, you can leave @param out&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Talk:Beta_5_rebalance&amp;diff=6309</id>
		<title>Talk:Beta 5 rebalance</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Talk:Beta_5_rebalance&amp;diff=6309"/>
		<updated>2012-07-02T02:58:40Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: Created page with &amp;quot;Does this belong into the wiki? looks more like a mailing list thing. --~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Does this belong into the wiki? looks more like a mailing list thing. --[[User:Giszmo|Giszmo]] ([[User talk:Giszmo|talk]]) 02:58, 2 July 2012 (UTC)&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Talk:Download_and_Install&amp;diff=6249</id>
		<title>Talk:Download and Install</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Talk:Download_and_Install&amp;diff=6249"/>
		<updated>2011-01-26T16:24:55Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: Reverted edits by Meganag (Talk); changed back to last version by PeEll&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ubuntu/Debian Packages Missing==&lt;br /&gt;
Is it just me, or are the debian packages missing right now? I get a german 404 error.&lt;br /&gt;
[[User:PeEll|PeEll]] 07:55, 5 April 2009 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Open wiki for software distribution ?==&lt;br /&gt;
Security Note: This is all it takes to edit something like this?  You guys shouldn&amp;#039;t have a completely open wiki for software distribution...  - Me&lt;br /&gt;
:If I understand correctly, the wiki is open while the transfer from the old wiki takes place. When finished, new registrations should probably be closed from the public. However, when you think about it, if someone makes an edit that links to say a virus, all someone has to do is delete that edit. Unfortunatly, Globulation 2 isn&amp;#039;t big enough for that to happen instantly :( It would take about a day for someone to realise. - k776&lt;br /&gt;
::The idea of an open wiki is very good and people can contribute very easily if they want to. Some of us are watching for modifications in order to keep the wiki clean from vandalism. If we will have problems in the future, we may change the &amp;quot;open&amp;quot; status. But until now, we had no problems. - [[User:Ion bidon|Ion bidon]] 16:01, 9 February 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think we should not expand too much the instructions about each distributions. Instead, I think we should cleanly list what we provide and list distributios that alos provide glob2, by saying perhaps versions are outdated. For distribution-specific installation, we can link distribution&amp;#039;s documentations. - [[User:nct|Steph]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I suggest we have 2 separate pages : A Download page and a Install_Glob2 page for example, the [[Download_and_Install]] page contains too much infos. - [[User:Ion bidon|Ion bidon]] 16:28, 19 December 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
:Well, I was thinking that we should just provide quick install help in the download section, but if you think that it&amp;#039;s better to have a separate install guide, let&amp;#039;s make a good one and put it in the left menu. - [[User:Nct|Nct]] 07:26, 20 December 2005 (PST)&lt;br /&gt;
::I agree to provide a quick install help in the download section, but a separate install guide is very good. I will see what I can do about it. - [[User:Ion bidon|Ion bidon]] 07:44, 20 December 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
== No Mac OS X download?==&lt;br /&gt;
&lt;br /&gt;
There is no link to the DMG mentioned in the Mac OS X installer instructions. Also, FYI, software installation SOP on Mac OS X is typically &amp;quot;drag the application (a folder in disguise) from the disk image to your Applications directory (or really, anywhere you want.)&amp;quot; Though perhaps the installer installs other things in other places… --[[User:DonnyViszneki|DonnyViszneki]] 03:06, 11 July 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Pmol--&lt;br /&gt;
Check out http://glob2.darwinports.com/ :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This doesn&amp;#039;t fix the problem of the wiki referring to a downloadable DMG disk image.   You CAN install Globulation 2 via DarwinPorts, however the install isn&amp;#039;t &amp;#039;&amp;#039;nice&amp;#039;&amp;#039; for average users who just want to click and install.   Either the instructions in the wiki need to change to reflect this, or a DMG should be made available.&lt;br /&gt;
&lt;br /&gt;
Problems with what the wiki says:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Mount the disk image file, and start the installer from it.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
There&amp;#039;s no link to the DMG.  Users cannot get the DMG.  Users cannot &amp;#039;start the installer&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Globulation gets installed in /Applications/Globulation2.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Using DarwinPorts, the game is installed in /opt/local/bin/... etc. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;To run the game, open /Applications/Globulation2/Globulation2.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
IF DarwinPorts is set up properly (path is correct), the user starts Globulation 2 by typing glob2 at the terminal prompt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless a Mac OS X user is determined enough, they probably are not going to try out Globulation 2.&lt;br /&gt;
&lt;br /&gt;
--[[User:Juicymixx|Juicymixx]] 06:42, 10 November 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Reduce redundancy ==&lt;br /&gt;
&lt;br /&gt;
As all packages are linked at least twice we risk to have different versions through the link in &amp;quot;latest release&amp;quot; and in &amp;quot;install under xyz&amp;quot;. I suggest to link to the binaries only once (latest release) and link to &amp;quot;latest release&amp;quot; from everywhere else.&lt;br /&gt;
&lt;br /&gt;
to even further reduce redundancy (p.e. through translations) we should only link to some folder with a hirarchy of version/platform/files. this way even if the link talks about version .16 the end user will still download the latest.&lt;br /&gt;
&lt;br /&gt;
== unofficial cvs-windows-binary ==&lt;br /&gt;
&lt;br /&gt;
i removed the broken link by commenting it out.&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=MediaWiki:Roundedblue2.css&amp;diff=6245</id>
		<title>MediaWiki:Roundedblue2.css</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=MediaWiki:Roundedblue2.css&amp;diff=6245"/>
		<updated>2011-01-05T02:40:58Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#bodyContent {background-color: blue;}&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=MediaWiki:Roundedblue2.css&amp;diff=6244</id>
		<title>MediaWiki:Roundedblue2.css</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=MediaWiki:Roundedblue2.css&amp;diff=6244"/>
		<updated>2011-01-05T02:07:35Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: New page: body {background-color: blue;}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;body {background-color: blue;}&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Media_guide&amp;diff=6236</id>
		<title>Media guide</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Media_guide&amp;diff=6236"/>
		<updated>2010-12-28T13:32:13Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: Undo revision 5711 by TinaBole (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO - explain how people can contribute artworks:&lt;br /&gt;
* How to modify the images used by the game (images must be placed into a specific directory - FIXME) [[Tileset_handbook|Tileset handbook]]&lt;br /&gt;
* How to make sounds for the game (the game does not support yet sounds events)&lt;br /&gt;
* How to create musics for the game. It can play diferent types of music depending ont the state (under atack, at peace, buildings are constructed...)&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Contributor Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Template:Translations&amp;diff=6235</id>
		<title>Template:Translations</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Template:Translations&amp;diff=6235"/>
		<updated>2010-12-28T13:27:39Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table id=&amp;quot;language-bar&amp;quot; style=&amp;quot;padding:0; margin: auto;&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[{{{Article}}}|English]] | &lt;br /&gt;
[[Fr:{{{Article}}}|Français]] | &lt;br /&gt;
[[De:{{{Article}}}|Deutsch]] | &lt;br /&gt;
[[Es:{{{Article}}}|Español]] | &lt;br /&gt;
[[It:{{{Article}}}|Italiano]] |&lt;br /&gt;
[[Cs:{{{Article}}}|Česky]] |&lt;br /&gt;
[[Ro:{{{Article}}}|Română]] |&lt;br /&gt;
[[Ru:{{{Article}}}|Русский]] |&lt;br /&gt;
[[Ca:{{{Article}}}|Català]] |&lt;br /&gt;
[[Fi:{{{Article}}}|Suomi]] |&lt;br /&gt;
[[Ja:{{{Article}}}|Japanese]] |&lt;br /&gt;
[[Zh:{{{Article}}}|Chinese]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Template:Translations&amp;diff=6234</id>
		<title>Template:Translations</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Template:Translations&amp;diff=6234"/>
		<updated>2010-12-28T13:24:56Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table id=&amp;quot;language-bar&amp;quot; style=&amp;quot;padding:0; margin: auto;&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[{{{Article}}}|English]] | &lt;br /&gt;
[[Fr:{{{Article}}}|Français]] | &lt;br /&gt;
[[De:{{{Article}}}|Deutsch]] | &lt;br /&gt;
[[Es:{{{Article}}}|Español]] | &lt;br /&gt;
[[It:{{{Article}}}|Italiano]] |&lt;br /&gt;
[[Cs:{{{Article}}}|Česky]] |&lt;br /&gt;
[[Ro:{{{Article}}}|Română]] |&lt;br /&gt;
[[Ru:{{{Article}}}|Русский]] |&lt;br /&gt;
[[Ca:{{{Article}}}|Català]] |&lt;br /&gt;
[[Fi:{{{Article}}}|Suomi]] |&lt;br /&gt;
[[Ja:{{{Article}}}|Japanese]]&lt;br /&gt;
[[Zh:{{{Article}}}|Chinese]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Combat&amp;diff=6209</id>
		<title>Combat</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Combat&amp;diff=6209"/>
		<updated>2010-11-15T17:58:10Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: Undo revision 6205 by Oziveheribi (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
==Combat description==&lt;br /&gt;
All units and buildings have a certain number of hit points. When a unit or building is attacked, it loses hit points based on the attacker&amp;#039;s training and experience level, and based on the amount of armour it has. Units can also lose hit points through starvation.&lt;br /&gt;
&lt;br /&gt;
Units die (and buildings are destroyed) if they completely run out of hit points. Damaged units can regain hit points by being healed in a hospital, buildings can regain hit points by being repaired.&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by an attacker is based on its basic damage, plus its experience level, minus the amount of armour the defender has. Although the principles are the same, different types of combateer attack in different ways:&lt;br /&gt;
&lt;br /&gt;
* Warriors walk up to their enemies and hit them repeatedly. Their attack speed skill controls the number of blows they can land each second.&lt;br /&gt;
* defence towers throw rocks at nearby ground-based enemies. They take a long time to reload and need to be restocked with stone every so often.&lt;br /&gt;
* explorers perform a magic attack whenever an enemy gets within one square of it. At first, this attack only affects other explorers adjacent to it, but training in a level 3 school allows explorers to attack ground targets. The magic attack is incapable of damaging buildings but completely bypasses all armor. Explorers can attack once for every three moves they make.&lt;br /&gt;
&lt;br /&gt;
==Managing combateers==&lt;br /&gt;
&lt;br /&gt;
You can get information about individual units and buildings by clicking on them. The graphs? and statistics? menus also give an overview of how your population is doing.&lt;br /&gt;
&lt;br /&gt;
==Armour==&lt;br /&gt;
&lt;br /&gt;
Some units (and some buildings) are armoured against enemy attack. Each point of armour deflects one point of damage done by an attacker, although warriors and defence towers will always deal one point of damage no matter how much armour you have.&lt;br /&gt;
&lt;br /&gt;
Warriors start off with 10 points of armour, minus 10 points for each piece of fruit they ate in the last inn they went to. A warrior that took two pieces of fruit with his last meal will have -10 armour, meaning that he takes 10 extra points of damage for every blow he is dealt. Armour lost due to fruit doesn&amp;#039;t accumulate, so if the warrior eats no fruit the next time he takes lunch, he will go back to having 10 points of armour.&lt;br /&gt;
&lt;br /&gt;
==Basic Damage==&lt;br /&gt;
&lt;br /&gt;
Defence towers do a certain basic amount of damage based on the level they&amp;#039;ve been upgraded to. Level one towers do 30 points of basic damage, level two towers do 40 points, level three towers do 60 points.&lt;br /&gt;
&lt;br /&gt;
Explorers&amp;#039; air damage is worth 8 basic points, as is their ground damage once they&amp;#039;ve learnt it.&lt;br /&gt;
&lt;br /&gt;
A warrior&amp;#039;s basic damage depends on its attack strength. Learning attack strength to level 1 gives it 8 basic points of damage. Learning it to level 2 gives 16 points, level 3 is gives 24 points, level 4 gives 32.&lt;br /&gt;
&lt;br /&gt;
==Experience==&lt;br /&gt;
&lt;br /&gt;
The more experience a unit has of combat, the stronger he gets. Units start off with no experience, and gain one experience point (&amp;quot;XP&amp;quot;) for every point of damage they do to an enemy (after armour is taken into account). Eventually, they will get enough XP to go up to the next level of experience, which means that every blow they land in combat does another point of damage. As they go up a level, their new level is shown in yellow next to them for a moment.&lt;br /&gt;
&lt;br /&gt;
For convenience, here is a list of experience levels - in practice, it&amp;#039;s very rare to get above experience level 10.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&amp;#039;&amp;#039;&amp;#039;Warrior experience levels&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
|-&lt;br /&gt;
! Experience level !! XP needed !! Cumulative XP&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 20 || 20&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 80 || 100&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 180 || 280&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 320 || 600&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 500 || 1100&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 720 || 1820&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 980 || 2800&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 1280 || 4080&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 1620 || 5700&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 2000 || 7700&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&amp;#039;&amp;#039;&amp;#039;Explorer experience levels&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
|-&lt;br /&gt;
! Experience level !! XP needed !! Cumulative XP&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 50 || 50&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 200 || 250&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 450 || 700&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 800 || 1500&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 1250 || 2750&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 1800 || 4550&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 2450 || 7000&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 3200 || 10200&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 4050 || 14250&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 5000 || 19250&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Details of the experience system===&lt;br /&gt;
&lt;br /&gt;
The details of the experience system are given here, but if you&amp;#039;re not interested in numbers, this section can be safely skipped.&lt;br /&gt;
&lt;br /&gt;
The formula for working out the number of XP needed to advance from one level to the next is cl2 where l is the level you want to get to, and c is a constant based on your unit type (20 for warriors, 50 for explorers). Experience gained getting to one level doesn&amp;#039;t count towards the experience you need to get to the next, so the total amount of experience you need to get to a particilar experience level n is the sum of cl2 from l=1 to l=n.&lt;br /&gt;
&lt;br /&gt;
==Getting into a fight==&lt;br /&gt;
&lt;br /&gt;
Explorers won&amp;#039;t attack unless they fly directly into (or over) an enemy unit. Defence towers will attack any enemy unit or building that comes into its firing range. Warriors will attack any enemy they can see within an 8x8 square around them.&lt;br /&gt;
&lt;br /&gt;
==Putting it all together: an example==&lt;br /&gt;
&lt;br /&gt;
Note: This could be expanded and moved into the unit section later on.&lt;br /&gt;
&lt;br /&gt;
A new warrior emerges from one swarm, a new explorer emerges from another. They each start with an experience level of 0 and 0 XP. They each deal 8 points of damage for every attack they do. They each take a moment to look around for things to do. The explorer sees nothing to do, so he begins to fly across the landscape to see what he can find. The warrior sees several barracks he could train in, and a war flag in the distance. He prefers the war flag, which he immediately heads toward.&lt;br /&gt;
&lt;br /&gt;
Soon, the warrior finds himself in combat. He and three other warriors surround a market and start attacking it. Each blow he lands should do 8 points of damage, but the market deflects 2 points with its armour. After he hits the market four times, he has done 24 points of damage and gained 24 experience, so he gains an experience level. Now, each blow he lands does 9 points of damage, minus 2 because of armour. The warrior gets three more blows in before his team-mates destroy the market. As the warrior retires to a nearby inn for lunch, he has 1 experience level and is 25 points towards reaching level 2.&lt;br /&gt;
&lt;br /&gt;
In the mean-time, the explorer happens upon an enemy explorer. The explorers fight, dealing each other 8 points of damage for every blow they land. Luckily, the enemy explorer had previously lost a hit point through a moment&amp;#039;s starvation, so dies after being dealt 24 points in 3 blows. Like the warrior, the explorer has gained 24 experience, but because he needs 50 experience points to go up a level, he remains at level 0. After the fight, the explorer has only one remaining hit point, so makes his way straight to the nearest hospital.&lt;br /&gt;
&lt;br /&gt;
The warrior finishes his lunch and takes an orange, which takes his armour level from 10 down to 0. He looks again for something to do. There are no war flags any longer, although there is a guard area nearby. Most of the teams barracks are full with other warriors now, but there&amp;#039;s space in a level two barracks, which he immediately signs up for.&lt;br /&gt;
&lt;br /&gt;
As the warrior enters the barracks, the explorer leaves the hospital. Still not hungry, he looks for something to do. There is an exploration flag on the other side of the map that needs more explorers, which he heads for. But he gets hungry before he can make it there, so turns round and heads for an inn. After lunching at the inn, he sees a level 3 school with an empty place, so goes there to train.&lt;br /&gt;
&lt;br /&gt;
The warrior leaves the barracks with an attack speed of 3, so now he will attack three times as quickly as before. There are now two guard posts - one nearby and one in the distance. He heads to the nearby one. Soon, two enemy warriors pass near the guard post. He goes to attack them, and it turns out neither of them have any experience, skill, or armour. They are no match for him, and he gains two experience levels fighting with them before they flee. The warrior gives chase, but they have a much higher walking speed, so they manage to escape. The warrior heads to hospital then to an inn.&lt;br /&gt;
&lt;br /&gt;
When the explorer leaves the inn, he heads back toward the exploration flag set there before. When he arrives, he finds a group of 7 warriors marching to attack his base. He begins attacking the warriors which are unable to fight back. The enemy warriors choose to keep marching despite this and arrive at the base with only half their health. The 4 friendly warriors now fully healed also join the fight. Despite superior numbers the enemy units are defeated due to the damage taken from the explorer.&lt;br /&gt;
&lt;br /&gt;
==Combat Strategy==&lt;br /&gt;
&lt;br /&gt;
* Since warriors will only attack visible targets within a box 8 squares wide around them, paint guard areas so that units can&amp;#039;t sneak past without being spotted, or run past taking only minimal damage.&lt;br /&gt;
* You can draw warriors into combat with war flags and explorers with exploration flags. However, you may want to try increasing the minimum experience level on your war flags so that you have enough troops to do the job, but weaker warriors stay at home to train.&lt;br /&gt;
* Gaining experience is good, but training is better. Destroy war flags as quickly as possible, so that your warriors have time to train between battles. Well-trained warriors tend to gain experience levels faster anyway.&lt;br /&gt;
* Keep an eye on the wound graph?. If the amount of wounding rises briefly, it may mean your units are under attack. If it continues to rise (or remains constant) for a long time, you need more hospitals.&lt;br /&gt;
* At the start of the game, warriors will have more armour than attack strength, so are almost invulnerable to each other. During this period, you might want to harrass your enemies with small attack parties that simply retreat when faced with significant opposition. However, as barracks are set up and globs start eating fruit, fighting gets more dangerous for warriors - so it becomes important to go into combat with more, better trained, warriors than your enemy.&lt;br /&gt;
* Defence towers are quite useful early in the game, as they have enough armour to defend themselves against warriors and do enough damage to get past the warrior&amp;#039;s armour. However, it can take the entire capacity of one defence tower to see off a warrior, so you will need a string of towers (or a secure supply line) to defend against any real enemy attack.&lt;br /&gt;
* As the game progresses, Defence towers become increasingly vulnerable to enemy attack, but upgraded defence towers can become useful when workers try to steal resources - a level 3 defence tower can kill a worker in four shots.&lt;br /&gt;
* If nothing else, defence towers can be a good first line of defence, letting you see the size of the enemy force, softening them up and keeping them busy while your own warriors are on their way to the battle.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Compiling&amp;diff=6208</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Compiling&amp;diff=6208"/>
		<updated>2010-11-15T17:55:48Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: Undo revision 6203 by Oziveheribi (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{Message|Compiling on Windows|The instructions below will not work for Windows. To compile on that OS, please see the &amp;lt;u&amp;gt;[[Mingw compilation]]&amp;lt;/u&amp;gt; guide, which explains how to compile globulation2 on windows using mingw.}}&lt;br /&gt;
&lt;br /&gt;
==Compilation requirements==&lt;br /&gt;
{{Message|Compiling on Mac OSX|There is an easier way to get all the dependancies than to compile them all. See the [[MAC OS X Development]] page for more information.}}&lt;br /&gt;
For source tarbal, Mercurial source, and package installations, you&amp;#039;ll also need to install these packages:&lt;br /&gt;
* [http://www.scons.org/ scons] build system&lt;br /&gt;
* [http://www.libsdl.org/index.php SDL 1.2] download SDL-devel and SDL&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_net/ SDL_net 1.2] download SDL_net-devel&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_image/ SDL_image 1.2] download SDL_image-devel&lt;br /&gt;
* [http://www.libsdl.org/projects/SDL_ttf/ SDL_ttf 2.0] download SDL_ttf-devel&lt;br /&gt;
* [http://www.speex.org speex] download current stable release&lt;br /&gt;
* [http://www.xiph.org/ libogg and libvorbis] can be found in their download-section. libspeex, too.&lt;br /&gt;
* [http://zlib.net/ zlib]&lt;br /&gt;
* [http://boost.org/ Boost C++ Libraries] download boost, boost-devel, including boost_thread and boost_date_time.&lt;br /&gt;
* (optional) [http://fribidi.org/ Fribidi] download GNU FriBidi&lt;br /&gt;
&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
The following terminal command will get you all the dependencies:&lt;br /&gt;
 sudo apt-get install scons libsdl1.2-dev libsdl-net1.2-dev libsdl-image1.2-dev \&lt;br /&gt;
 libsdl-ttf2.0-dev zlib-bin libspeex-dev libogg-dev libvorbis-dev libboost-dev \&lt;br /&gt;
 libboost-thread1.40-dev libboost-date-time1.40-dev&lt;br /&gt;
* Adding &amp;#039;mercurial&amp;#039; to that line will get you all you need to get involved.&lt;br /&gt;
&lt;br /&gt;
== Compile from Sources ==&lt;br /&gt;
=== Source Distribution ===&lt;br /&gt;
* Get the [[Download and Install|source distribution archive]] from the download section.&lt;br /&gt;
* Extract the archive using a compression/extraction utility such as tar.&lt;br /&gt;
* Go in the extracted archive. If you have a Unix system (GNU/Linux, Solaris, Mac OS X):&lt;br /&gt;
** Run the &amp;#039;scons&amp;#039; script to compile the game (it will check dependencies, install any you have missing)&lt;br /&gt;
*** If you want to install the game in a special place, instead of &amp;#039;scons&amp;#039;, type: &lt;br /&gt;
 scons BINDIR=&amp;quot;/path/to/install/bin&amp;quot; INSTALLDIR=&amp;quot;/path/to/install/share&amp;quot;&lt;br /&gt;
** Install with a simple &amp;#039;scons install&amp;#039; command (will install to the location you might have entered when compiling (BINDIR and INSTALLDIR)).&lt;br /&gt;
** Run the game by typing &amp;#039;glob2&amp;#039;. If it doesn&amp;#039;t work, type &amp;#039;/path/to/install/bin/glob2&amp;#039; instead.&lt;br /&gt;
** Note: in some GNU/+Linux distributions (eg: Archlinux), scons complains about not finding -lboost_thread (with boost already installed). A solution is to modify the SConstruct file to look for boost_thread-mt instead of boost_thread, and the modify the LIBS variable with boost_thread-mt, to link against this library. If you have root access you can create a symlink libboost_thread.so instead.&lt;br /&gt;
&lt;br /&gt;
=== Sources from [[Mercurial]] ===&lt;br /&gt;
{{Message|Warning|The source from Mercurial is occasionally unstable and will break. It is not meant for playing games but only for development and testing.}}&lt;br /&gt;
==== The quick way ====&lt;br /&gt;
Use this if you want to get exactly one copy of glob2 repository to compile and run it. This is also the recommended way if you are sure you will not want to push only parts of your changes.&lt;br /&gt;
* Initial download&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new/&lt;br /&gt;
* Subsequent updates&lt;br /&gt;
 cd glob2-new&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg update&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;pull&amp;#039;&amp;#039;&amp;#039; will get all changes from the original repository into your repository&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;update&amp;#039;&amp;#039;&amp;#039; will get your local files to the latest revision. Use &amp;#039;&amp;#039;&amp;#039;-C&amp;#039;&amp;#039;&amp;#039; to loose all local changes.&lt;br /&gt;
==== The more complicated way ====&lt;br /&gt;
Use this if you want to commit several changes that you are not sure of being finished some day while at the same time you want to have access to a clean checkout, too.&lt;br /&gt;
* Initial download&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new/&lt;br /&gt;
* clone to a working directory&lt;br /&gt;
 cd some_workspace_directory&lt;br /&gt;
 hg clone glob2-new glob2-work&lt;br /&gt;
* Subsequent updates&lt;br /&gt;
 cd glob2-new&lt;br /&gt;
 hg pull&lt;br /&gt;
 cd ../glob2-work&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg update&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;pull&amp;#039;&amp;#039;&amp;#039; will get all changes from the original repository into your target repository&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;update&amp;#039;&amp;#039;&amp;#039; will get your files to the latest revision. Use &amp;#039;&amp;#039;&amp;#039;-C&amp;#039;&amp;#039;&amp;#039; to loose all local changes.&lt;br /&gt;
&lt;br /&gt;
* Read the README.hg and README files.&lt;br /&gt;
* Continue by following the [[#Source_Distribution|&amp;#039;&amp;#039;source distribution&amp;#039;&amp;#039;]] instructions from the 3rd step onwards.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=SoundFOX&amp;diff=6207</id>
		<title>SoundFOX</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=SoundFOX&amp;diff=6207"/>
		<updated>2010-11-15T17:50:31Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: Undo revision 6206 by Oziveheribi (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;No results yet. Please see the [[Talk:SoundFX|Talk-Page]] to this article.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer_Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6169</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6169"/>
		<updated>2010-08-21T23:40:08Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
== Browsing the Project Repository ==&lt;br /&gt;
At http://hg.globulation2.org/ you can browse through the repository.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
;hg: To really access a mercurial repository you need mercurial. You can get it from your distribution if you are running Linux or from [http://www.selenic.com/mercurial the mercurial homepage]. An in depth manual of hg you can find [http://hgbook.red-bean.com/read/ here].&lt;br /&gt;
;tortoise-hg: To generally access hg repositories at a file system level you might want to use a GUI. [http://tortoisehg.bitbucket.org/ Tortoise-HG] is just great for that.&lt;br /&gt;
;HGE: The mercurial plugin for Eclipse is another great way to navigate our repository. You need Eclipse (the CDT-version) and can then get HGE by going to help -&amp;gt; install new software... -&amp;gt; Add... -&amp;gt; Location = http://cbes.javaforge.com/update -&amp;gt; checking mercurial eclipse ...&lt;br /&gt;
&lt;br /&gt;
== Getting a Copy of the Mercurial Repository ==&lt;br /&gt;
No matter if you want to contribute with write access or just want to get a read only copy of glob2, you should cd to a directory where you have write permissions and run hg clone:&lt;br /&gt;
 cd ~/my_hg_repositories&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new glob2&lt;br /&gt;
 cd glob2&lt;br /&gt;
The same can be achieved using HGE or tortoise-HG.&lt;br /&gt;
&lt;br /&gt;
== Which revision to use ==&lt;br /&gt;
Having cloned the repository you now have all the history of glob2 at hands. According to your intents you now might want to choose different revisions to jump to and start working on them. Pick from the subsections what most fits your intents:&lt;br /&gt;
&lt;br /&gt;
=== The player ===&lt;br /&gt;
If you want to play against others you need the same &amp;#039;&amp;#039;&amp;#039;major&amp;#039;&amp;#039;&amp;#039; version of glob2 as they have. If they have betaX.4 you should pick some betaX version. You get the latest version in the betaX release candidate branch using the tip of betaX-rc. To get there issue&lt;br /&gt;
 hg update betaX-rc&lt;br /&gt;
&lt;br /&gt;
In rare occasions this version might not work. To get a version that was tagged for being released, check the output of&lt;br /&gt;
 hg tags&lt;br /&gt;
for lines matching betaX.y and update to the highest y:&lt;br /&gt;
 hg update betaX.y&lt;br /&gt;
&lt;br /&gt;
=== The tester ===&lt;br /&gt;
If you want to test the latest not yet released version of glob2 you should update to the tip of the latest release candidate (-rc) branch:&lt;br /&gt;
 hg update betaY-rc&lt;br /&gt;
or if a feature freeze was not yet decided on, you can also test the latest version of the default branch:&lt;br /&gt;
 hg update default&lt;br /&gt;
&lt;br /&gt;
=== The bug fixer ===&lt;br /&gt;
You might have started as a tester but now want to actually touch code. Now it is getting slightly more complicated. Having found a bug and a solution to it means applying the fix to the right revision. As bugs often are not only bugs of not yet released features but also express in years old versions you should fix the oldest relevant version. If on the download page beta4 is still promoted, you should fix this and merge your changes up to beta5 and finally to default. In hg this is pretty easy to do:&lt;br /&gt;
 hg update beta4-rc&lt;br /&gt;
 do your changes to the code ....&lt;br /&gt;
 hg commit -m&amp;quot;fixed bug xy ...&amp;quot;&lt;br /&gt;
 hg update beta5-rc&lt;br /&gt;
 hg merge beta4-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge beta5-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
Depending on how important the bug-fix was you might now want to directly tag the new versions:&lt;br /&gt;
 hg tag beta4-rc beta4.X&lt;br /&gt;
 hg tag beta5-rc beta5.Y&lt;br /&gt;
&lt;br /&gt;
=== The mini-features guy ===&lt;br /&gt;
If you have a new small feature to contribute, you do this in &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 do your changes to the code ...&lt;br /&gt;
 hg commit -m&amp;quot;implemented mini-feature xy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== The big-features guy ===&lt;br /&gt;
If you have a new big feature to contribute, you do this in a separate branch starting at &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg branch fooFeature&lt;br /&gt;
work on your feature with a series of&lt;br /&gt;
 change code&lt;br /&gt;
 hg commit -m&amp;quot;changed this and that&amp;quot;&lt;br /&gt;
but while you work on your feature don&amp;#039;t miss to get in sync with the changing &amp;quot;default&amp;quot; by doing as follows:&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg merge -r default&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
once your feature is ready to be used in the game just like other features, merge it into default:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge fooFeature&lt;br /&gt;
 hg commit -m&amp;quot;merged&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
All the above was read only from the point of view of the main glob2-repository. If you have changes worth sharing you must make them public. Easiest is to pick one of the free mercurial hosters. If you go for [https://bitbucket.org bit bucket] you can fork [[User:Giszmo|Giszmo]]&amp;#039;s [https://bitbucket.org/giszmo/glob2 repository].&lt;br /&gt;
With your own bitbucket setup you can check for what would push&lt;br /&gt;
 hg outgoing https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
and push your changes there:&lt;br /&gt;
 hg push https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
&lt;br /&gt;
Now after you checked all is fine you can ask on the glob2 mailing list for someone with write access to the main repo to pull your changes. Asking on the irc is an option, too but for bigger changes you review might take some time and then it is safer to do it via the mailing list.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t forget to change the authors file if it&amp;#039;s your first contribution ;)&lt;br /&gt;
&lt;br /&gt;
If you are a regular contributor you may get write permissions for the central repo from [[User:Nct|Nct]]. You can mail him your username and password at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our &amp;quot;trunk&amp;quot; or default branch is called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
You can try everything with mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg tags&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpful to get information. Try &amp;quot;hg help&amp;quot; for details.&lt;br /&gt;
&lt;br /&gt;
 hg serve //and browsing to localhost:8000&lt;br /&gt;
is very good for a graphical overview of the repository structure. If you prefer using a GUI tool, go for  [http://tortoisehg.bitbucket.org/ Tortoise-HG].&lt;br /&gt;
And you definitely have to set up a merge tool for those case when you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6168</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6168"/>
		<updated>2010-08-21T15:44:22Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
== Browsing the Project Repository ==&lt;br /&gt;
At http://hg.globulation2.org/ you can browse through the repository.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
;hg: To really access a mercurial repository you need mercurial. You can get it from your distribution if you are running Linux or from [http://www.selenic.com/mercurial the mercurial homepage]. An in depth manual of hg you can find [http://hgbook.red-bean.com/read/ here].&lt;br /&gt;
;tortoise-hg: To generally access hg repositories at a file system level you might want to use a GUI. [http://tortoisehg.bitbucket.org/ Tortoise-HG] is just great for that.&lt;br /&gt;
;HGE: The mercurail plugin for Eclipse is another great way to navigate our repository. You need Eclipse (the CDT-version) and can then get HGE by going to help -&amp;gt; install new software... -&amp;gt; Add... -&amp;gt; Location = http://cbes.javaforge.com/update -&amp;gt; checking mercurial eclipse ...&lt;br /&gt;
&lt;br /&gt;
== Getting a Copy of the Mercurial Repository ==&lt;br /&gt;
No matter if you want to contribute with write access or just want to get a read only copy of glob2, you should cd to a directory where you have write permissions and run hg clone:&lt;br /&gt;
 cd ~/my_hg_repositories&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new glob2&lt;br /&gt;
 cd glob2&lt;br /&gt;
The same can be achieved using HGE or tortoise-HG.&lt;br /&gt;
&lt;br /&gt;
== Which revision to use ==&lt;br /&gt;
Having cloned the repository you now have all the history of glob2 at hands. According to your intents you now might want to choose different revisions to jump to and start working on them. Pick from the subsections what most fits your intents:&lt;br /&gt;
&lt;br /&gt;
=== The player ===&lt;br /&gt;
If you want to play against others you need the same &amp;#039;&amp;#039;&amp;#039;major&amp;#039;&amp;#039;&amp;#039; version of glob2 as they have. If they have betaX.4 you should pick some betaX version. You get the latest version in the betaX release candidate branch using the tip of betaX-rc. To get there issue&lt;br /&gt;
 hg update betaX-rc&lt;br /&gt;
&lt;br /&gt;
In rare occasions this version might not work. To get a version that was tagged for being released, check the output of&lt;br /&gt;
 hg tags&lt;br /&gt;
for lines matching betaX.y and update to the highest y:&lt;br /&gt;
 hg update betaX.y&lt;br /&gt;
&lt;br /&gt;
=== The tester ===&lt;br /&gt;
If you want to test the latest not yet released version of glob2 you should update to the tip of the latest release candidate (-rc) branch:&lt;br /&gt;
 hg update betaY-rc&lt;br /&gt;
or if a feature freeze was not yet decided on, you can also test the latest version of the default branch:&lt;br /&gt;
 hg update default&lt;br /&gt;
&lt;br /&gt;
=== The bug fixer ===&lt;br /&gt;
You might have started as a tester but now want to actually touch code. Now it is getting slightly more complicated. Having found a bug and a solution to it means applying the fix to the right revision. As bugs often are not only bugs of not yet released features but also express in years old versions you should fix the oldest relevant version. If on the download page beta4 is still promoted, you should fix this and merge your changes up to beta5 and finally to default. In hg this is pretty easy to do:&lt;br /&gt;
 hg update beta4-rc&lt;br /&gt;
 do your changes to the code ....&lt;br /&gt;
 hg commit -m&amp;quot;fixed bug xy ...&amp;quot;&lt;br /&gt;
 hg update beta5-rc&lt;br /&gt;
 hg merge beta4-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge beta5-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
Depending on how important the bug-fix was you might now want to directly tag the new versions:&lt;br /&gt;
 hg tag beta4-rc beta4.X&lt;br /&gt;
 hg tag beta5-rc beta5.Y&lt;br /&gt;
&lt;br /&gt;
=== The mini-features guy ===&lt;br /&gt;
If you have a new small feature to contribute, you do this in &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 do your changes to the code ...&lt;br /&gt;
 hg commit -m&amp;quot;implemented mini-feature xy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== The big-features guy ===&lt;br /&gt;
If you have a new big feature to contribute, you do this in a separate branch starting at &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg branch fooFeature&lt;br /&gt;
work on your feature with a series of&lt;br /&gt;
 change code&lt;br /&gt;
 hg commit -m&amp;quot;changed this and that&amp;quot;&lt;br /&gt;
but while you work on your feature don&amp;#039;t miss to get in sync with the changing &amp;quot;default&amp;quot; by doing as follows:&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg merge -r default&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
once your feature is ready to be used in the game just like other features, merge it into default:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge fooFeature&lt;br /&gt;
 hg commit -m&amp;quot;merged&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
All the above was read only from the point of view of the main glob2-repository. If you have changes worth sharing you must make them public. Easiest is to pick one of the free mercurial hosters. If you go for [https://bitbucket.org bit bucket] you can fork [[User:Giszmo|Giszmo]]&amp;#039;s [https://bitbucket.org/giszmo/glob2 repository].&lt;br /&gt;
With your own bitbucket setup you can check for what would push&lt;br /&gt;
 hg outgoing https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
and push your changes there:&lt;br /&gt;
 hg push https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
&lt;br /&gt;
Now after you checked all is fine you can ask on the glob2 mailing list for someone with write access to the main repo to pull your changes. Asking on the irc is an option, too but for bigger changes you review might take some time and then it is safer to do it via the mailing list.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t forget to change the authors file if it&amp;#039;s your first contribution ;)&lt;br /&gt;
&lt;br /&gt;
If you are a regular contributor you may get write permissions for the central repo from [[User:Nct|Nct]]. You can mail him your username and password at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our &amp;quot;trunk&amp;quot; or default branch is called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
You can try everything with mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg tags&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpful to get information. Try &amp;quot;hg help&amp;quot; for details.&lt;br /&gt;
&lt;br /&gt;
 hg serve //and browsing to localhost:8000&lt;br /&gt;
is very good for a graphical overview of the repository structure. If you prefer using a GUI tool, go for  [http://tortoisehg.bitbucket.org/ Tortoise-HG].&lt;br /&gt;
And you definitely have to set up a merge tool for those case when you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6167</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6167"/>
		<updated>2010-08-21T15:43:24Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
== Browsing the Project Repository ==&lt;br /&gt;
At http://hg.globulation2.org/ you can browse through the repository.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
;hg: To really access a mercurial repository you need mercurial. You can get it from your distribution if you are running Linux or from [http://www.selenic.com/mercurial the mercurial homepage]. An in depth manual of hg you can find [http://hgbook.red-bean.com/read/ here].&lt;br /&gt;
;tortoise-hg: To generally access hg repositories at a file system level you might want to use a GUI. [http://tortoisehg.bitbucket.org/ Tortoise-HG] is just great for that.&lt;br /&gt;
;HGE: The mercurail plugin for Eclipse is another great way to navigate our repository. You need Eclipse (the CDT-version) and can then get HGE by going to help -&amp;gt; install new software... -&amp;gt; Add... -&amp;gt; Location = http://cbes.javaforge.com/update -&amp;gt; checking mercurial eclipse ...&lt;br /&gt;
&lt;br /&gt;
== Getting a Copy of the Mercurial Repository ==&lt;br /&gt;
No matter if you want to contribute with write access or just want to get a read only copy of glob2, you should cd to a directory where you have write permissions and run hg clone:&lt;br /&gt;
 cd ~/my_hg_repositories&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new glob2&lt;br /&gt;
 cd glob2&lt;br /&gt;
The same can be achieved using HGE or tortoise-HG.&lt;br /&gt;
&lt;br /&gt;
== Which revision to use ==&lt;br /&gt;
Having cloned the repository you now have all the history of glob2 at hands. According to your intents you now might want to choose different revisions to jump to and start working on them. Pick from the subsections what most fits your intents:&lt;br /&gt;
&lt;br /&gt;
=== The player ===&lt;br /&gt;
If you want to play against others you need the same &amp;#039;&amp;#039;&amp;#039;major&amp;#039;&amp;#039;&amp;#039; version of glob2 as they have. If they have betaX.4 you should pick some betaX version. You get the latest version in the betaX release candidate branch using the tip of betaX-rc. To get there issue&lt;br /&gt;
 hg update betaX-rc&lt;br /&gt;
&lt;br /&gt;
In rare occasions this version might not work. To get a version that was tagged for being released, check the output of&lt;br /&gt;
 hg tags&lt;br /&gt;
for lines matching betaX.y and update to the highest y:&lt;br /&gt;
 hg update betaX.y&lt;br /&gt;
&lt;br /&gt;
=== The tester ===&lt;br /&gt;
If you want to test the latest not yet released version of glob2 you should update to the tip of the latest release candidate (-rc) branch:&lt;br /&gt;
 hg update betaY-rc&lt;br /&gt;
or if a feature freeze was not yet decided on, you can also test the latest version of the default branch:&lt;br /&gt;
 hg update default&lt;br /&gt;
&lt;br /&gt;
=== The bug fixer ===&lt;br /&gt;
You might have started as a tester but now want to actually touch code. Now it is getting slightly more complicated. Having found a bug and a solution to it means applying the fix to the right revision. As bugs often are not only bugs of not yet released features but also express in years old versions you should fix the oldest relevant version. If on the download page beta4 is still promoted, you should fix this and merge your changes up to beta5 and finally to default. In hg this is pretty easy to do:&lt;br /&gt;
 hg update beta4-rc&lt;br /&gt;
 do your changes to the code ....&lt;br /&gt;
 hg commit -m&amp;quot;fixed bug xy ...&amp;quot;&lt;br /&gt;
 hg update beta5-rc&lt;br /&gt;
 hg merge beta4-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge beta5-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
Depending on how important the bug-fix was you might now want to directly tag the new versions:&lt;br /&gt;
 hg tag beta4-rc beta4.X&lt;br /&gt;
 hg tag beta5-rc beta5.Y&lt;br /&gt;
&lt;br /&gt;
=== The mini-features guy ===&lt;br /&gt;
If you have a new small feature to contribute, you do this in &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 do your changes to the code ...&lt;br /&gt;
 hg commit -m&amp;quot;implemented mini-feature xy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== The big-features guy ===&lt;br /&gt;
If you have a new big feature to contribute, you do this in a separate branch starting at &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg branch fooFeature&lt;br /&gt;
work on your feature with a series of&lt;br /&gt;
 change code&lt;br /&gt;
 hg commit -m&amp;quot;changed this and that&amp;quot;&lt;br /&gt;
but while you work on your feature don&amp;#039;t miss to get in sync with the changing &amp;quot;default&amp;quot; by doing as follows:&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg merge -r default&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
once your feature is ready to be used in the game just like other features, merge it into default:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge fooFeature&lt;br /&gt;
 hg commit -m&amp;quot;merged&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
All the above was read only from the point of view of the main glob2-repository. If you have changes worth sharing you must make them public. Easiest is to pick one of the free mercurial hosters. If you go for [https://bitbucket.org bit bucket] you can fork [[User:Giszmo]]&amp;#039;s [https://bitbucket.org/giszmo/glob2 repository].&lt;br /&gt;
With your own bitbucket setup you can check for what would push&lt;br /&gt;
 hg outgoing https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
and push your changes there:&lt;br /&gt;
 hg push https://bitbucket.org/yourBBNick/glob2&lt;br /&gt;
&lt;br /&gt;
Now after you checked all is fine you can ask on the glob2 mailing list for someone with write access to the main repo to pull your changes. Asking on the irc is an option, too but for bigger changes you review might take some time and then it is safer to do it via the mailing list.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t forget to change the authors file if it&amp;#039;s your first contribution ;)&lt;br /&gt;
&lt;br /&gt;
If you are a regular contributor you may get write permissions for the central repo from [[User:Nct]]. You can mail him your username and password at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our &amp;quot;trunk&amp;quot; or default branch is called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
You can try everything with mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg tags&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpful to get information. Try &amp;quot;hg help&amp;quot; for details.&lt;br /&gt;
&lt;br /&gt;
 hg serve //and browsing to localhost:8000&lt;br /&gt;
is very good for a graphical overview of the repository structure. If you prefer using a GUI tool, go for  [http://tortoisehg.bitbucket.org/ Tortoise-HG].&lt;br /&gt;
And you definitely have to set up a merge tool for those case when you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6166</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6166"/>
		<updated>2010-08-21T15:28:16Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
== Browsing the Project Repository ==&lt;br /&gt;
At http://hg.globulation2.org/ you can browse through the repository.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
;hg: To really access a mercurial repository you need mercurial. You can get it from your distribution if you are running Linux or from [http://www.selenic.com/mercurial the mercurial homepage]. An in depth manual of hg you can find [http://hgbook.red-bean.com/read/ here].&lt;br /&gt;
;tortoise-hg: To generally access hg repositories at a file system level you might want to use a GUI. [http://tortoisehg.bitbucket.org/ Tortoise-HG] is just great for that.&lt;br /&gt;
;HGE: The mercurail plugin for Eclipse is another great way to navigate our repository. You need Eclipse (the CDT-version) and can then get HGE by going to help -&amp;gt; install new software... -&amp;gt; Add... -&amp;gt; Location = http://cbes.javaforge.com/update -&amp;gt; checking mercurial eclipse ...&lt;br /&gt;
&lt;br /&gt;
== Getting a Copy of the Mercurial Repository ==&lt;br /&gt;
No matter if you want to contribute with write access or just want to get a read only copy of glob2, you should cd to a directory where you have write permissions and run hg clone:&lt;br /&gt;
 cd ~/my_hg_repositories&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new glob2&lt;br /&gt;
 cd glob2&lt;br /&gt;
The same can be achieved using HGE or tortoise-HG.&lt;br /&gt;
&lt;br /&gt;
== Which revision to use ==&lt;br /&gt;
Having cloned the repository you now have all the history of glob2 at hands. According to your intents you now might want to choose different revisions to jump to and start working on them. Pick from the subsections what most fits your intents:&lt;br /&gt;
&lt;br /&gt;
=== The player ===&lt;br /&gt;
If you want to play against others you need the same &amp;#039;&amp;#039;&amp;#039;major&amp;#039;&amp;#039;&amp;#039; version of glob2 as they have. If they have betaX.4 you should pick some betaX version. You get the latest version in the betaX release candidate branch using the tip of betaX-rc. To get there issue&lt;br /&gt;
 hg update betaX-rc&lt;br /&gt;
&lt;br /&gt;
In rare occasions this version might not work. To get a version that was tagged for being released, check the output of&lt;br /&gt;
 hg tags&lt;br /&gt;
for lines matching betaX.y and update to the highest y:&lt;br /&gt;
 hg update betaX.y&lt;br /&gt;
&lt;br /&gt;
=== The tester ===&lt;br /&gt;
If you want to test the latest not yet released version of glob2 you should update to the tip of the latest release candidate (-rc) branch:&lt;br /&gt;
 hg update betaY-rc&lt;br /&gt;
or if a feature freeze was not yet decided on, you can also test the latest version of the default branch:&lt;br /&gt;
 hg update default&lt;br /&gt;
&lt;br /&gt;
=== The bug fixer ===&lt;br /&gt;
You might have started as a tester but now want to actually touch code. Now it is getting slightly more complicated. Having found a bug and a solution to it means applying the fix to the right revision. As bugs often are not only bugs of not yet released features but also express in years old versions you should fix the oldest relevant version. If on the download page beta4 is still promoted, you should fix this and merge your changes up to beta5 and finally to default. In hg this is pretty easy to do:&lt;br /&gt;
 hg update beta4-rc&lt;br /&gt;
 do your changes to the code ....&lt;br /&gt;
 hg commit -m&amp;quot;fixed bug xy ...&amp;quot;&lt;br /&gt;
 hg update beta5-rc&lt;br /&gt;
 hg merge beta4-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge beta5-rc&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
Depending on how important the bug-fix was you might now want to directly tag the new versions:&lt;br /&gt;
 hg tag beta4-rc beta4.X&lt;br /&gt;
 hg tag beta5-rc beta5.Y&lt;br /&gt;
&lt;br /&gt;
== The mini-features guy ==&lt;br /&gt;
If you have a new small feature to contribute, you do this in &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 do your changes to the code ...&lt;br /&gt;
 hg commit -m&amp;quot;implemented mini-feature xy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== The big-features guy ==&lt;br /&gt;
If you have a new big feature to contribute, you do this in a separate branch starting at &amp;quot;default&amp;quot;:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg branch fooFeature&lt;br /&gt;
work on your feature with a series of&lt;br /&gt;
 change code&lt;br /&gt;
 hg commit -m&amp;quot;changed this and that&amp;quot;&lt;br /&gt;
but while you work on your feature don&amp;#039;t miss to get in sync with the changing &amp;quot;default&amp;quot; by doing as follows:&lt;br /&gt;
 hg pull&lt;br /&gt;
 hg merge -r default&lt;br /&gt;
 hg commit -m&amp;quot;merge&amp;quot;&lt;br /&gt;
once your feature is ready to be used in the game just like other features, merge it into default:&lt;br /&gt;
 hg update default&lt;br /&gt;
 hg merge fooFeature&lt;br /&gt;
 hg commit -m&amp;quot;merged&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Publishing chanes ==&lt;br /&gt;
All the above was read only from the point of view of the main glob2-repository. If you have changes worth sharing you must make them public. Easiest is to pick one of the free mercurial hosters. &lt;br /&gt;
Member access is performed using the Mercurial over HTTPS method. Access can be given by providing [[User:Nct]] with a username and password by emailing him at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
When you have commited changes locally (hg commit --message=&amp;quot;what you have changed&amp;quot;), you can push the changes to the server using:&lt;br /&gt;
 hg push -r branch https://hg.globulation2.org/glob2-new/&lt;br /&gt;
&lt;br /&gt;
(change &amp;quot;-r branch&amp;quot; to the branch you wish to commit to, for example &amp;quot;-r default&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our &amp;quot;trunk&amp;quot; or default branch is called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
You can try everything with mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg tags&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpful to get information. Try &amp;quot;hg help&amp;quot; for details.&lt;br /&gt;
&lt;br /&gt;
 hg serve //and browsing to localhost:8000&lt;br /&gt;
is very good for a graphical overview of the repository structure. If you prefer using a GUI tool, go for  [http://tortoisehg.bitbucket.org/ Tortoise-HG].&lt;br /&gt;
And you definitely have to set up a merge tool for those case when you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6165</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6165"/>
		<updated>2010-08-21T13:16:15Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
== Browsing the Project Repository ==&lt;br /&gt;
At http://hg.globulation2.org/ you can browse through the repository.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
;hg: To really access a mercurial repository you need mercurial. You can get it from your distribution if you are running Linux or from [http://www.selenic.com/mercurial the mercurial homepage].&lt;br /&gt;
;tortoise-hg: To generally access hg repositories at a file system level you might want to use a GUI. [http://tortoisehg.bitbucket.org/ Tortoise-HG] is just great for that.&lt;br /&gt;
;HGE: The mercurail plugin for Eclipse is another great way to navigate our repository. You need Eclipse (the CDT-version) and can then get HGE by going to help -&amp;gt; install new software... -&amp;gt; Add... -&amp;gt; Location = http://cbes.javaforge.com/update -&amp;gt; checking mercurial eclipse ...&lt;br /&gt;
&lt;br /&gt;
==Getting a Copy of the Mercurial Repository==&lt;br /&gt;
NOTE: FEEL FREE TO VISIT THE MERCURY &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html MAN PAGE ONLINE]&amp;#039;&amp;#039;&amp;#039; since it not available with all shell.&lt;br /&gt;
&lt;br /&gt;
===Anonymous Mercurial Access===&lt;br /&gt;
See [[Download_and_Install#Sources_from_Mercurial|the Mercurial sources download instructions]]&lt;br /&gt;
&lt;br /&gt;
===Pushing changes via HTTPS===&lt;br /&gt;
Member access is performed using the Mercurial over HTTPS method. Access can be given by providing [[User:Nct]] with a username and password by emailing him at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
When you have commited changes locally (hg commit --message=&amp;quot;what you have changed&amp;quot;), you can push the changes to the server using:&lt;br /&gt;
 hg push -r branch https://hg.globulation2.org/glob2-new/&lt;br /&gt;
&lt;br /&gt;
(change &amp;quot;-r branch&amp;quot; to the branch you wish to commit to, for example &amp;quot;-r default&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our &amp;quot;trunk&amp;quot; or default branch is called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
You can try everything with mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg tags&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpful to get information. Try &amp;quot;hg help&amp;quot; for details.&lt;br /&gt;
&lt;br /&gt;
 hg serve //and browsing to localhost:8000&lt;br /&gt;
is very good for a graphical overview of the repository structure. If you prefer using a GUI tool, go for  [http://tortoisehg.bitbucket.org/ Tortoise-HG].&lt;br /&gt;
And you definitely have to set up a merge tool for those case when you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6164</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6164"/>
		<updated>2010-08-21T12:56:50Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* A quick overview of Mercurial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
==Browsing Globulation Project Repository using Mercurial system==&lt;br /&gt;
NOW a cross-platform software are available to get a powerful GUI -Graphical User Interface- it&amp;#039;s call HgTurtoise [http://tortoisehg.bitbucket.org/ More information there].&lt;br /&gt;
&lt;br /&gt;
You can Set HgTurtoise with the parameters below.HgTurtoise seems more complicated than&lt;br /&gt;
broswing the web, but the Branch Graphic representation is exelent, and really a Must have on MS_Windows_O.S.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can visualize with the &amp;#039;&amp;#039;Mercurial software&amp;#039;&amp;#039; the Globulation project repository, even you can do it by browsing the web.This will gives you a picture of the current status of the source files. You may also view the complete histories of any file in the repository as well as differences among two versions:&lt;br /&gt;
* http://hg.globulation2.org/&lt;br /&gt;
&lt;br /&gt;
==Getting a Copy of the Mercurial Repository==&lt;br /&gt;
NOTE: FEEL FREE TO VISIT THE MERCURY &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html MAN PAGE ONLINE]&amp;#039;&amp;#039;&amp;#039; since it not available with all shell.&lt;br /&gt;
&lt;br /&gt;
===Anonymous Mercurial Access===&lt;br /&gt;
See [[Download_and_Install#Sources_from_Mercurial|the Mercurial sources download instructions]]&lt;br /&gt;
&lt;br /&gt;
===Pushing changes via HTTPS===&lt;br /&gt;
Member access is performed using the Mercurial over HTTPS method. Access can be given by providing [[User:Nct]] with a username and password by emailing him at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
When you have commited changes locally (hg commit --message=&amp;quot;what you have changed&amp;quot;), you can push the changes to the server using:&lt;br /&gt;
 hg push -r branch https://hg.globulation2.org/glob2-new/&lt;br /&gt;
&lt;br /&gt;
(change &amp;quot;-r branch&amp;quot; to the branch you wish to commit to, for example &amp;quot;-r default&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our &amp;quot;trunk&amp;quot; or default branch is called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
You can try everything with mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg tags&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpful to get information. Try &amp;quot;hg help&amp;quot; for details.&lt;br /&gt;
&lt;br /&gt;
 hg serve //and browsing to localhost:8000&lt;br /&gt;
is very good for a graphical overview of the repository structure. If you prefer using a GUI tool, go for  [http://tortoisehg.bitbucket.org/ Tortoise-HG].&lt;br /&gt;
And you definitely have to set up a merge tool for those case when you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mercurial&amp;diff=6163</id>
		<title>Mercurial</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mercurial&amp;diff=6163"/>
		<updated>2010-08-21T12:38:29Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Browsing Globulation Project Repository using Mercurial system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
==Browsing Globulation Project Repository using Mercurial system==&lt;br /&gt;
NOW a cross-platform software are available to get a powerful GUI -Graphical User Interface- it&amp;#039;s call HgTurtoise [http://tortoisehg.bitbucket.org/ More information there].&lt;br /&gt;
&lt;br /&gt;
You can Set HgTurtoise with the parameters below.HgTurtoise seems more complicated than&lt;br /&gt;
broswing the web, but the Branch Graphic representation is exelent, and really a Must have on MS_Windows_O.S.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can visualize with the &amp;#039;&amp;#039;Mercurial software&amp;#039;&amp;#039; the Globulation project repository, even you can do it by browsing the web.This will gives you a picture of the current status of the source files. You may also view the complete histories of any file in the repository as well as differences among two versions:&lt;br /&gt;
* http://hg.globulation2.org/&lt;br /&gt;
&lt;br /&gt;
==Getting a Copy of the Mercurial Repository==&lt;br /&gt;
NOTE: FEEL FREE TO VISIT THE MERCURY &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html MAN PAGE ONLINE]&amp;#039;&amp;#039;&amp;#039; since it not available with all shell.&lt;br /&gt;
&lt;br /&gt;
===Anonymous Mercurial Access===&lt;br /&gt;
See [[Download_and_Install#Sources_from_Mercurial|the Mercurial sources download instructions]]&lt;br /&gt;
&lt;br /&gt;
===Pushing changes via HTTPS===&lt;br /&gt;
Member access is performed using the Mercurial over HTTPS method. Access can be given by providing [[User:Nct]] with a username and password by emailing him at stephane [at] magnenat [dot] net.&lt;br /&gt;
&lt;br /&gt;
When you have commited changes locally (hg commit --message=&amp;quot;what you have changed&amp;quot;), you can push the changes to the server using:&lt;br /&gt;
 hg push -r branch https://hg.globulation2.org/glob2-new/&lt;br /&gt;
&lt;br /&gt;
(change &amp;quot;-r branch&amp;quot; to the branch you wish to commit to, for example &amp;quot;-r default&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Mercurial Newbies==&lt;br /&gt;
If you&amp;#039;ve never used Mercurial, you should read some documentation about it; a useful URL is http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart. Using Mercurial is not complex but you have to understand what is going on. The best way to start is to ask a friend to show you the way, or pop onto the [irc://irc.globulation2.org/glob2 glob2 development] IRC channel and ask there.&lt;br /&gt;
===A quick overview of Mercurial===&lt;br /&gt;
Basically you have to know that there is not total order on a mercurial repository. Each revision except the initial revision has at least one parent. Different revisions can have the same parent(s). A revision will have more than one parent, if and only if it is a merge of those parents.&lt;br /&gt;
&lt;br /&gt;
If two or more revisions share a parent, we have infact different branches in the repository.  The new mercurial feature allows to give a revision a sticky tag that is past to almost all its children. Exeptions are merges.  If you merge branch A into branch B, this revision will belong to branch B.  So when you merge the default branch into a development branch, the result will belong to the development branch.  This is good because you can keep track of approved changes, during your development now and then.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*A tag name is associated with a revision ID number.&lt;br /&gt;
*A branch name should represent the &amp;#039;&amp;#039;&amp;#039;tipmost&amp;#039;&amp;#039;&amp;#039; revision of that branch.&lt;br /&gt;
*The special tag &amp;quot;&amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039;&amp;quot; is &amp;#039;&amp;#039;&amp;#039;always identifies the most recent revision&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Branches might have names, unless you give them a name.Their names don&amp;#039;t have to be unique but it is strengthy recommended to don&amp;#039;t use an already given name branch to another. So multiple branches were supported all the time.  The new feature just allows to name them. You can put the branchname everywhere you can put a revision number. So all commands that have &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;-rev&amp;#039;&amp;#039;&amp;#039;&amp;#039; option accept a branchname too. Mercurial will then search the latest revision in that branch and path its number to the command.  (At least that&amp;#039;s what I think it does.)&lt;br /&gt;
&lt;br /&gt;
{{message|HINT for Tags name &amp;amp; branch|Since tag names have priority over branch names during revision lookup, using an existing branch name as a tag name is discouraged.&lt;br /&gt;
Tag and branch names must not contain the &amp;quot;:&amp;quot; character.Note that because &amp;#039;&amp;#039;&amp;#039;revision numbers&amp;#039;&amp;#039;&amp;#039; may be different in different repository clones, the branch tip may be different in different cloned repositories.&lt;br /&gt;
&lt;br /&gt;
For Further details please visit the &amp;#039;&amp;#039;&amp;#039;[http://www.selenic.com/mercurial/hg.1.html#tag HG MAN PAGE]&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
If every branch (named or not) has the same &amp;quot;latest revision&amp;quot;, our repository will have exactly 1 head. Otherwise we will have more heads and mercurial will suppose that we merge the heads.  But most of the time this would be inappropriate, and we shouldn&amp;#039;t do it.&lt;br /&gt;
&lt;br /&gt;
The latest revision is always called tip, and mercurial defaults to think that we want to work on it.  This is also very sad, if it does belong to an other branch. I really recomment that you only pull the branch you want to use. You can do this, because the clone and pull commands have a &amp;#039;&amp;#039;&amp;#039;&amp;#039;-r&amp;#039;&amp;#039;&amp;#039;&amp;#039; option.  I pull the whole repository on my computer and than pull the branches that I want to work on, from that local repository to different working repositories.  I suggest everyone should do this. So there is one incoming repository, one or more working repository and one outgoing repository locally on my computer.&lt;br /&gt;
&lt;br /&gt;
Our default branch I called &amp;quot;&amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;&amp;quot;.  &lt;br /&gt;
Glob2 players should always pull the default branch. &lt;br /&gt;
You can try everything mercurial locally before pushing to the remote repository.&lt;br /&gt;
 hg help&lt;br /&gt;
 hg help &amp;lt;command&amp;gt;&lt;br /&gt;
 hg log&lt;br /&gt;
 hg diff&lt;br /&gt;
 hg branch&lt;br /&gt;
 hg heads&lt;br /&gt;
 hg incoming&lt;br /&gt;
 hg outgoing&lt;br /&gt;
 hg status&lt;br /&gt;
are very helpfull.&lt;br /&gt;
&lt;br /&gt;
Please look into the extentions.&lt;br /&gt;
&lt;br /&gt;
 hg view&lt;br /&gt;
is very good for a graphical overview of the repository structure, though it seems not to display the branch names.I remember to all that a new software are available we help us to get an overview, using an GUI, it&amp;#039;s a cross-platform called [http://tortoisehg.bitbucket.org/ HgTurtoise], and it s friendlier than the command line use.&lt;br /&gt;
And you definitely have to set up a merge tool for those case when&lt;br /&gt;
you have to merge manually.&lt;br /&gt;
&lt;br /&gt;
Branching of should look like this:&lt;br /&gt;
&lt;br /&gt;
*Branch from a revision other than the tip of your local repository:&lt;br /&gt;
 hg revert --all -r &amp;lt;revision from which you want to branch of&amp;gt;&lt;br /&gt;
 hg branch &amp;lt;branchname&amp;gt;&lt;br /&gt;
 hg commit -m &amp;quot;message&amp;quot;&lt;br /&gt;
*Cloning from a branch:&lt;br /&gt;
&amp;#039;&amp;#039;Using -r/--rev (or &amp;#039;clone src#rev dest&amp;#039;) implies --pull, even for local source&amp;#039;&amp;#039;. repositories.&lt;br /&gt;
 hg clone -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt; &amp;lt;name that you want your repository to have&amp;gt;&lt;br /&gt;
*Pulling from a branch:&lt;br /&gt;
&amp;#039;Ppulling is implicitly engage when -r  option is set within the clone command.&amp;#039;&amp;#039;&lt;br /&gt;
 hg pull -r &amp;lt;branchname&amp;gt; &amp;lt;location of the repository&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=5834</id>
		<title>Mingw compilation</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=5834"/>
		<updated>2010-07-26T20:38:29Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to compile Globulation 2 on windows using [http://www.mingw.org/ mingw].&lt;br /&gt;
&lt;br /&gt;
== Installing required software for tutorial ==&lt;br /&gt;
=== Setting up Python, Scons, Mercurial, and NSIS ===&lt;br /&gt;
:* Download and install [http://www.python.org/download/ Python] into the directory &amp;quot;C:\Python26&amp;quot; (default install is Python26, don&amp;#039;t change this)&lt;br /&gt;
:* Download and install [http://www.scons.org/download.php Scons] into the same directory as the python install (C:\Python26\)&lt;br /&gt;
:* Download and install [http://mercurial.berkwood.com/ stable Mercurial] locally so the command hg will work. When you get to the end of the install, make sure you check &amp;quot;add mercurial to your computers search path&amp;quot; or something similar.&lt;br /&gt;
&lt;br /&gt;
(To create a windows installer)&lt;br /&gt;
:*Download and install [http://nsis.sourceforge.net/Download NSIS] into all its default installation folder &amp;quot;C:\Program Files\NSIS\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting up MinGW and MSYS ===&lt;br /&gt;
:*Download and install [http://downloads.sourceforge.net/mingw/MinGW-5.1.4.exe MinGW-5.1.4.exe] into the directory c:\mingw (lower case). During installation, select &amp;quot;Current&amp;quot; when asked what version, and then and select the MinGW base tools and g++ compiler packages only&lt;br /&gt;
:*And, download and install [http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe MSYS-1.0.10.exe] into the directory c:\msys\1.0\ (lower case).  At the end of the installation, it will ask you if you want to continue with the post-install. Select yes, and yes again when it ask if you have mingw installed. When it ask you to indicate the directory where it is installed, type in c:/mingw  (yes, with a forward slash as the program prefers it that way).&lt;br /&gt;
:*Open msys by double clicking the desktop icon, run the following, then be sure to close the window so it takes effect:&lt;br /&gt;
 echo &amp;quot;c:/mingw /mingw&amp;quot; &amp;gt; /etc/fstab&lt;br /&gt;
=== Compiling Prerequisites ===&lt;br /&gt;
:*Download [http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz2 glob2_required_libs_mingw-scons.tar.bz2] and put it in the home directory of msys (c:\msys\1.0\home\XXX\ where XXX is the username)&lt;br /&gt;
:*Double click the MSYS icon that has been placed on your desktop during MSYS&amp;#039;s installation.&lt;br /&gt;
:*Go in the directory where you put the glob2_required_libs_mingw-scons.tar.bz2 (for example cd ~) and untar the libraries using the command below. This process could take a while:&lt;br /&gt;
 tar jxf glob2_required_libs_mingw-scons.tar.bz2 -C /&lt;br /&gt;
&lt;br /&gt;
==Compiling Globulation 2==&lt;br /&gt;
===Step 1: Preparing for a compile===&lt;br /&gt;
====Compiling from Released source code====&lt;br /&gt;
:*Download and extract the release to c:\msys\1.0\home\XXX\ (where XXX is the username), then run (changing the version numbers):&lt;br /&gt;
mv glob2-x.x.xx glob2_source&lt;br /&gt;
====Compiling from Mercurial source files====&lt;br /&gt;
* Download Globulation 2 from mercurial&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new glob2&lt;br /&gt;
: The above command gets you all the history of glob2 back to November 2001 when it all began.&lt;br /&gt;
* Pick a version you want to compile&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg tags&lt;br /&gt;
: these commands give you an overview of what branches and tags exist.&lt;br /&gt;
: Tags are used to mark certain versions like when glob2 publishes a new released. beta4.5 for example is the 5th version of the beta-4 series of releases. This is better and more stable than the beta4.4 but should not desync against beta4.1. If you only want to play glob2 beta4, use the latest tag beta4.whatever. &amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039; is a special tag. It is the revision last committed to the repository. In general this is not what you want but you get it by default.&lt;br /&gt;
: Branches are used to mark a sequence of revisions that are not necessarily all stable. Somewhere after beta4.5 on the beta4-rc branch there may be versions that don&amp;#039;t compile. If you want to help on a beta4.6 you would need to get the branch beta4-rc. &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039; is the main branch. If you want to play this is not the branch you want. If you want to fix bugs, this is not what you want as bugs get fixed in the earliest supported branches (those with an -rc). If you want to implement new features that you are sure to finish do it in &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;. If your feature is complex, use &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039; but branch off a feature branch (hg branch my-complex-feature).&lt;br /&gt;
* update to the right revision.&lt;br /&gt;
 hg update -C \[branch name or tag name you picked above\]&lt;br /&gt;
&lt;br /&gt;
===Step 2: actually compiling===&lt;br /&gt;
:*Start compiling Globulation 2. Don&amp;#039;t worry about the warnings. If something is wrong, it will grind to a halt and it will let you know why. To compile, run (inside the folder glob2):&lt;br /&gt;
 scons&lt;br /&gt;
:*Once compiling has finished, run the following to prepare Globulation 2 for testing:&lt;br /&gt;
 cp -a /local/bin/SDL.dll /local/lib/*.dll .&lt;br /&gt;
 cp -a ./src/glob2.exe .&lt;br /&gt;
:*Run glob2.exe from the glob2_source directory and play :)&lt;br /&gt;
&lt;br /&gt;
===Building a Globulation 2 NSIS installer===&lt;br /&gt;
:*In MSYS, run the following codes to compile a windows installable exe file:&lt;br /&gt;
 cd glob2_source&lt;br /&gt;
 cd windows&lt;br /&gt;
 glob2_make_win32.sh&lt;br /&gt;
:*If all things go well, an exe ready for installation on windows computers is now ready within the windows folder. Test it (install and play), and if it works, send it to your friends ;)&lt;br /&gt;
&lt;br /&gt;
==Possible Issues==&lt;br /&gt;
1. Make sure you have no hidden GNU-GCC installed somewhere. GCC is for example included in the FreePascal-Compiler. (You won&amp;#039;t find any Lib anymore if another GCC is activ.)&lt;br /&gt;
&lt;br /&gt;
2. Make sure path to GCC is set in Path Enviroment Variable. The Scons-Script just aborts (can&amp;#039;t find libSDL) if it is not.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
That concludes this Mingw compilation tutorial. If you have any problems, please write a bug report and one of the Windows maintainers should be able to help you. More information on bug reports can be found at the [[Bug Reports]] page. Happy compiling.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=5833</id>
		<title>Mingw compilation</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=5833"/>
		<updated>2010-07-26T20:36:44Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Compiling from Mercurial source files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to compile Globulation 2 on windows using [http://www.mingw.org/ mingw].&lt;br /&gt;
&lt;br /&gt;
== Installing required software for tutorial ==&lt;br /&gt;
=== Setting up Python, Scons, Mercurial, and NSIS ===&lt;br /&gt;
:* Download and install [http://www.python.org/download/ Python] into the directory &amp;quot;C:\Python26&amp;quot; (default install is Python26, don&amp;#039;t change this)&lt;br /&gt;
:* Download and install [http://www.scons.org/download.php Scons] into the same directory as the python install (C:\Python26\)&lt;br /&gt;
:* Download and install [http://mercurial.berkwood.com/ stable Mercurial] locally so the command hg will work. When you get to the end of the install, make sure you check &amp;quot;add mercurial to your computers search path&amp;quot; or something similar.&lt;br /&gt;
&lt;br /&gt;
(To create a windows installer)&lt;br /&gt;
:*Download and install [http://nsis.sourceforge.net/Download NSIS] into all its default installation folder &amp;quot;C:\Program Files\NSIS\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting up MinGW and MSYS ===&lt;br /&gt;
:*Download and install [http://downloads.sourceforge.net/mingw/MinGW-5.1.4.exe MinGW-5.1.4.exe] into the directory c:\mingw (lower case). During installation, select &amp;quot;Current&amp;quot; when asked what version, and then and select the MinGW base tools and g++ compiler packages only&lt;br /&gt;
:*And, download and install [http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe MSYS-1.0.10.exe] into the directory c:\msys\1.0\ (lower case).  At the end of the installation, it will ask you if you want to continue with the post-install. Select yes, and yes again when it ask if you have mingw installed. When it ask you to indicate the directory where it is installed, type in c:/mingw  (yes, with a forward slash as the program prefers it that way).&lt;br /&gt;
:*Open msys by double clicking the desktop icon, run the following, then be sure to close the window so it takes effect:&lt;br /&gt;
 echo &amp;quot;c:/mingw /mingw&amp;quot; &amp;gt; /etc/fstab&lt;br /&gt;
=== Compiling Prerequisites ===&lt;br /&gt;
:*Download [http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz2 glob2_required_libs_mingw-scons.tar.bz2] and put it in the home directory of msys (c:\msys\1.0\home\XXX\ where XXX is the username)&lt;br /&gt;
:*Double click the MSYS icon that has been placed on your desktop during MSYS&amp;#039;s installation.&lt;br /&gt;
:*Go in the directory where you put the glob2_required_libs_mingw-scons.tar.bz2 (for example cd ~) and untar the libraries using the command below. This process could take a while:&lt;br /&gt;
 tar jxf glob2_required_libs_mingw-scons.tar.bz2 -C /&lt;br /&gt;
&lt;br /&gt;
==Compiling Globulation 2==&lt;br /&gt;
===Step 1: Preparing for a compile===&lt;br /&gt;
====Compiling from Released source code====&lt;br /&gt;
:*Download and extract the release to c:\msys\1.0\home\XXX\ (where XXX is the username), then run (changing the version numbers):&lt;br /&gt;
mv glob2-x.x.xx glob2_source&lt;br /&gt;
====Compiling from Mercurial source files====&lt;br /&gt;
* Download Globulation 2 from mercurial&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new glob2&lt;br /&gt;
: The above command gets you all the history of glob2 back to November 2001 when it all began.&lt;br /&gt;
* Pick a version you want to compile&lt;br /&gt;
 cd glob2&lt;br /&gt;
 hg branches&lt;br /&gt;
 hg tags&lt;br /&gt;
: these commands give you an overview of what branches and tags exist.&lt;br /&gt;
: Tags are used to mark certain versions like when glob2 publishes a new released. beta4.5 for example is the 5th version of the beta-4 series of releases. This is better and more stable than the beta4.4 but should not desync against beta4.1. If you only want to play glob2 beta4, use the latest tag beta4.whatever. &amp;#039;&amp;#039;&amp;#039;tip&amp;#039;&amp;#039;&amp;#039; is a special tag. It is the revision last committed to the repository. In general this is not what you want but you get it by default.&lt;br /&gt;
: Branches are used to mark a sequence of revisions that are not necessarily all stable. Somewhere after beta4.5 on the beta4-rc branch there may be versions that don&amp;#039;t compile. If you want to help on a beta4.6 you would need to get the branch beta4-rc. &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039; is the main branch. If you want to play this is not the branch you want. If you want to fix bugs, this is not what you want as bugs get fixed in the earliest supported branches (those with an -rc). If you want to implement new features that you are sure to finish do it in &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039;. If your feature is complex, use &amp;#039;&amp;#039;&amp;#039;default&amp;#039;&amp;#039;&amp;#039; but branch off a feature branch (hg branch my-complex-feature).&lt;br /&gt;
* update to the right revision.&lt;br /&gt;
 hg update -C \[branch name or tag name you picked above\]&lt;br /&gt;
&lt;br /&gt;
===Step 2: Continue compiling===&lt;br /&gt;
:*Start compiling Globulation 2. Don&amp;#039;t worry about the warnings. If something is wrong, it will grind to a halt and it will let you know why. To compile, run (inside glob2_source):&lt;br /&gt;
 scons&lt;br /&gt;
:*Once compiling has finished, run the following to prepare Globulation 2 for testing:&lt;br /&gt;
 cp -a /local/bin/SDL.dll /local/lib/*.dll .&lt;br /&gt;
 cp -a ./src/glob2.exe .&lt;br /&gt;
:*Run glob2.exe from the glob2_source directory and play :)&lt;br /&gt;
&lt;br /&gt;
===Building a Globulation 2 NSIS installer===&lt;br /&gt;
:*In MSYS, run the following codes to compile a windows installable exe file:&lt;br /&gt;
 cd glob2_source&lt;br /&gt;
 cd windows&lt;br /&gt;
 glob2_make_win32.sh&lt;br /&gt;
:*If all things go well, an exe ready for installation on windows computers is now ready within the windows folder. Test it (install and play), and if it works, send it to your friends ;)&lt;br /&gt;
&lt;br /&gt;
==Possible Issues==&lt;br /&gt;
1. Make sure you have no hidden GNU-GCC installed somewhere. GCC is for example included in the FreePascal-Compiler. (You won&amp;#039;t find any Lib anymore if another GCC is activ.)&lt;br /&gt;
&lt;br /&gt;
2. Make sure path to GCC is set in Path Enviroment Variable. The Scons-Script just aborts (can&amp;#039;t find libSDL) if it is not.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
That concludes this Mingw compilation tutorial. If you have any problems, please write a bug report and one of the Windows maintainers should be able to help you. More information on bug reports can be found at the [[Bug Reports]] page. Happy compiling.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=5832</id>
		<title>Mingw compilation</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Mingw_compilation&amp;diff=5832"/>
		<updated>2010-07-26T20:13:59Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to compile Globulation 2 on windows using [http://www.mingw.org/ mingw].&lt;br /&gt;
&lt;br /&gt;
== Installing required software for tutorial ==&lt;br /&gt;
=== Setting up Python, Scons, Mercurial, and NSIS ===&lt;br /&gt;
:* Download and install [http://www.python.org/download/ Python] into the directory &amp;quot;C:\Python26&amp;quot; (default install is Python26, don&amp;#039;t change this)&lt;br /&gt;
:* Download and install [http://www.scons.org/download.php Scons] into the same directory as the python install (C:\Python26\)&lt;br /&gt;
:* Download and install [http://mercurial.berkwood.com/ stable Mercurial] locally so the command hg will work. When you get to the end of the install, make sure you check &amp;quot;add mercurial to your computers search path&amp;quot; or something similar.&lt;br /&gt;
&lt;br /&gt;
(To create a windows installer)&lt;br /&gt;
:*Download and install [http://nsis.sourceforge.net/Download NSIS] into all its default installation folder &amp;quot;C:\Program Files\NSIS\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting up MinGW and MSYS ===&lt;br /&gt;
:*Download and install [http://downloads.sourceforge.net/mingw/MinGW-5.1.4.exe MinGW-5.1.4.exe] into the directory c:\mingw (lower case). During installation, select &amp;quot;Current&amp;quot; when asked what version, and then and select the MinGW base tools and g++ compiler packages only&lt;br /&gt;
:*And, download and install [http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe MSYS-1.0.10.exe] into the directory c:\msys\1.0\ (lower case).  At the end of the installation, it will ask you if you want to continue with the post-install. Select yes, and yes again when it ask if you have mingw installed. When it ask you to indicate the directory where it is installed, type in c:/mingw  (yes, with a forward slash as the program prefers it that way).&lt;br /&gt;
:*Open msys by double clicking the desktop icon, run the following, then be sure to close the window so it takes effect:&lt;br /&gt;
 echo &amp;quot;c:/mingw /mingw&amp;quot; &amp;gt; /etc/fstab&lt;br /&gt;
=== Compiling Prerequisites ===&lt;br /&gt;
:*Download [http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz2 glob2_required_libs_mingw-scons.tar.bz2] and put it in the home directory of msys (c:\msys\1.0\home\XXX\ where XXX is the username)&lt;br /&gt;
:*Double click the MSYS icon that has been placed on your desktop during MSYS&amp;#039;s installation.&lt;br /&gt;
:*Go in the directory where you put the glob2_required_libs_mingw-scons.tar.bz2 (for example cd ~) and untar the libraries using the command below. This process could take a while:&lt;br /&gt;
 tar jxf glob2_required_libs_mingw-scons.tar.bz2 -C /&lt;br /&gt;
&lt;br /&gt;
==Compiling Globulation 2==&lt;br /&gt;
===Step 1: Preparing for a compile===&lt;br /&gt;
====Compiling from Released source code====&lt;br /&gt;
:*Download and extract the release to c:\msys\1.0\home\XXX\ (where XXX is the username), then run (changing the version numbers):&lt;br /&gt;
mv glob2-x.x.xx glob2_source&lt;br /&gt;
====Compiling from Mercurial source files====&lt;br /&gt;
:*Download Globulation 2 from mercurial:&lt;br /&gt;
 hg clone http://hg.globulation2.org/glob2-new&lt;br /&gt;
:*Extract the master (the stable branch) from the mercurial download (this can also be used to extract other branches, such as beta4-rc):&lt;br /&gt;
 hg clone -r default glob2-new glob2_source&lt;br /&gt;
:*To compile the latest code, run:&lt;br /&gt;
 cd glob2_source&lt;br /&gt;
 hg update -C tip&lt;br /&gt;
&lt;br /&gt;
===Step 2: Continue compiling===&lt;br /&gt;
:*Start compiling Globulation 2. Don&amp;#039;t worry about the warnings. If something is wrong, it will grind to a halt and it will let you know why. To compile, run (inside glob2_source):&lt;br /&gt;
 scons&lt;br /&gt;
:*Once compiling has finished, run the following to prepare Globulation 2 for testing:&lt;br /&gt;
 cp -a /local/bin/SDL.dll /local/lib/*.dll .&lt;br /&gt;
 cp -a ./src/glob2.exe .&lt;br /&gt;
:*Run glob2.exe from the glob2_source directory and play :)&lt;br /&gt;
&lt;br /&gt;
===Building a Globulation 2 NSIS installer===&lt;br /&gt;
:*In MSYS, run the following codes to compile a windows installable exe file:&lt;br /&gt;
 cd glob2_source&lt;br /&gt;
 cd windows&lt;br /&gt;
 glob2_make_win32.sh&lt;br /&gt;
:*If all things go well, an exe ready for installation on windows computers is now ready within the windows folder. Test it (install and play), and if it works, send it to your friends ;)&lt;br /&gt;
&lt;br /&gt;
==Possible Issues==&lt;br /&gt;
1. Make sure you have no hidden GNU-GCC installed somewhere. GCC is for example included in the FreePascal-Compiler. (You won&amp;#039;t find any Lib anymore if another GCC is activ.)&lt;br /&gt;
&lt;br /&gt;
2. Make sure path to GCC is set in Path Enviroment Variable. The Scons-Script just aborts (can&amp;#039;t find libSDL) if it is not.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
That concludes this Mingw compilation tutorial. If you have any problems, please write a bug report and one of the Windows maintainers should be able to help you. More information on bug reports can be found at the [[Bug Reports]] page. Happy compiling.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Beta5_TODO&amp;diff=5823</id>
		<title>Beta5 TODO</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Beta5_TODO&amp;diff=5823"/>
		<updated>2010-07-22T12:20:55Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things left to do prior to releasing beta5:&lt;br /&gt;
* Beta5 is in feature freeze so any new features will earliest go into beta6&lt;br /&gt;
* Beta5 is still open for translations and slight modifications in the map files&lt;br /&gt;
* The new feature &amp;quot;replays&amp;quot; produces wrong replays for network games that go unnoticed by the player. Also version changes don&amp;#039;t invalidate old replays so they might or might not replay correctly. As replays is the most noticeable new feature I don&amp;#039;t see a point in releasing beta5 without replays. A prominent Warning when starting a replay about those bugs might be an option in my opinion as we need to show progress.&lt;br /&gt;
* there was something more. please spend an hour on reading the most recent mailing list posts prior to releasing beta5!&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Beta5_TODO&amp;diff=5822</id>
		<title>Beta5 TODO</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Beta5_TODO&amp;diff=5822"/>
		<updated>2010-07-22T12:17:27Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: New page: Things left to do prior to releasing beta5: * Beta5 is in feature freeze so any new features will earliest go into beta6 * Beta5 is still open for translations and slight modifications in ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things left to do prior to releasing beta5:&lt;br /&gt;
* Beta5 is in feature freeze so any new features will earliest go into beta6&lt;br /&gt;
* Beta5 is still open for translations and slight modifications in the map files&lt;br /&gt;
* The new feature &amp;quot;replays&amp;quot; produces wrong replays for network games that go unnoticed&lt;br /&gt;
* there was something more. please spend an hour on reading the most recent mailing list posts prior to releasing beta5!&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5779</id>
		<title>Solution to the guard area distribution problem</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5779"/>
		<updated>2010-06-06T22:54:50Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Difficulties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The problem ==&lt;br /&gt;
Guard areas have the problem that they share one common gradient per team. This results in all the warriors going to the closest area ignoring the distant ones.&lt;br /&gt;
&lt;br /&gt;
== A possible solution ==&lt;br /&gt;
In order to get a more even distribution but at the same time keep the extra [[Gradients|gradient]] count low, the guard area gradient should be split up into several guard &amp;#039;&amp;#039;&amp;#039;region&amp;#039;&amp;#039;&amp;#039; gradients. One for each connected patch of guard areas. Each such region would need to get some attributes such as:&lt;br /&gt;
* count of warriors assigned&lt;br /&gt;
* size&lt;br /&gt;
* saturation = count of warriors assigned / size&lt;br /&gt;
warriors could take the saturation into account when picking a gradient.&lt;br /&gt;
&lt;br /&gt;
== Difficulties ==&lt;br /&gt;
Of course it will be non-trivial to optimize distances so that east-warriors don&amp;#039;t get assigned to west-regions while west-warriors walk to the east-regions and at the same time guarantee distant regions to get saturated.&lt;br /&gt;
&lt;br /&gt;
Another problem would be the number of extra gradients if players paint small spots of blue along their defence line.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Stupidly long paths through simply picking the least saturated region in range would still be better than what we have now in b4. Going for the above approach would be a first step to turn the so called guard areas into actual guard areas.&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5778</id>
		<title>Solution to the guard area distribution problem</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5778"/>
		<updated>2010-06-06T22:46:19Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The problem ==&lt;br /&gt;
Guard areas have the problem that they share one common gradient per team. This results in all the warriors going to the closest area ignoring the distant ones.&lt;br /&gt;
&lt;br /&gt;
== A possible solution ==&lt;br /&gt;
In order to get a more even distribution but at the same time keep the extra [[Gradients|gradient]] count low, the guard area gradient should be split up into several guard &amp;#039;&amp;#039;&amp;#039;region&amp;#039;&amp;#039;&amp;#039; gradients. One for each connected patch of guard areas. Each such region would need to get some attributes such as:&lt;br /&gt;
* count of warriors assigned&lt;br /&gt;
* size&lt;br /&gt;
* saturation = count of warriors assigned / size&lt;br /&gt;
warriors could take the saturation into account when picking a gradient.&lt;br /&gt;
&lt;br /&gt;
== Difficulties ==&lt;br /&gt;
Of course it will be non-trivial to optimize distances so that east-warriors don&amp;#039;t get assigned to west-regions while west-warriors walk to the east-regions and at the same time guarantee distant regions to get saturated.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Stupidly long paths through simply picking the least saturated region in range would still be better than what we have now in b4. Going for the above approach would be a first step to turn the so called guard areas into actual guard areas.&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5777</id>
		<title>Solution to the guard area distribution problem</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5777"/>
		<updated>2010-06-06T22:45:46Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* A possible solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The problem ==&lt;br /&gt;
Guard areas have the problem that they share one common gradient per team. This results in all the warriors going to the closest area ignoring the distant ones.&lt;br /&gt;
&lt;br /&gt;
== A possible solution ==&lt;br /&gt;
In order to get a more even distribution but at the same time keep the extra [[Gradients|gradient]] count low, the guard area gradient should be split up into several guard &amp;#039;&amp;#039;&amp;#039;region&amp;#039;&amp;#039;&amp;#039; gradients. One for each connected patch of guard areas. Each such region would need to get some attributes such as:&lt;br /&gt;
* count of warriors assigned&lt;br /&gt;
* size&lt;br /&gt;
* saturation = count of warriors assigned / size&lt;br /&gt;
warriors could take the saturation into account when picking a gradient.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
Of course it will be non-trivial to optimize distances so that east-warriors don&amp;#039;t get assigned to west-regions while west-warriors walk to the east-regions and at the same time guarantee distant regions to get saturated.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Stupidly long paths through simply picking the least saturated region in range would still be better than what we have now in b4. Going for the above approach would be a first step to turn the so called guard areas into actual guard areas.&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5776</id>
		<title>Solution to the guard area distribution problem</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Solution_to_the_guard_area_distribution_problem&amp;diff=5776"/>
		<updated>2010-06-06T22:42:47Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: New page: == The problem == Guard areas have the problem that they share one common gradient per team. This results in all the warriors going to the closest area ignoring the distant ones.  == A pos...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The problem ==&lt;br /&gt;
Guard areas have the problem that they share one common gradient per team. This results in all the warriors going to the closest area ignoring the distant ones.&lt;br /&gt;
&lt;br /&gt;
== A possible solution ==&lt;br /&gt;
In order to get a more even distribution but at the same time keep the extra [[Gradients|gradient]] count low, the guard area gradient should be split up into several guard &amp;#039;&amp;#039;&amp;#039;region&amp;#039;&amp;#039;&amp;#039; gradients. One for each connected patch of guard areas. Each such region would need to get some attributes such as:&lt;br /&gt;
* count of warriors assigned&lt;br /&gt;
* size&lt;br /&gt;
so those regions have a saturation (warrior-count / size) that warriors could take into account when picking a gradient. Of course it will be non-trivial to optimize distances so that east-warriors don&amp;#039;t get assigned to west-regions while west-warriors walk to the east-regions while at the same time guarantee distant regions to get saturated but stupidly long paths through simply picking the least saturated region in range would still be better than what we have now in b4.&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=Gradients&amp;diff=5775</id>
		<title>Gradients</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=Gradients&amp;diff=5775"/>
		<updated>2010-06-06T22:31:45Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Glob2 directs globs around by means of gradients. For example, to find the nearest wheat field a glob moves to the adjacent square with the highest wheat gradient repeatedly until it hits a wheat square. This is referred to as a &amp;quot;hill-climbing&amp;quot; algorithm.&lt;br /&gt;
&lt;br /&gt;
Each cell on the map has a &amp;quot;gradient&amp;quot; defined for each player, for swimming and non-swimming globs, for each of the following actions:&lt;br /&gt;
* Forbidden area&lt;br /&gt;
* Guard area&lt;br /&gt;
* Every type of resource&lt;br /&gt;
* Every building&lt;br /&gt;
&lt;br /&gt;
In other words, there are (width * height * TotalPlayers * 2 * (2 + TotalResources + TotalBuildings) cell gradient values defined.&lt;br /&gt;
&lt;br /&gt;
Gradients are first defined for individual squares in various functions, then those values are propagated around using the Map::propagateGradient() function. Gradients are reduced by one for every square away from a target item (e.g. a wheat square for the wheat gradient).&lt;br /&gt;
&lt;br /&gt;
At least for the Guard Area this approach has a serious [[solution to the guard area distribution problem|problem]] as warriors will always only find the closest guarding area patch and ignore all others.&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:Developer Resources]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=User_Manual&amp;diff=5767</id>
		<title>User Manual</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=User_Manual&amp;diff=5767"/>
		<updated>2010-04-18T09:36:13Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Logging in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translations|View this page in|Article=User_Manual}}&lt;br /&gt;
{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
To get the game see [[Download_and_Install]]!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:300px; margin: 0 20px 20px 0;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
=The main menu=&lt;br /&gt;
[[Image:fullscreen_main_menu.png|300px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
The main menu is what it is. It is allows you to select several sub menus discussed more in detail below.&lt;br /&gt;
==Campaign==&lt;br /&gt;
Here are the single player campaigns. Train with these to be fit for YOG.&lt;br /&gt;
==Load game==&lt;br /&gt;
Here you can load games for single player mode. It doesn&amp;#039;t matter if you saved them in YOG, a LAN game, a custom game, a campaign or a tutorial. Auto save games can also be loaded from here.&lt;br /&gt;
&lt;br /&gt;
==Ysagoon Online Gaming (YOG)==&lt;br /&gt;
This button connects to the YOG server so you can easily play against others.&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
# Choose a nickname.&lt;br /&gt;
# Choose a password (Be warned that it will be transmitted without encryption. So please choose a password you don&amp;#039;t use for serious stuff.)&lt;br /&gt;
# Login&lt;br /&gt;
&lt;br /&gt;
===Inside YOG===&lt;br /&gt;
Here you can chat with others, create a game or join games.&lt;br /&gt;
;Why are they marked grey and I&amp;#039;m green?:&amp;#039;They&amp;#039; are in the chat room via [irc://irc.globulation2.org/glob2 IRC]. That means they don&amp;#039;t have glob2 running but are principally ready to come in if someone asks to.&lt;br /&gt;
====Join====&lt;br /&gt;
Simply click the game you want to join and then click &amp;#039;&amp;#039;&amp;#039;Join&amp;#039;&amp;#039;&amp;#039;. Maps will be transfered automatically if needed. If this fails, most likely the game versions don&amp;#039;t match.&lt;br /&gt;
====Create game====&lt;br /&gt;
After clicking on &amp;#039;&amp;#039;&amp;#039;Create game&amp;#039;&amp;#039;&amp;#039; a menu pops up where you can choose a map or a game (for example the autosavegame of the game that just crashed). By clicking on the maps you get a minimap and infos like dimensions, teams and date of creation.&lt;br /&gt;
&lt;br /&gt;
After pressing Ok the others on YOG will see the game and can join.&lt;br /&gt;
&lt;br /&gt;
By clicking on the colors of the players the host can change them. Same color is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; same team but same people. That means the players with the same color will share the control of one people.&lt;br /&gt;
&lt;br /&gt;
The host can also add AIs to any color.&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
In this sub menu you can&lt;br /&gt;
;select the &amp;#039;&amp;#039;&amp;#039;language&amp;#039;&amp;#039;&amp;#039; in which the program will display messages and menus:In August 2006 Globulation 2 supported 20 different languages.&lt;br /&gt;
&lt;br /&gt;
;select whether to play in &amp;#039;&amp;#039;&amp;#039;full screen mode&amp;#039;&amp;#039;&amp;#039; or in &amp;#039;&amp;#039;&amp;#039;windowed mode&amp;#039;&amp;#039;&amp;#039;:In windowed mode you will not be able to navigate by moving the pointer to the border of the screen.&lt;br /&gt;
&lt;br /&gt;
;select the &amp;#039;&amp;#039;&amp;#039;resolution&amp;#039;&amp;#039;&amp;#039;:Globulation 2 supports any modes your graphics card claims. If you experience speed problems, opt for a low resolution.&lt;br /&gt;
&lt;br /&gt;
;switch OpenGL:If you experience speed issues check if you are just emulating OpenGL.&lt;br /&gt;
&lt;br /&gt;
;switch quality:that is to my knowledge only the cloud shadows.&lt;br /&gt;
&lt;br /&gt;
;switch custom cursor:switch off this cute feature if you are on a slow system.&lt;br /&gt;
&lt;br /&gt;
;switch &amp;#039;remember unit&amp;#039;:this feature allows you to assign as many units to a job as you have assigned the last time to a similar one.&lt;br /&gt;
&lt;br /&gt;
;choose your username:the username allows you to be known by others&lt;br /&gt;
:the online registration allows a free and password protected way to register your online username&lt;br /&gt;
&lt;br /&gt;
;switch audio:so far this only switches the event sensitive background music on and off.&lt;br /&gt;
&lt;br /&gt;
;set Building Settings:in this tab you can set the default unit count for the flags, buildings, building upgrades and construction sites.&lt;br /&gt;
&lt;br /&gt;
;set Keyboard Shortcuts:here you can modify the default hotkeys for the game and editor.&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
Here you can read who&amp;#039;s giving this game to you.&lt;br /&gt;
==Tutorial==&lt;br /&gt;
Here you can play these introductory missions to learn the basics of the gameplay.&lt;br /&gt;
==Custom game==&lt;br /&gt;
Here you can choose a map to play against the various bots.&lt;br /&gt;
==LAN Game==&lt;br /&gt;
If you have no internet it is also possible to play against each other without YOG via this button. You will have to know your IP.  Your IP can be checked [http://whatismyipaddress.com/ here], for instance.&lt;br /&gt;
==Editor==&lt;br /&gt;
Globulation 2 makes it easy to everybody to set up their own maps.&lt;br /&gt;
For detailed info please have a look at our [[Map_editor_guide| map editor guide]].&lt;br /&gt;
&lt;br /&gt;
==Quit==&lt;br /&gt;
Well ... Any questions about that?&lt;br /&gt;
&lt;br /&gt;
=Game and strategy=&lt;br /&gt;
==The screen==&lt;br /&gt;
===The top line===&lt;br /&gt;
[[Image:TopLine.png]]&lt;br /&gt;
&lt;br /&gt;
Here you can see in this order beginning from the left:&lt;br /&gt;
;-1/5&lt;br /&gt;
:free workers/total workers&lt;br /&gt;
:this number is red, as there are more workers assigned to jobs than there are in total.&lt;br /&gt;
;2/2&lt;br /&gt;
:free explorers/total explorers&lt;br /&gt;
:all the 2 explorers are free to be assigned to an exploration flag.&lt;br /&gt;
;0/0&lt;br /&gt;
:free warriors/total warriors&lt;br /&gt;
:0 there are zero warriors available to a war flag or guard post&lt;br /&gt;
;0/0/500&lt;br /&gt;
:your [[Prestige|prestige]]/total prestige on the map/prestige needed to finish the game.&lt;br /&gt;
:You get prestige with level 3 schools.&lt;br /&gt;
;+0/-0&lt;br /&gt;
:this is the number of globs that have converted to and from your team. Globs can be enticed to convert to different teams if the enemy offers a wider variety of [[Fruit_and_conversion|fruits]] at their inns.&lt;br /&gt;
;green bar&lt;br /&gt;
:this bar indicates if the game is slowed down by the limitations of your system. As long as it is green, everything is fine. Past this white line indicating 100% it turns red. At 200% the game runs about at half the speed it is designed for.&lt;br /&gt;
:if this bar is all red, please try to fix that before joining a game on YOG. You can also ask on the game chat for help to get the game go faster. As a rule of thumb the game should be playable on a 1GHz CPU without accelerated OpenGL.&lt;br /&gt;
;the menu:this circle in the screenshot is the button to access the menu where you can load/save the game, make alliances, change in-game options and quit the game.&lt;br /&gt;
&lt;br /&gt;
===The right side===&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:RightSideMenu.png]] ||&lt;br /&gt;
Here you have:&lt;br /&gt;
;a mini map&lt;br /&gt;
:click and drag to quickly navigate to remote areas&lt;br /&gt;
:watch to see if enemies are on the way&lt;br /&gt;
:team members can show you spots on that map (key &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
;a section with up to four buttons:&lt;br /&gt;
:these are for [[Buildings|buildings]], [[Flags_and_special_areas| flags and special areas]], [[Statistics|statistics]] and [[Graphs|graphs]].&lt;br /&gt;
:please see details there.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===The center===&lt;br /&gt;
Here you see what&amp;#039;s going on. You can click the buildings and flags to adjust settings. The units can also be selected to see their status but not to control them directly.&lt;br /&gt;
&lt;br /&gt;
==Buildings==&lt;br /&gt;
===Construction cost===&lt;br /&gt;
When in the building panel on the right side of the screen, you see thumbnails of buildings. Hover over those thumbnails to see more details about construction costs.&lt;br /&gt;
===Destroy, upgrade, and repair buildings===&lt;br /&gt;
Click on a building. There is a &amp;quot;destroy&amp;quot; (hotkey &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039;) button at the bottom right of your screen. Click it to delete the building. If you can, there will be an &amp;#039;&amp;#039;&amp;#039;Upgrade&amp;#039;&amp;#039;&amp;#039; (hotkey &amp;#039;&amp;#039;&amp;#039;u&amp;#039;&amp;#039;&amp;#039;) button just above the &amp;#039;&amp;#039;&amp;#039;Destroy&amp;#039;&amp;#039;&amp;#039; button. When a building is damaged, you will also see a &amp;#039;&amp;#039;&amp;#039;Repair&amp;#039;&amp;#039;&amp;#039; (hotkey &amp;#039;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;&amp;#039;) button which asks your creatures to repair the building.&lt;br /&gt;
===&amp;quot;Points&amp;quot;===&lt;br /&gt;
On each side of an Inn/Swarm, there is a &amp;#039;&amp;#039;&amp;#039;column of black dots&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
*The left one indicates how much wheat is in your Inn/Swarm.&lt;br /&gt;
*The right one, also found at training buildings, indicates how many globuls are inside. It tells you how many globuls are eating (for the Inn), how many warriors are training (training camp) etc.&lt;br /&gt;
===Description of buildings===&lt;br /&gt;
There are many type of buildings documented on [[Buildings| the buildings page]].&lt;br /&gt;
===Placement of buildings===&lt;br /&gt;
[[Image:Compact1.jpg|200px]] &lt;br /&gt;
&lt;br /&gt;
To avoid terrible traffic jams, leave 2 wide ways for globs to walk past each other&lt;br /&gt;
&lt;br /&gt;
[[Image:Compact.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
or build more compact. In this picture you have more buildings, all are accesible and you will have less jams except for when you do upgrades.&lt;br /&gt;
&lt;br /&gt;
==Units==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Gathering information on units&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Food, hit points: there should be creatures of the same color as your Swarm in your main window. There are a blue and a green bar under each creature. The &amp;#039;&amp;#039;&amp;#039;blue bar shows how much food the creature&amp;#039;&amp;#039;&amp;#039; has left, and the green one indicates its hit points or life points. If the blue bar is empty, your creature is starving, and its hitpoints will decrease.&lt;br /&gt;
&lt;br /&gt;
*Other informations: Click on one of your creatures. It is probably a worker. On the right side of your screen you can now see how hungry and healthy it is, what it is carrying, and how good its abilities are.&lt;br /&gt;
&lt;br /&gt;
*Other statistics and information on your units can be seen if you click the fourth of the buttons located directly under your mini-map. There are detailed informations on health and many others.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;No orders!&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;You cannot give any kind of orders to your creatures.&amp;#039;&amp;#039;&amp;#039; This is done indirectly through your buildings and [[Flags_and_special_areas | flags]]. You can use the &amp;#039;&amp;#039;&amp;#039;t key&amp;#039;&amp;#039;&amp;#039; to show/hide the path to the current target of the selected unit.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;The creatures&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Other units besides the &amp;#039;&amp;#039;&amp;#039;Workers&amp;#039;&amp;#039;&amp;#039; [[Image:Worker.png]] are the &amp;#039;&amp;#039;&amp;#039;Warriors&amp;#039;&amp;#039;&amp;#039; [[Image:Warrior.png]] and the &amp;#039;&amp;#039;&amp;#039;Explorers&amp;#039;&amp;#039;&amp;#039; [[Image:exp.png]].&lt;br /&gt;
&lt;br /&gt;
*The &amp;#039;&amp;#039;&amp;#039;Warriors&amp;#039;&amp;#039;&amp;#039; can attack other land creatures and structures; they can be improved via the training camp, the pool, and the running court. They can be recognized as the units with big arms.&lt;br /&gt;
&lt;br /&gt;
*The &amp;#039;&amp;#039;&amp;#039;Explorers&amp;#039;&amp;#039;&amp;#039; will keep your map up to date and show you live units that are within their sight. They can attack other flying objects and when they&amp;#039;ve been through a school of level 3, they can attack ground creatures. They can be recognized as the flying units.&lt;br /&gt;
&lt;br /&gt;
*All creatures eat in inns, they will each take one fruit of each available variety and one unit of wheat. Their satisfaction level will depend on the fruits they had (from 0 to 3) and will determine whether they are attracted to the enemy&amp;#039;s inns.&lt;br /&gt;
&lt;br /&gt;
==Alliances==&lt;br /&gt;
&lt;br /&gt;
There are four &amp;#039;&amp;#039;&amp;#039;alliance levels&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
*Allied and shared vision&lt;br /&gt;
&lt;br /&gt;
*Show markets so that fruit can be exchanged (note: markets are broken in 0.9.4 release, fruit exchange doesn&amp;#039;t work)&lt;br /&gt;
&lt;br /&gt;
*Show Inns so that enemy units can perhaps convert&lt;br /&gt;
&lt;br /&gt;
*Don&amp;#039;t show anything&lt;br /&gt;
&lt;br /&gt;
When you ally with someone, there won&amp;#039;t be fighting between you.&lt;br /&gt;
&lt;br /&gt;
==Victory==&lt;br /&gt;
&lt;br /&gt;
Except with a few maps that specify particular conditions for victory, there are three basic ways of winning in Globulation 2:&lt;br /&gt;
&lt;br /&gt;
*[[Fruit_and_conversion|Convert]] all of your enemy&amp;#039;s globs to your team by using fruits.&lt;br /&gt;
&lt;br /&gt;
*[[Combat|Destroying]] all of your enemy&amp;#039;s globs&lt;br /&gt;
&lt;br /&gt;
*Reaching the [[Prestige|prestige]] limit before anyone else&lt;br /&gt;
&lt;br /&gt;
In practice, most games are won through a combination of the first two, while the last (prestige) is only used when stalemate has long been reached.&lt;br /&gt;
&lt;br /&gt;
=Keyboard shortcuts=&lt;br /&gt;
&lt;br /&gt;
Most keyboard shortcuts can be edited in the settings menu but here are the default controls:&lt;br /&gt;
&lt;br /&gt;
*Hit the space bar to jump to the location of the last event that appeared on-screen&lt;br /&gt;
&lt;br /&gt;
*Hold down the letter &amp;#039;a&amp;#039; to show the team that each unit and building belongs to&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;t&amp;#039; to toggle showing of where each of your units is headed to&lt;br /&gt;
&lt;br /&gt;
*Hit escape to show the in-game menu&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;p&amp;#039; at any time to pause the game&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;u&amp;#039; to upgrade a building, or &amp;#039;r&amp;#039; to repair it&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;d&amp;#039; to destroy a building or flag. Be very careful, as it doesn&amp;#039;t ask you if you&amp;#039;re sure before destroying your Swarm&lt;br /&gt;
&lt;br /&gt;
*When a building is selected, you can hit TAB to cycle between all your buildings of the same type&lt;br /&gt;
&lt;br /&gt;
*When a building is selected, you can hit &amp;#039;+/-&amp;#039; to modify its assigned number of workers&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;h&amp;#039; to show/hide text history&lt;br /&gt;
&lt;br /&gt;
*Use the arrows to move or speed up your view-frame&lt;br /&gt;
&lt;br /&gt;
=Got lost? Example of a simple game=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Buildings you place first in order:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These are all the steps regarding the buildings you will construct:&lt;br /&gt;
&lt;br /&gt;
*you will normally have a &amp;#039;&amp;#039;&amp;#039;Swarm&amp;#039;&amp;#039;&amp;#039; when you begin a game. If not, you can build it later, since your first priority is to &amp;#039;&amp;#039;&amp;#039;build an Inn&amp;#039;&amp;#039;&amp;#039; or two. Your creatures will get hungry, the Inn will provide them with food. Don&amp;#039;t forget to assign enough workers to the Inn after it is finished (depends on how far away your wheat field is);&lt;br /&gt;
&lt;br /&gt;
*The swarm allows you to build more units, and, depending on how many units you want, you should build one, two, or maybe even three swarms. Look at how much food you have to decide how many units you can maintain. In this game having more units is not always better. Units that are hungry will certainly die very fast.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Build a hospital&amp;#039;&amp;#039;&amp;#039;: It is easy to build and it is the only way for your units to recover hitpoints;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Barracks&amp;#039;&amp;#039;&amp;#039; will improve the strength of Warriors, a &amp;#039;&amp;#039;&amp;#039;Racetrack&amp;#039;&amp;#039;&amp;#039; is needed if you want your units to move faster on the ground, and a &amp;#039;&amp;#039;&amp;#039;Swimming Pool&amp;#039;&amp;#039;&amp;#039; will allow your units to move through water. Depending on your priorities, now decide to build one of these three buildings.&lt;br /&gt;
&lt;br /&gt;
*Upgrading your buildings vastly improves their effectiveness. But to do so, &amp;#039;&amp;#039;&amp;#039;you need a School&amp;#039;&amp;#039;&amp;#039;. To build a School, your creatures need to be able to swim, so that they can collect the Algae. Therefore, we must build a Swimming Pool first. When it is finished, place a School.&lt;br /&gt;
&lt;br /&gt;
*Other useful structures to have are the &amp;#039;&amp;#039;&amp;#039;Defense Tower&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;Wall&amp;#039;&amp;#039;&amp;#039;. A defense tower surrounded by or on the other side of a wall is especially hard for the enemy to destroy, and low-level warriors won&amp;#039;t be able to do much damage to a defense tower anyway (but they can kill workers assigned to it, causing it to run out of ammunition). Walls can also keep resources from growing in annoying places and can isolate resources you have no plans to exploit or wish to keep out of reach of enemy workers.&lt;br /&gt;
&lt;br /&gt;
*Against another human player, there can be a rush to destroy each other&amp;#039;s nearby algae completely to prevent the enemy from having advanced buildings too easily. AI are not smart enough to do it to you, but certain players have been known to try it every game! So send a few warriors to protect yours. Defense towers are nice for this purpose as they don&amp;#039;t require feeding and won&amp;#039;t convert to the enemy; but to fight an algae genocide rush, you need warriors who can swim.&lt;br /&gt;
&lt;br /&gt;
*As soon as the first workers have finished school, you get the option to &amp;#039;&amp;#039;&amp;#039;upgrade buildings&amp;#039;&amp;#039;&amp;#039;. Swarms, Markets and Stone Walls cannot be upgraded, others buildings can be upgraded twice. To upgrade to higher levels, you must first upgrade your School and train some workers (it&amp;#039;s a common error to assign 20 workers to upgrade something ASAP when only a few have the proper build level - be careful). Workers trained in School can not only upgrade buildings, but also gather resources much faster.&lt;br /&gt;
&lt;br /&gt;
*As a general rule of thumb explorers are weak against towers, towers are weak against warriors, and warriors are weak against explorers (once the explorer ground attack is researched). &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Organization of creatures&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In order to raise a healthy colony you need to:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Take your time&amp;#039;&amp;#039;&amp;#039; to build all these buildings. The most important resource for your creatures is food. Once you have enough food and workers &amp;#039;&amp;#039;&amp;#039;upgrade buildings one by one&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*Assign more workers when upgrading, and it will take less time until the new and improved building is available. Don&amp;#039;t wait for a building to be finished slowly. And don&amp;#039;t forget that after your building is upgraded, you still need all your units to train inside your building. It will take some time until you will see your units go faster or fight better.&lt;br /&gt;
&lt;br /&gt;
*Also don&amp;#039;t forget to manage your units with [[Flags_and_special_areas| flags and special areas]].&lt;br /&gt;
&lt;br /&gt;
=Further readings=&lt;br /&gt;
* [[Frequently Asked Questions]], if you have unanswered questions&lt;br /&gt;
* [[Units]]&lt;br /&gt;
* [[Buildings]]&lt;br /&gt;
* [[Maps]]&lt;br /&gt;
* [[Prestige]]&lt;br /&gt;
* [[Combat]]&lt;br /&gt;
* [[Fruit and conversion]]&lt;br /&gt;
* [[Flags and special areas]]&lt;br /&gt;
* [[AI|Artificial Intelligences]]&lt;br /&gt;
* [[YOG|Ysagoon Online Gaming]] (metaserver)&lt;br /&gt;
* [[Farming]]&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=User_Manual&amp;diff=5766</id>
		<title>User Manual</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=User_Manual&amp;diff=5766"/>
		<updated>2010-04-18T09:35:50Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: /* Load game */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translations|View this page in|Article=User_Manual}}&lt;br /&gt;
{{UserManualLinks}}&lt;br /&gt;
&lt;br /&gt;
To get the game see [[Download_and_Install]]!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:300px; margin: 0 20px 20px 0;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
=The main menu=&lt;br /&gt;
[[Image:fullscreen_main_menu.png|300px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
The main menu is what it is. It is allows you to select several sub menus discussed more in detail below.&lt;br /&gt;
==Campaign==&lt;br /&gt;
Here are the single player campaigns. Train with these to be fit for YOG.&lt;br /&gt;
==Load game==&lt;br /&gt;
Here you can load games for single player mode. It doesn&amp;#039;t matter if you saved them in YOG, a LAN game, a custom game, a campaign or a tutorial. Auto save games can also be loaded from here.&lt;br /&gt;
&lt;br /&gt;
==Ysagoon Online Gaming (YOG)==&lt;br /&gt;
This button connects to the YOG server so you can easily play against others.&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
#Choose a nickname.&lt;br /&gt;
#Choose a password (Be warned that it will be transmitted without encryption. So please choose a password you don&amp;#039;t use for serious stuff.)&lt;br /&gt;
#Login&lt;br /&gt;
&lt;br /&gt;
===Inside YOG===&lt;br /&gt;
Here you can chat with others, create a game or join games.&lt;br /&gt;
;Why are they marked grey and I&amp;#039;m green?:&amp;#039;They&amp;#039; are in the chat room via [irc://irc.globulation2.org/glob2 IRC]. That means they don&amp;#039;t have glob2 running but are principally ready to come in if someone asks to.&lt;br /&gt;
====Join====&lt;br /&gt;
Simply click the game you want to join and then click &amp;#039;&amp;#039;&amp;#039;Join&amp;#039;&amp;#039;&amp;#039;. Maps will be transfered automatically if needed. If this fails, most likely the game versions don&amp;#039;t match.&lt;br /&gt;
====Create game====&lt;br /&gt;
After clicking on &amp;#039;&amp;#039;&amp;#039;Create game&amp;#039;&amp;#039;&amp;#039; a menu pops up where you can choose a map or a game (for example the autosavegame of the game that just crashed). By clicking on the maps you get a minimap and infos like dimensions, teams and date of creation.&lt;br /&gt;
&lt;br /&gt;
After pressing Ok the others on YOG will see the game and can join.&lt;br /&gt;
&lt;br /&gt;
By clicking on the colors of the players the host can change them. Same color is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; same team but same people. That means the players with the same color will share the control of one people.&lt;br /&gt;
&lt;br /&gt;
The host can also add AIs to any color.&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
In this sub menu you can&lt;br /&gt;
;select the &amp;#039;&amp;#039;&amp;#039;language&amp;#039;&amp;#039;&amp;#039; in which the program will display messages and menus:In August 2006 Globulation 2 supported 20 different languages.&lt;br /&gt;
&lt;br /&gt;
;select whether to play in &amp;#039;&amp;#039;&amp;#039;full screen mode&amp;#039;&amp;#039;&amp;#039; or in &amp;#039;&amp;#039;&amp;#039;windowed mode&amp;#039;&amp;#039;&amp;#039;:In windowed mode you will not be able to navigate by moving the pointer to the border of the screen.&lt;br /&gt;
&lt;br /&gt;
;select the &amp;#039;&amp;#039;&amp;#039;resolution&amp;#039;&amp;#039;&amp;#039;:Globulation 2 supports any modes your graphics card claims. If you experience speed problems, opt for a low resolution.&lt;br /&gt;
&lt;br /&gt;
;switch OpenGL:If you experience speed issues check if you are just emulating OpenGL.&lt;br /&gt;
&lt;br /&gt;
;switch quality:that is to my knowledge only the cloud shadows.&lt;br /&gt;
&lt;br /&gt;
;switch custom cursor:switch off this cute feature if you are on a slow system.&lt;br /&gt;
&lt;br /&gt;
;switch &amp;#039;remember unit&amp;#039;:this feature allows you to assign as many units to a job as you have assigned the last time to a similar one.&lt;br /&gt;
&lt;br /&gt;
;choose your username:the username allows you to be known by others&lt;br /&gt;
:the online registration allows a free and password protected way to register your online username&lt;br /&gt;
&lt;br /&gt;
;switch audio:so far this only switches the event sensitive background music on and off.&lt;br /&gt;
&lt;br /&gt;
;set Building Settings:in this tab you can set the default unit count for the flags, buildings, building upgrades and construction sites.&lt;br /&gt;
&lt;br /&gt;
;set Keyboard Shortcuts:here you can modify the default hotkeys for the game and editor.&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
Here you can read who&amp;#039;s giving this game to you.&lt;br /&gt;
==Tutorial==&lt;br /&gt;
Here you can play these introductory missions to learn the basics of the gameplay.&lt;br /&gt;
==Custom game==&lt;br /&gt;
Here you can choose a map to play against the various bots.&lt;br /&gt;
==LAN Game==&lt;br /&gt;
If you have no internet it is also possible to play against each other without YOG via this button. You will have to know your IP.  Your IP can be checked [http://whatismyipaddress.com/ here], for instance.&lt;br /&gt;
==Editor==&lt;br /&gt;
Globulation 2 makes it easy to everybody to set up their own maps.&lt;br /&gt;
For detailed info please have a look at our [[Map_editor_guide| map editor guide]].&lt;br /&gt;
&lt;br /&gt;
==Quit==&lt;br /&gt;
Well ... Any questions about that?&lt;br /&gt;
&lt;br /&gt;
=Game and strategy=&lt;br /&gt;
==The screen==&lt;br /&gt;
===The top line===&lt;br /&gt;
[[Image:TopLine.png]]&lt;br /&gt;
&lt;br /&gt;
Here you can see in this order beginning from the left:&lt;br /&gt;
;-1/5&lt;br /&gt;
:free workers/total workers&lt;br /&gt;
:this number is red, as there are more workers assigned to jobs than there are in total.&lt;br /&gt;
;2/2&lt;br /&gt;
:free explorers/total explorers&lt;br /&gt;
:all the 2 explorers are free to be assigned to an exploration flag.&lt;br /&gt;
;0/0&lt;br /&gt;
:free warriors/total warriors&lt;br /&gt;
:0 there are zero warriors available to a war flag or guard post&lt;br /&gt;
;0/0/500&lt;br /&gt;
:your [[Prestige|prestige]]/total prestige on the map/prestige needed to finish the game.&lt;br /&gt;
:You get prestige with level 3 schools.&lt;br /&gt;
;+0/-0&lt;br /&gt;
:this is the number of globs that have converted to and from your team. Globs can be enticed to convert to different teams if the enemy offers a wider variety of [[Fruit_and_conversion|fruits]] at their inns.&lt;br /&gt;
;green bar&lt;br /&gt;
:this bar indicates if the game is slowed down by the limitations of your system. As long as it is green, everything is fine. Past this white line indicating 100% it turns red. At 200% the game runs about at half the speed it is designed for.&lt;br /&gt;
:if this bar is all red, please try to fix that before joining a game on YOG. You can also ask on the game chat for help to get the game go faster. As a rule of thumb the game should be playable on a 1GHz CPU without accelerated OpenGL.&lt;br /&gt;
;the menu:this circle in the screenshot is the button to access the menu where you can load/save the game, make alliances, change in-game options and quit the game.&lt;br /&gt;
&lt;br /&gt;
===The right side===&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:RightSideMenu.png]] ||&lt;br /&gt;
Here you have:&lt;br /&gt;
;a mini map&lt;br /&gt;
:click and drag to quickly navigate to remote areas&lt;br /&gt;
:watch to see if enemies are on the way&lt;br /&gt;
:team members can show you spots on that map (key &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
;a section with up to four buttons:&lt;br /&gt;
:these are for [[Buildings|buildings]], [[Flags_and_special_areas| flags and special areas]], [[Statistics|statistics]] and [[Graphs|graphs]].&lt;br /&gt;
:please see details there.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===The center===&lt;br /&gt;
Here you see what&amp;#039;s going on. You can click the buildings and flags to adjust settings. The units can also be selected to see their status but not to control them directly.&lt;br /&gt;
&lt;br /&gt;
==Buildings==&lt;br /&gt;
===Construction cost===&lt;br /&gt;
When in the building panel on the right side of the screen, you see thumbnails of buildings. Hover over those thumbnails to see more details about construction costs.&lt;br /&gt;
===Destroy, upgrade, and repair buildings===&lt;br /&gt;
Click on a building. There is a &amp;quot;destroy&amp;quot; (hotkey &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039;) button at the bottom right of your screen. Click it to delete the building. If you can, there will be an &amp;#039;&amp;#039;&amp;#039;Upgrade&amp;#039;&amp;#039;&amp;#039; (hotkey &amp;#039;&amp;#039;&amp;#039;u&amp;#039;&amp;#039;&amp;#039;) button just above the &amp;#039;&amp;#039;&amp;#039;Destroy&amp;#039;&amp;#039;&amp;#039; button. When a building is damaged, you will also see a &amp;#039;&amp;#039;&amp;#039;Repair&amp;#039;&amp;#039;&amp;#039; (hotkey &amp;#039;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;&amp;#039;) button which asks your creatures to repair the building.&lt;br /&gt;
===&amp;quot;Points&amp;quot;===&lt;br /&gt;
On each side of an Inn/Swarm, there is a &amp;#039;&amp;#039;&amp;#039;column of black dots&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
*The left one indicates how much wheat is in your Inn/Swarm.&lt;br /&gt;
*The right one, also found at training buildings, indicates how many globuls are inside. It tells you how many globuls are eating (for the Inn), how many warriors are training (training camp) etc.&lt;br /&gt;
===Description of buildings===&lt;br /&gt;
There are many type of buildings documented on [[Buildings| the buildings page]].&lt;br /&gt;
===Placement of buildings===&lt;br /&gt;
[[Image:Compact1.jpg|200px]] &lt;br /&gt;
&lt;br /&gt;
To avoid terrible traffic jams, leave 2 wide ways for globs to walk past each other&lt;br /&gt;
&lt;br /&gt;
[[Image:Compact.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
or build more compact. In this picture you have more buildings, all are accesible and you will have less jams except for when you do upgrades.&lt;br /&gt;
&lt;br /&gt;
==Units==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Gathering information on units&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Food, hit points: there should be creatures of the same color as your Swarm in your main window. There are a blue and a green bar under each creature. The &amp;#039;&amp;#039;&amp;#039;blue bar shows how much food the creature&amp;#039;&amp;#039;&amp;#039; has left, and the green one indicates its hit points or life points. If the blue bar is empty, your creature is starving, and its hitpoints will decrease.&lt;br /&gt;
&lt;br /&gt;
*Other informations: Click on one of your creatures. It is probably a worker. On the right side of your screen you can now see how hungry and healthy it is, what it is carrying, and how good its abilities are.&lt;br /&gt;
&lt;br /&gt;
*Other statistics and information on your units can be seen if you click the fourth of the buttons located directly under your mini-map. There are detailed informations on health and many others.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;No orders!&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;You cannot give any kind of orders to your creatures.&amp;#039;&amp;#039;&amp;#039; This is done indirectly through your buildings and [[Flags_and_special_areas | flags]]. You can use the &amp;#039;&amp;#039;&amp;#039;t key&amp;#039;&amp;#039;&amp;#039; to show/hide the path to the current target of the selected unit.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;The creatures&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Other units besides the &amp;#039;&amp;#039;&amp;#039;Workers&amp;#039;&amp;#039;&amp;#039; [[Image:Worker.png]] are the &amp;#039;&amp;#039;&amp;#039;Warriors&amp;#039;&amp;#039;&amp;#039; [[Image:Warrior.png]] and the &amp;#039;&amp;#039;&amp;#039;Explorers&amp;#039;&amp;#039;&amp;#039; [[Image:exp.png]].&lt;br /&gt;
&lt;br /&gt;
*The &amp;#039;&amp;#039;&amp;#039;Warriors&amp;#039;&amp;#039;&amp;#039; can attack other land creatures and structures; they can be improved via the training camp, the pool, and the running court. They can be recognized as the units with big arms.&lt;br /&gt;
&lt;br /&gt;
*The &amp;#039;&amp;#039;&amp;#039;Explorers&amp;#039;&amp;#039;&amp;#039; will keep your map up to date and show you live units that are within their sight. They can attack other flying objects and when they&amp;#039;ve been through a school of level 3, they can attack ground creatures. They can be recognized as the flying units.&lt;br /&gt;
&lt;br /&gt;
*All creatures eat in inns, they will each take one fruit of each available variety and one unit of wheat. Their satisfaction level will depend on the fruits they had (from 0 to 3) and will determine whether they are attracted to the enemy&amp;#039;s inns.&lt;br /&gt;
&lt;br /&gt;
==Alliances==&lt;br /&gt;
&lt;br /&gt;
There are four &amp;#039;&amp;#039;&amp;#039;alliance levels&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
*Allied and shared vision&lt;br /&gt;
&lt;br /&gt;
*Show markets so that fruit can be exchanged (note: markets are broken in 0.9.4 release, fruit exchange doesn&amp;#039;t work)&lt;br /&gt;
&lt;br /&gt;
*Show Inns so that enemy units can perhaps convert&lt;br /&gt;
&lt;br /&gt;
*Don&amp;#039;t show anything&lt;br /&gt;
&lt;br /&gt;
When you ally with someone, there won&amp;#039;t be fighting between you.&lt;br /&gt;
&lt;br /&gt;
==Victory==&lt;br /&gt;
&lt;br /&gt;
Except with a few maps that specify particular conditions for victory, there are three basic ways of winning in Globulation 2:&lt;br /&gt;
&lt;br /&gt;
*[[Fruit_and_conversion|Convert]] all of your enemy&amp;#039;s globs to your team by using fruits.&lt;br /&gt;
&lt;br /&gt;
*[[Combat|Destroying]] all of your enemy&amp;#039;s globs&lt;br /&gt;
&lt;br /&gt;
*Reaching the [[Prestige|prestige]] limit before anyone else&lt;br /&gt;
&lt;br /&gt;
In practice, most games are won through a combination of the first two, while the last (prestige) is only used when stalemate has long been reached.&lt;br /&gt;
&lt;br /&gt;
=Keyboard shortcuts=&lt;br /&gt;
&lt;br /&gt;
Most keyboard shortcuts can be edited in the settings menu but here are the default controls:&lt;br /&gt;
&lt;br /&gt;
*Hit the space bar to jump to the location of the last event that appeared on-screen&lt;br /&gt;
&lt;br /&gt;
*Hold down the letter &amp;#039;a&amp;#039; to show the team that each unit and building belongs to&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;t&amp;#039; to toggle showing of where each of your units is headed to&lt;br /&gt;
&lt;br /&gt;
*Hit escape to show the in-game menu&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;p&amp;#039; at any time to pause the game&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;u&amp;#039; to upgrade a building, or &amp;#039;r&amp;#039; to repair it&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;d&amp;#039; to destroy a building or flag. Be very careful, as it doesn&amp;#039;t ask you if you&amp;#039;re sure before destroying your Swarm&lt;br /&gt;
&lt;br /&gt;
*When a building is selected, you can hit TAB to cycle between all your buildings of the same type&lt;br /&gt;
&lt;br /&gt;
*When a building is selected, you can hit &amp;#039;+/-&amp;#039; to modify its assigned number of workers&lt;br /&gt;
&lt;br /&gt;
*Hit &amp;#039;h&amp;#039; to show/hide text history&lt;br /&gt;
&lt;br /&gt;
*Use the arrows to move or speed up your view-frame&lt;br /&gt;
&lt;br /&gt;
=Got lost? Example of a simple game=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Buildings you place first in order:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These are all the steps regarding the buildings you will construct:&lt;br /&gt;
&lt;br /&gt;
*you will normally have a &amp;#039;&amp;#039;&amp;#039;Swarm&amp;#039;&amp;#039;&amp;#039; when you begin a game. If not, you can build it later, since your first priority is to &amp;#039;&amp;#039;&amp;#039;build an Inn&amp;#039;&amp;#039;&amp;#039; or two. Your creatures will get hungry, the Inn will provide them with food. Don&amp;#039;t forget to assign enough workers to the Inn after it is finished (depends on how far away your wheat field is);&lt;br /&gt;
&lt;br /&gt;
*The swarm allows you to build more units, and, depending on how many units you want, you should build one, two, or maybe even three swarms. Look at how much food you have to decide how many units you can maintain. In this game having more units is not always better. Units that are hungry will certainly die very fast.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Build a hospital&amp;#039;&amp;#039;&amp;#039;: It is easy to build and it is the only way for your units to recover hitpoints;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Barracks&amp;#039;&amp;#039;&amp;#039; will improve the strength of Warriors, a &amp;#039;&amp;#039;&amp;#039;Racetrack&amp;#039;&amp;#039;&amp;#039; is needed if you want your units to move faster on the ground, and a &amp;#039;&amp;#039;&amp;#039;Swimming Pool&amp;#039;&amp;#039;&amp;#039; will allow your units to move through water. Depending on your priorities, now decide to build one of these three buildings.&lt;br /&gt;
&lt;br /&gt;
*Upgrading your buildings vastly improves their effectiveness. But to do so, &amp;#039;&amp;#039;&amp;#039;you need a School&amp;#039;&amp;#039;&amp;#039;. To build a School, your creatures need to be able to swim, so that they can collect the Algae. Therefore, we must build a Swimming Pool first. When it is finished, place a School.&lt;br /&gt;
&lt;br /&gt;
*Other useful structures to have are the &amp;#039;&amp;#039;&amp;#039;Defense Tower&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;Wall&amp;#039;&amp;#039;&amp;#039;. A defense tower surrounded by or on the other side of a wall is especially hard for the enemy to destroy, and low-level warriors won&amp;#039;t be able to do much damage to a defense tower anyway (but they can kill workers assigned to it, causing it to run out of ammunition). Walls can also keep resources from growing in annoying places and can isolate resources you have no plans to exploit or wish to keep out of reach of enemy workers.&lt;br /&gt;
&lt;br /&gt;
*Against another human player, there can be a rush to destroy each other&amp;#039;s nearby algae completely to prevent the enemy from having advanced buildings too easily. AI are not smart enough to do it to you, but certain players have been known to try it every game! So send a few warriors to protect yours. Defense towers are nice for this purpose as they don&amp;#039;t require feeding and won&amp;#039;t convert to the enemy; but to fight an algae genocide rush, you need warriors who can swim.&lt;br /&gt;
&lt;br /&gt;
*As soon as the first workers have finished school, you get the option to &amp;#039;&amp;#039;&amp;#039;upgrade buildings&amp;#039;&amp;#039;&amp;#039;. Swarms, Markets and Stone Walls cannot be upgraded, others buildings can be upgraded twice. To upgrade to higher levels, you must first upgrade your School and train some workers (it&amp;#039;s a common error to assign 20 workers to upgrade something ASAP when only a few have the proper build level - be careful). Workers trained in School can not only upgrade buildings, but also gather resources much faster.&lt;br /&gt;
&lt;br /&gt;
*As a general rule of thumb explorers are weak against towers, towers are weak against warriors, and warriors are weak against explorers (once the explorer ground attack is researched). &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Organization of creatures&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In order to raise a healthy colony you need to:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Take your time&amp;#039;&amp;#039;&amp;#039; to build all these buildings. The most important resource for your creatures is food. Once you have enough food and workers &amp;#039;&amp;#039;&amp;#039;upgrade buildings one by one&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*Assign more workers when upgrading, and it will take less time until the new and improved building is available. Don&amp;#039;t wait for a building to be finished slowly. And don&amp;#039;t forget that after your building is upgraded, you still need all your units to train inside your building. It will take some time until you will see your units go faster or fight better.&lt;br /&gt;
&lt;br /&gt;
*Also don&amp;#039;t forget to manage your units with [[Flags_and_special_areas| flags and special areas]].&lt;br /&gt;
&lt;br /&gt;
=Further readings=&lt;br /&gt;
* [[Frequently Asked Questions]], if you have unanswered questions&lt;br /&gt;
* [[Units]]&lt;br /&gt;
* [[Buildings]]&lt;br /&gt;
* [[Maps]]&lt;br /&gt;
* [[Prestige]]&lt;br /&gt;
* [[Combat]]&lt;br /&gt;
* [[Fruit and conversion]]&lt;br /&gt;
* [[Flags and special areas]]&lt;br /&gt;
* [[AI|Artificial Intelligences]]&lt;br /&gt;
* [[YOG|Ysagoon Online Gaming]] (metaserver)&lt;br /&gt;
* [[Farming]]&lt;br /&gt;
&lt;br /&gt;
[[Category:en]]&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=User:Giszmo&amp;diff=5716</id>
		<title>User:Giszmo</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=User:Giszmo&amp;diff=5716"/>
		<updated>2010-02-21T14:25:32Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== color transformation for color blind people ==&lt;br /&gt;
&lt;br /&gt;
glob2&amp;#039;s team coloring already allows to use more than one color for the team layer. in order to make it easier for color blind people to distinguish units and buildings, we should use more than one color. for aesthetic reasons we also should use more than shades of brightness of one color.&lt;br /&gt;
&lt;br /&gt;
In the following image left colon is what we have now. right is what could be done with no effort at all. The main color red, green and turquoise are visible at first sight for non-color-blinds but color blinds should also be able to distinguish the &amp;quot;green&amp;quot; from the &amp;quot;red&amp;quot; building.&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortrans.png]]&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=File:Colortrans.png&amp;diff=5715</id>
		<title>File:Colortrans.png</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=File:Colortrans.png&amp;diff=5715"/>
		<updated>2010-02-21T14:19:19Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
	<entry>
		<id>https://globulation2.org/index.php?title=MediaWiki:Sidebar&amp;diff=5710</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://globulation2.org/index.php?title=MediaWiki:Sidebar&amp;diff=5710"/>
		<updated>2010-01-26T11:06:16Z</updated>

		<summary type="html">&lt;p&gt;Giszmo: irc added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Players&lt;br /&gt;
** Download_and_Install|Download &amp;amp; Install&lt;br /&gt;
** Screenshots|Screenshots&lt;br /&gt;
** Videos|Videos&lt;br /&gt;
** User_Manual|User Manual&lt;br /&gt;
** Frequently_Asked_Questions|FAQ&lt;br /&gt;
** http://www.globulation2.org/forums/index.php|Forum&lt;br /&gt;
** IRC|Chat&lt;br /&gt;
** http://glob2.uservoice.com/pages/4988-globulation-2|Request A Feature&lt;br /&gt;
** Bug_Reports|Report A Bug&lt;br /&gt;
&lt;br /&gt;
* Developers&lt;br /&gt;
** Developer_Center|Developer Center&lt;br /&gt;
** Contributor_Center|Contributor Center&lt;br /&gt;
** Mercurial|Source Access&lt;br /&gt;
** https://savannah.nongnu.org/mail/?group=glob2|Mailing Lists&lt;br /&gt;
** https://savannah.nongnu.org/bugs/?group=glob2|View Bugs&lt;/div&gt;</summary>
		<author><name>Giszmo</name></author>
		
	</entry>
</feed>