<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openclonk.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PeterW</id>
	<title>OpenClonk Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openclonk.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PeterW"/>
	<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/w/Special:Contributions/PeterW"/>
	<updated>2026-04-28T22:42:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1676</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1676"/>
		<updated>2015-10-04T19:06:14Z</updated>

		<summary type="html">&lt;p&gt;PeterW: Image sizes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DE:Kompilieren unter Windows|German Version here]]&lt;br /&gt;
&lt;br /&gt;
= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work - if you want, you can afterwards read [[Git Workflow|the Git article]] to see how that works. For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseGit ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [https://tortoisegit.org/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
Proceed to the &amp;quot;Download&amp;quot; page and select the appropriate installer. If unsure, you probably want the 64-bit version:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. Just selecting the default options should get you through.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; If you want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] to push commits, make sure to select the appropriate option along the way. Do it again for the msysGit installation below.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
You also need to install [https://git-for-windows.github.io/ Git for Windows], which is what actually does all the work behind the scenes. Following this link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png|860px]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources. After you&#039;re done, you can check the [[Git Workflow]] page for how to work with your clone.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;.  Here&#039;s how it should look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; Use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; instead and activate the option to auto-load the PuTTY key for maximum convenience.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseGit will work for a while. After watching a progress bar for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png|860px]]&lt;br /&gt;
&lt;br /&gt;
There is a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [https://www.visualstudio.com/downloads/download-visual-studio-vs# Visual Studio 2015 Express for Desktop]. Follow that link, then click on &amp;quot;Visual Studio 2015&amp;quot; and &amp;quot;Express 2015 for Desktop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Build_windows_msvc2015.png|860px|Make extra sure you got the &amp;quot;Express 2015 for Desktop.]]&lt;br /&gt;
&lt;br /&gt;
Run it, accept the licensing terms, click the big &amp;quot;Install&amp;quot; link and accept the UAC prompt. Then go make a coffee because the install will probably take a while.&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could expend some effort try to find, download, and compile all those libraries by yourself, but that would take quite some time. Instead, just download one of the packages we&#039;ve provided for your convenience:&lt;br /&gt;
&lt;br /&gt;
* [http://people.ds.cam.ac.uk/pw410/out/openclonk-deps-vs140-i386-easy.7z the x86 package] (we&#039;ll assume this one)&lt;br /&gt;
* [http://people.ds.cam.ac.uk/pw410/out/openclonk-deps-vs140-amd64-easy2.7z the amd64 package]&lt;br /&gt;
&lt;br /&gt;
These packages are made for unpacking directly into the &amp;quot;openclonk&amp;quot; folder you created above, which will put a couple of DLL files into the root and create a &amp;quot;deps&amp;quot; folder. If you would like to organise the dependencies yourself, use the original dependency files provided by Isilkor ([https://www.nosebud.de/~nh/openclonk/openclonk-deps-vs140-i386.7z x86] and [https://www.nosebud.de/~nh/openclonk/openclonk-deps-vs140-amd64.7z amd64]).&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
You can set the build path to any directory you want, but it is important that the &amp;quot;deps&amp;quot; folder from the last step is also in that directory.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use; either &amp;quot;Visual Studio 14 2015&amp;quot; if you downloaded the x86-bit library package above, or &amp;quot;Visual Studio 14 2015 Win64&amp;quot; if you got the amd64-bit package.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;openclonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
Now press F5 (or, if you prefer, click the &amp;quot;Local Windows Debugger&amp;quot; button in the tool bar). Visual Studio will notice that you don&#039;t actually have a current compiled version of OpenClonk yet. Tell it to build one, and if you like also tell it to always just automatically build a new version using the check box.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_outofdate.png]]&lt;br /&gt;
&lt;br /&gt;
If all goes well, after a couple of minutes you&#039;ll be looking at the OpenClonk main menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1675</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1675"/>
		<updated>2015-10-04T19:04:53Z</updated>

		<summary type="html">&lt;p&gt;PeterW: Windows 10 / MSVC 2015 version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DE:Kompilieren unter Windows|German Version here]]&lt;br /&gt;
&lt;br /&gt;
= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work - if you want, you can afterwards read [[Git Workflow|the Git article]] to see how that works. For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseGit ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [https://tortoisegit.org/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
Proceed to the &amp;quot;Download&amp;quot; page and select the appropriate installer. If unsure, you probably want the 64-bit version:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. Just selecting the default options should get you through.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; If you want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] to push commits, make sure to select the appropriate option along the way. Do it again for the msysGit installation below.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
You also need to install [https://git-for-windows.github.io/ Git for Windows], which is what actually does all the work behind the scenes. Following this link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png|860px]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources. After you&#039;re done, you can check the [[Git Workflow]] page for how to work with your clone.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;.  Here&#039;s how it should look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; Use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; instead and activate the option to auto-load the PuTTY key for maximum convenience.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseGit will work for a while. After watching a progress bar for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png]]&lt;br /&gt;
&lt;br /&gt;
There is a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [https://www.visualstudio.com/downloads/download-visual-studio-vs# Visual Studio 2015 Express for Desktop]. Follow that link, then click on &amp;quot;Visual Studio 2015&amp;quot; and &amp;quot;Express 2015 for Desktop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Build_windows_msvc2015.png|860px|Make extra sure you got the &amp;quot;Express 2015 for Desktop.]]&lt;br /&gt;
&lt;br /&gt;
Run it, accept the licensing terms, click the big &amp;quot;Install&amp;quot; link and accept the UAC prompt. Then go make a coffee because the install will probably take a while.&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could expend some effort try to find, download, and compile all those libraries by yourself, but that would take quite some time. Instead, just download one of the packages we&#039;ve provided for your convenience:&lt;br /&gt;
&lt;br /&gt;
* [http://people.ds.cam.ac.uk/pw410/out/openclonk-deps-vs140-i386-easy.7z the x86 package] (we&#039;ll assume this one)&lt;br /&gt;
* [http://people.ds.cam.ac.uk/pw410/out/openclonk-deps-vs140-amd64-easy2.7z the amd64 package]&lt;br /&gt;
&lt;br /&gt;
These packages are made for unpacking directly into the &amp;quot;openclonk&amp;quot; folder you created above, which will put a couple of DLL files into the root and create a &amp;quot;deps&amp;quot; folder. If you would like to organise the dependencies yourself, use the original dependency files provided by Isilkor ([https://www.nosebud.de/~nh/openclonk/openclonk-deps-vs140-i386.7z x86] and [https://www.nosebud.de/~nh/openclonk/openclonk-deps-vs140-amd64.7z amd64]).&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
You can set the build path to any directory you want, but it is important that the &amp;quot;deps&amp;quot; folder from the last step is also in that directory.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use; either &amp;quot;Visual Studio 14 2015&amp;quot; if you downloaded the x86-bit library package above, or &amp;quot;Visual Studio 14 2015 Win64&amp;quot; if you got the amd64-bit package.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;openclonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
Now press F5 (or, if you prefer, click the &amp;quot;Local Windows Debugger&amp;quot; button in the tool bar). Visual Studio will notice that you don&#039;t actually have a current compiled version of OpenClonk yet. Tell it to build one, and if you like also tell it to always just automatically build a new version using the check box.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_outofdate.png]]&lt;br /&gt;
&lt;br /&gt;
If all goes well, after a couple of minutes you&#039;ll be looking at the OpenClonk main menu.&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Openclonk_first_start.jpg&amp;diff=1674</id>
		<title>File:Openclonk first start.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Openclonk_first_start.jpg&amp;diff=1674"/>
		<updated>2015-10-04T18:37:30Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Openclonk first start.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of the first start of Openclonk.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_build3.png&amp;diff=1673</id>
		<title>File:Build windows build3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_build3.png&amp;diff=1673"/>
		<updated>2015-10-04T18:32:38Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows build3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_build2.png&amp;diff=1672</id>
		<title>File:Build windows build2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_build2.png&amp;diff=1672"/>
		<updated>2015-10-04T18:32:25Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows build2.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_build1.png&amp;diff=1671</id>
		<title>File:Build windows build1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_build1.png&amp;diff=1671"/>
		<updated>2015-10-04T18:32:14Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows build1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake4.png&amp;diff=1670</id>
		<title>File:Build windows cmake4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake4.png&amp;diff=1670"/>
		<updated>2015-10-04T18:31:52Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows cmake4.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake3.png&amp;diff=1669</id>
		<title>File:Build windows cmake3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake3.png&amp;diff=1669"/>
		<updated>2015-10-04T18:31:40Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows cmake3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake2.png&amp;diff=1668</id>
		<title>File:Build windows cmake2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake2.png&amp;diff=1668"/>
		<updated>2015-10-04T18:31:31Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows cmake2.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake1.png&amp;diff=1667</id>
		<title>File:Build windows cmake1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_cmake1.png&amp;diff=1667"/>
		<updated>2015-10-04T18:31:22Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows cmake1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_msvc2015.png&amp;diff=1666</id>
		<title>File:Build windows msvc2015.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_msvc2015.png&amp;diff=1666"/>
		<updated>2015-10-04T18:30:30Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_finish.png&amp;diff=1665</id>
		<title>File:Build windows tgit finish.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_finish.png&amp;diff=1665"/>
		<updated>2015-10-04T18:29:39Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit finish.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_pub.png&amp;diff=1664</id>
		<title>File:Build windows tgit pub.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_pub.png&amp;diff=1664"/>
		<updated>2015-10-04T18:29:28Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit pub.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit6.png&amp;diff=1663</id>
		<title>File:Build windows tgit6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit6.png&amp;diff=1663"/>
		<updated>2015-10-04T18:29:10Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit6.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit5.png&amp;diff=1662</id>
		<title>File:Build windows tgit5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit5.png&amp;diff=1662"/>
		<updated>2015-10-04T18:28:52Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit5.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit3.png&amp;diff=1661</id>
		<title>File:Build windows tgit3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit3.png&amp;diff=1661"/>
		<updated>2015-10-04T18:28:41Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit4.png&amp;diff=1660</id>
		<title>File:Build windows tgit4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit4.png&amp;diff=1660"/>
		<updated>2015-10-04T18:28:31Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit4.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit4.png&amp;diff=1659</id>
		<title>File:Build windows tgit4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit4.png&amp;diff=1659"/>
		<updated>2015-10-04T18:28:07Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit4.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit2.png&amp;diff=1658</id>
		<title>File:Build windows tgit2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit2.png&amp;diff=1658"/>
		<updated>2015-10-04T18:27:55Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit2.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit.png&amp;diff=1657</id>
		<title>File:Build windows tgit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit.png&amp;diff=1657"/>
		<updated>2015-10-04T18:26:53Z</updated>

		<summary type="html">&lt;p&gt;PeterW: PeterW uploaded a new version of File:Build windows tgit.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Development&amp;diff=1316</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Development&amp;diff=1316"/>
		<updated>2013-01-23T12:14:49Z</updated>

		<summary type="html">&lt;p&gt;PeterW: /* Build OpenClonk Yourself */ Fixed Mercurial references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
OpenClonk is an open project. That means it depends on people coming in and helping out. People just like you! This page should give you an idea what you could do in order to get involved.&lt;br /&gt;
&lt;br /&gt;
=== Use Development Snapshots ===&lt;br /&gt;
&lt;br /&gt;
OpenClonk is continously in development. The &amp;quot;current&amp;quot; version can change daily! If you want to follow the development, it is a good idea to make sure you are able to run development versions. You will not need to build them yourself - just use the development snapshots linked below and you should be ready to go.&lt;br /&gt;
&lt;br /&gt;
* Development Snapshots - [http://www.openclonk.org/nightly-builds/ www.openclonk.org/nightly-builds/]&lt;br /&gt;
* Blog - [http://blog.openclonk.org blog.openclonk.org]&lt;br /&gt;
* Changelog - [http://git.openclonk.org/openclonk.git git.openclonk.org/openclonk.git]&lt;br /&gt;
* Browse source - [http://git.openclonk.org/openclonk.git/tree/refs/heads/master git.openclonk.org/openclonk.git/tree/refs/heads/master]&lt;br /&gt;
&lt;br /&gt;
=== Report Bugs ===&lt;br /&gt;
&lt;br /&gt;
We cannot possibly account for every possible configuration out there. If you see something that&#039;s wrong, we would really like to know about it. Especially if you are willing to actively work with us in finding a solution for the problem.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how you can reach us:&lt;br /&gt;
&lt;br /&gt;
* IRC - [irc://irc.euirc.net/openclonk-dev/ #openclonk-dev] on irc.euirc.net (Problems connecting? Use irc.ham.de.euirc.net)&lt;br /&gt;
* Bugtracker - [http://bugs.openclonk.org bugs.openclonk.org]&lt;br /&gt;
* Forum - [http://forum.openclonk.org forum.openclonk.org]&lt;br /&gt;
&lt;br /&gt;
=== Contribute Scripts or Game Content ===&lt;br /&gt;
&lt;br /&gt;
Just like Clonk Rage before, most things in OpenClonk can be changed without touching the engine. Instead, we rely on a script language and a flexible game content system to make up our game content. This means that you can get involved easily - without having to learn C++ first! Traditionally, developing own objects and scenarios and sharing them with others has been how pretty much all of today&#039;s developers started out.&lt;br /&gt;
&lt;br /&gt;
* Developer Documentation [http://docs.openclonk.org/en/sdk/ docs.openclonk.org/en/sdk/]&lt;br /&gt;
* Forum - [http://forum.openclonk.org forum.openclonk.org]&lt;br /&gt;
* Style Guide - [http://wiki.openclonk.org/w/C4Script_Style_Guidelines wiki.openclonk.org/w/C4Script_Style_Guidelines]&lt;br /&gt;
* Contribute changes - [[Git Workflow]]&lt;br /&gt;
&lt;br /&gt;
=== Build OpenClonk Yourself ===&lt;br /&gt;
&lt;br /&gt;
When delving deeper into OpenClonk, you will often find yourself in the situation that you need a closer look at what makes OpenClonk tick internally. At that point, it is a good idea to assume the perspective of developers - get the source code and build it in your own development environment.&lt;br /&gt;
&lt;br /&gt;
* Tutorial for Windows - [http://wiki.openclonk.org/w/Building_with_Windows wiki.openclonk.org/w/Building_with_Windows]&lt;br /&gt;
* General instructions - [http://wiki.openclonk.org/w/Build_OpenClonk wiki.openclonk.org/w/Build_OpenClonk]&lt;br /&gt;
* Git Workflow Guide - [http://wiki.openclonk.org/w/Git_Workflow wiki.openclonk.org/w/Git_Workflow]&lt;br /&gt;
* Git Repository - [http://git.openclonk.org/openclonk.git git.openclonk.org/openclonk.git]&lt;br /&gt;
* Source Code Structure - [http://wiki.openclonk.org/w/Source_code_structure wiki.openclonk.org/w/Source_code_structure]&lt;br /&gt;
&lt;br /&gt;
=== Hack the OpenClonk Engine ===&lt;br /&gt;
&lt;br /&gt;
Maybe you already are well-versed in C++ and want to help out actually diagnosing problems? Or - even better - have your own ideas on engine improvements? We are always glad to look at patches.&lt;br /&gt;
&lt;br /&gt;
* Wondering where to start? - [[GSoC2011Ideas|Ideas page]]&lt;br /&gt;
* Debugging synchronization losses - [http://wiki.openclonk.org/w/Sync_losses wiki.openclonk.org/w/Sync_Losses]&lt;br /&gt;
* Style Guide - [http://wiki.openclonk.org/w/Style_Guidelines wiki.openclonk.org/w/Style_Guidelines]&lt;br /&gt;
* Forum, developers&#039; corner - [http://forum.openclonk.org/board_show.pl?bid=5 forum.openclonk.org]&lt;br /&gt;
* Contribute changes - [[Git Workflow]]&lt;br /&gt;
&lt;br /&gt;
=== Legal Stuff ===&lt;br /&gt;
&lt;br /&gt;
OpenClonk uses the ISC license for code (engine and script) and CC-by for most other media. Read more about the [[License | license stuff]] here.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_pub.png&amp;diff=1287</id>
		<title>File:Build windows tgit pub.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_pub.png&amp;diff=1287"/>
		<updated>2012-12-03T20:16:35Z</updated>

		<summary type="html">&lt;p&gt;PeterW: uploaded a new version of &amp;amp;quot;File:Build windows tgit pub.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1286</id>
		<title>Git Workflow</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1286"/>
		<updated>2012-12-02T10:28:59Z</updated>

		<summary type="html">&lt;p&gt;PeterW: /* Creating a Patch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
As an open source project, we want to make it easy for a lot of people to work on&lt;br /&gt;
our code - even people that aren&#039;t directly involved in the project!&lt;br /&gt;
That&#039;s why we use a distributed version control system called [http://git-scm.com/ Git],&lt;br /&gt;
which makes sure that all files stay consistent and it&#039;s not too easy to lose your data&lt;br /&gt;
when things get complicated. This article will walk you through how you can use this system&lt;br /&gt;
to organize and submit your changes to OpenClonk.&lt;br /&gt;
&lt;br /&gt;
We will assume here that you have a clone of the OpenClonk repository like the one&lt;br /&gt;
you created if you followed the [[Building_with_Windows|Windows build tutorial]]. If you haven&#039;t, just follow the tutorial and return here after you have finished the &amp;quot;Clone&amp;quot; section.&lt;br /&gt;
The screenshots and explanations will also be somewhat specific to TortoiseGit. &lt;br /&gt;
On the other hand, the workflow is equally viable no matter what Git interface you use.&lt;br /&gt;
&lt;br /&gt;
= Committing your Changes =&lt;br /&gt;
&lt;br /&gt;
The first step is to actually make some meaningful changes to OpenClonk.&lt;br /&gt;
TortoiseGit will detect your work and automatically mark files or directories that have changed:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit1.png]]&lt;br /&gt;
&lt;br /&gt;
To register your changes with Git, you need to &amp;quot;commit&amp;quot; them using the &amp;quot;Git Commit&amp;quot; entry from the right-click menu.&lt;br /&gt;
Here you can select what files you want to include in the commit, and give a message&lt;br /&gt;
describing what you have done. Try to give a short summary of the change in the first&lt;br /&gt;
line, followed by more details and explanations after one empty line.&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit2.png]]&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to commit early, as registering changes with Git means they will be a lot harder to lose.&lt;br /&gt;
It&#039;s a good idea to do this even if you know that you will want to do additional changes to the commit later:&lt;br /&gt;
The commit window allows you to &amp;quot;amend&amp;quot; the last commit so you&lt;br /&gt;
can keep working on it.&lt;br /&gt;
&lt;br /&gt;
For even more flexibility, simply create another&lt;br /&gt;
commit for additional changes and [[#Reorganizing Changes|&amp;quot;squash&amp;quot; them later]]. This is also a good idea because it allows &lt;br /&gt;
you to go back and forth between revisions until you are convinced that your change works. It might even be&lt;br /&gt;
a good idea to mark commits that you want to be merged with a marker like &amp;quot;[squash!]&amp;quot; so&lt;br /&gt;
you don&#039;t forget to merge the changes later on.&lt;br /&gt;
&lt;br /&gt;
= Synchronizing your Repository =&lt;br /&gt;
&lt;br /&gt;
OpenClonk is under constant development, and it&#039;s generally a good idea to stay up-to-date.&lt;br /&gt;
Maybe uninuitively, this is especially vital if you are thinking of submitting a change:&lt;br /&gt;
You need to make sure that your changes work with where development is currently at.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Git Sync...&amp;quot; context menu entry to see something like the following dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_sync1.png]]&lt;br /&gt;
&lt;br /&gt;
There are a number of ways you can synchronize your repository: The default one will be&lt;br /&gt;
&amp;quot;Pull&amp;quot;, which is okay as long as you don&#039;t have any changes of your own. As the screenshot shows that we actually&lt;br /&gt;
have some changes, we want to use &amp;quot;Fetch&amp;amp;Rebase&amp;quot;. This will cause Git to download the changes&lt;br /&gt;
and then start a &amp;quot;rebase&amp;quot;, which we will explain in the next section.&lt;br /&gt;
&lt;br /&gt;
= Rebasing your Changes =&lt;br /&gt;
&lt;br /&gt;
The main idea with rebasing is to update your changes so they apply cleanly to the current state of the repository. This is important, as some parallel changes might have conflicted with what you have done.&lt;br /&gt;
&lt;br /&gt;
The rebase window will come up automatically if you chose &amp;quot;Fetch&amp;amp;Rebase&amp;quot; in the last step,&lt;br /&gt;
but you can reach it manually using the &amp;quot;Rebase...&amp;quot; entry in the TortoiseGit right-click menu. It should look like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase1.png]]&lt;br /&gt;
&lt;br /&gt;
What is happening here? The idea of a rebase is simple: The listed changes have been done to&lt;br /&gt;
an out-of-date repository, therefore they need to be updated for the new state of the OpenClonk repository.&lt;br /&gt;
To do this, Git will first temporarily (!) remove your changes, then check out the new&lt;br /&gt;
repository state, and finally try to &amp;quot;replay&amp;quot; the changes in the list.&lt;br /&gt;
Pressing &amp;quot;Start Rebasing&amp;quot; starts this process, resulting in all your commits getting updated -&lt;br /&gt;
unless conflicts happen, which we will explain below.&lt;br /&gt;
&lt;br /&gt;
== Reorganizing Changes ==&lt;br /&gt;
&lt;br /&gt;
Before we get to conflicts though, note that the rebase window allows you to reorder, edit and &amp;quot;squash&amp;quot; (merge) changes.&lt;br /&gt;
This is Git&#039;s workflow philosophy - as rebasing means re-applying all your changes, it might&lt;br /&gt;
as well allow you to change and reorder them while we&#039;re at it. Let&#039;s say we want to merge the two&lt;br /&gt;
commits for Credits.txt. We do this by making sure that the commits appear directly after each other&lt;br /&gt;
in the list, then change the &amp;quot;REBASE&amp;quot; state to &amp;quot;Sqash&amp;quot; for the &#039;&#039;later&#039;&#039; commit (look at the ID if unsure):&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase2.png]]&lt;br /&gt;
&lt;br /&gt;
When we select &amp;quot;Start Rebasing&amp;quot; now, rebasing will actually suspend after the first two commits so&lt;br /&gt;
we can edit the message for the merged commit. By default Git will just &lt;br /&gt;
append the two original messages, which we most likely&lt;br /&gt;
want to change:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase3.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that in the list the first commit is grayed out now to signify that it has already been converted at this point, and the second commit is bold as we&lt;br /&gt;
are currently considering how to re-record it.&lt;br /&gt;
When you&#039;re finished, press &amp;quot;Commit&amp;quot; to continue and eventually finish rebasing.&lt;br /&gt;
&lt;br /&gt;
== Conflicts and Editing ==&lt;br /&gt;
&lt;br /&gt;
Git is pretty smart about making sense of your changes even if the repository has changed. Sometimes, though, it will still&lt;br /&gt;
run into a problem where it has to request your help in figuring out what to do:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase4.png]]&lt;br /&gt;
&lt;br /&gt;
Here Git has encountered a conflict while trying to apply the bold change, in the file marked in red.&lt;br /&gt;
If we open the file, we might find something like follows:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key \&amp;quot;%s\&amp;quot;.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    #endif&lt;br /&gt;
    =======&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key %s.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 6e29e01... Removed quotes from message&lt;br /&gt;
&lt;br /&gt;
This is telling us that while our commit (6e29e01) changed these lines to something, the OpenClonk&lt;br /&gt;
repository (HEAD) changed them to something else. To resolve this, we update all conflicted files to the correct&lt;br /&gt;
state, mark the files as &amp;quot;Resolved&amp;quot; (using the right-click menu) and finally press &amp;quot;Commit&amp;quot; &lt;br /&gt;
in order to accept the resolution.&lt;br /&gt;
&lt;br /&gt;
= Submitting your Change =&lt;br /&gt;
&lt;br /&gt;
After you have rebased your changes to the current state of the OpenClonk repository (&#039;&#039;important!&#039;&#039;) you&lt;br /&gt;
can attempt to submit your changes. How you do this depends on whether you are an OpenClonk&lt;br /&gt;
team member or not: You either have to submit a patch, or can push the OpenClonk repository directly.&lt;br /&gt;
We will explain both methods here.&lt;br /&gt;
&lt;br /&gt;
== Creating a Patch ==&lt;br /&gt;
&lt;br /&gt;
In order to get a commit into the repository as a non-team member, you will have to send&lt;br /&gt;
the change to somebody that can review and accept it, for example by posting it in the forum.&lt;br /&gt;
The first step is to package your change as a patch file.&lt;br /&gt;
&lt;br /&gt;
To do this, use the &amp;quot;Create Patch Serial...&amp;quot; or &amp;quot;Format Patch&amp;quot; option from the right-click menu&lt;br /&gt;
(it&#039;s the same thing, just named differently depending on where you are). You should get the&lt;br /&gt;
following window:&lt;br /&gt;
&lt;br /&gt;
[[File:ghc_work_patch1.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure to select &amp;quot;FETCH_HEAD&amp;quot; in the &amp;quot;Since&amp;quot; field in order to get all patches that are&lt;br /&gt;
new relative to the OpenClonk repository. Otherwise, TortoiseGit can use pretty nonsensical defaults&lt;br /&gt;
and produce thousands of useless patches as a result.&lt;br /&gt;
Select a convenient directory for the patches to go into, and select &amp;quot;OK&amp;quot; to get the ball rolling.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you should see all your changes as conveniently-named patch files in the directory you have chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:ghc_work_patch2.png]]&lt;br /&gt;
&lt;br /&gt;
You can send this to an OpenClonk team member - or anybody with an OpenClonk repository clone, really - &lt;br /&gt;
and they will be able to import your change. If they tell you that the patch doesn&#039;t apply cleanly, this probably&lt;br /&gt;
means that you have to synchronize and rebase again (see previous section).&lt;br /&gt;
&lt;br /&gt;
== Pushing Changes ==&lt;br /&gt;
&lt;br /&gt;
Pushing a change directly is slightly easier - all you have to do is select &amp;quot;Push&amp;quot; from the synchronization&lt;br /&gt;
window. What can happen here is that you get a message of the form:&lt;br /&gt;
&lt;br /&gt;
    Pushing to ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    To ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    ! [rejected]        master -&amp;gt; master (non-fast-forward)&lt;br /&gt;
    error: failed to push some refs to &#039;ssh://git@git.openclonk.org/openclonk.git&#039;&lt;br /&gt;
    hint: Updates were rejected because the tip of your current branch is behind&lt;br /&gt;
    hint: its remote counterpart. Merge the remote changes (e.g. &#039;git pull&#039;)&lt;br /&gt;
    hint: before pushing again.&lt;br /&gt;
&lt;br /&gt;
This helpful message tells you that you have forgotten to synchronize &amp;amp; rebase before trying to push. Better get used to it :-)&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1285</id>
		<title>Git Workflow</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1285"/>
		<updated>2012-12-01T21:30:19Z</updated>

		<summary type="html">&lt;p&gt;PeterW: Added note for how to the repository, just in case somebody lands here.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
As an open source project, we want to make it easy for a lot of people to work on&lt;br /&gt;
our code - even people that aren&#039;t directly involved in the project!&lt;br /&gt;
That&#039;s why we use a distributed version control system called [http://git-scm.com/ Git],&lt;br /&gt;
which makes sure that all files stay consistent and it&#039;s not too easy to lose your data&lt;br /&gt;
when things get complicated. This article will walk you through how you can use this system&lt;br /&gt;
to organize and submit your changes to OpenClonk.&lt;br /&gt;
&lt;br /&gt;
We will assume here that you have a clone of the OpenClonk repository like the one&lt;br /&gt;
you created if you followed the [[Building_with_Windows|Windows build tutorial]]. If you haven&#039;t, just follow the tutorial and return here after you have finished the &amp;quot;Clone&amp;quot; section.&lt;br /&gt;
The screenshots and explanations will also be somewhat specific to TortoiseGit. &lt;br /&gt;
On the other hand, the workflow is equally viable no matter what Git interface you use.&lt;br /&gt;
&lt;br /&gt;
= Committing your Changes =&lt;br /&gt;
&lt;br /&gt;
The first step is to actually make some meaningful changes to OpenClonk.&lt;br /&gt;
TortoiseGit will detect your work and automatically mark files or directories that have changed:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit1.png]]&lt;br /&gt;
&lt;br /&gt;
To register your changes with Git, you need to &amp;quot;commit&amp;quot; them using the &amp;quot;Git Commit&amp;quot; entry from the right-click menu.&lt;br /&gt;
Here you can select what files you want to include in the commit, and give a message&lt;br /&gt;
describing what you have done. Try to give a short summary of the change in the first&lt;br /&gt;
line, followed by more details and explanations after one empty line.&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit2.png]]&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to commit early, as registering changes with Git means they will be a lot harder to lose.&lt;br /&gt;
It&#039;s a good idea to do this even if you know that you will want to do additional changes to the commit later:&lt;br /&gt;
The commit window allows you to &amp;quot;amend&amp;quot; the last commit so you&lt;br /&gt;
can keep working on it.&lt;br /&gt;
&lt;br /&gt;
For even more flexibility, simply create another&lt;br /&gt;
commit for additional changes and [[#Reorganizing Changes|&amp;quot;squash&amp;quot; them later]]. This is also a good idea because it allows &lt;br /&gt;
you to go back and forth between revisions until you are convinced that your change works. It might even be&lt;br /&gt;
a good idea to mark commits that you want to be merged with a marker like &amp;quot;[squash!]&amp;quot; so&lt;br /&gt;
you don&#039;t forget to merge the changes later on.&lt;br /&gt;
&lt;br /&gt;
= Synchronizing your Repository =&lt;br /&gt;
&lt;br /&gt;
OpenClonk is under constant development, and it&#039;s generally a good idea to stay up-to-date.&lt;br /&gt;
Maybe uninuitively, this is especially vital if you are thinking of submitting a change:&lt;br /&gt;
You need to make sure that your changes work with where development is currently at.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Git Sync...&amp;quot; context menu entry to see something like the following dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_sync1.png]]&lt;br /&gt;
&lt;br /&gt;
There are a number of ways you can synchronize your repository: The default one will be&lt;br /&gt;
&amp;quot;Pull&amp;quot;, which is okay as long as you don&#039;t have any changes of your own. As the screenshot shows that we actually&lt;br /&gt;
have some changes, we want to use &amp;quot;Fetch&amp;amp;Rebase&amp;quot;. This will cause Git to download the changes&lt;br /&gt;
and then start a &amp;quot;rebase&amp;quot;, which we will explain in the next section.&lt;br /&gt;
&lt;br /&gt;
= Rebasing your Changes =&lt;br /&gt;
&lt;br /&gt;
The main idea with rebasing is to update your changes so they apply cleanly to the current state of the repository. This is important, as some parallel changes might have conflicted with what you have done.&lt;br /&gt;
&lt;br /&gt;
The rebase window will come up automatically if you chose &amp;quot;Fetch&amp;amp;Rebase&amp;quot; in the last step,&lt;br /&gt;
but you can reach it manually using the &amp;quot;Rebase...&amp;quot; entry in the TortoiseGit right-click menu. It should look like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase1.png]]&lt;br /&gt;
&lt;br /&gt;
What is happening here? The idea of a rebase is simple: The listed changes have been done to&lt;br /&gt;
an out-of-date repository, therefore they need to be updated for the new state of the OpenClonk repository.&lt;br /&gt;
To do this, Git will first temporarily (!) remove your changes, then check out the new&lt;br /&gt;
repository state, and finally try to &amp;quot;replay&amp;quot; the changes in the list.&lt;br /&gt;
Pressing &amp;quot;Start Rebasing&amp;quot; starts this process, resulting in all your commits getting updated -&lt;br /&gt;
unless conflicts happen, which we will explain below.&lt;br /&gt;
&lt;br /&gt;
== Reorganizing Changes ==&lt;br /&gt;
&lt;br /&gt;
Before we get to conflicts though, note that the rebase window allows you to reorder, edit and &amp;quot;squash&amp;quot; (merge) changes.&lt;br /&gt;
This is Git&#039;s workflow philosophy - as rebasing means re-applying all your changes, it might&lt;br /&gt;
as well allow you to change and reorder them while we&#039;re at it. Let&#039;s say we want to merge the two&lt;br /&gt;
commits for Credits.txt. We do this by making sure that the commits appear directly after each other&lt;br /&gt;
in the list, then change the &amp;quot;REBASE&amp;quot; state to &amp;quot;Sqash&amp;quot; for the &#039;&#039;later&#039;&#039; commit (look at the ID if unsure):&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase2.png]]&lt;br /&gt;
&lt;br /&gt;
When we select &amp;quot;Start Rebasing&amp;quot; now, rebasing will actually suspend after the first two commits so&lt;br /&gt;
we can edit the message for the merged commit. By default Git will just &lt;br /&gt;
append the two original messages, which we most likely&lt;br /&gt;
want to change:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase3.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that in the list the first commit is grayed out now to signify that it has already been converted at this point, and the second commit is bold as we&lt;br /&gt;
are currently considering how to re-record it.&lt;br /&gt;
When you&#039;re finished, press &amp;quot;Commit&amp;quot; to continue and eventually finish rebasing.&lt;br /&gt;
&lt;br /&gt;
== Conflicts and Editing ==&lt;br /&gt;
&lt;br /&gt;
Git is pretty smart about making sense of your changes even if the repository has changed. Sometimes, though, it will still&lt;br /&gt;
run into a problem where it has to request your help in figuring out what to do:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase4.png]]&lt;br /&gt;
&lt;br /&gt;
Here Git has encountered a conflict while trying to apply the bold change, in the file marked in red.&lt;br /&gt;
If we open the file, we might find something like follows:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key \&amp;quot;%s\&amp;quot;.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    #endif&lt;br /&gt;
    =======&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key %s.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 6e29e01... Removed quotes from message&lt;br /&gt;
&lt;br /&gt;
This is telling us that while our commit (6e29e01) changed these lines to something, the OpenClonk&lt;br /&gt;
repository (HEAD) changed them to something else. To resolve this, we update all conflicted files to the correct&lt;br /&gt;
state, mark the files as &amp;quot;Resolved&amp;quot; (using the right-click menu) and finally press &amp;quot;Commit&amp;quot; &lt;br /&gt;
in order to accept the resolution.&lt;br /&gt;
&lt;br /&gt;
= Submitting your Change =&lt;br /&gt;
&lt;br /&gt;
After you have rebased your changes to the current state of the OpenClonk repository (&#039;&#039;important!&#039;&#039;) you&lt;br /&gt;
can attempt to submit your changes. How you do this depends on whether you are an OpenClonk&lt;br /&gt;
team member or not: You either have to submit a patch, or can push the OpenClonk repository directly.&lt;br /&gt;
We will explain both methods here.&lt;br /&gt;
&lt;br /&gt;
== Creating a Patch ==&lt;br /&gt;
&lt;br /&gt;
In order to get a commit into the repository as a non-team member, you will have to send&lt;br /&gt;
the change to somebody that can review and accept it, for example by posting it in the forum.&lt;br /&gt;
The first step is to package your change as a patch file.&lt;br /&gt;
&lt;br /&gt;
To do this, use the &amp;quot;Create Patch Serial...&amp;quot; or &amp;quot;Format Patch&amp;quot; option from the right-click menu&lt;br /&gt;
(it&#039;s the same thing, just named differently depending on where you are). You should get the&lt;br /&gt;
following window:&lt;br /&gt;
&lt;br /&gt;
[[File:ghc_work_patch1.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure you should select &amp;quot;FETCH_HEAD&amp;quot; in the &amp;quot;Since&amp;quot; field in order to get all patches that are&lt;br /&gt;
new relative to the OpenClonk repository. Otherwise, TortoiseGit can use pretty nonsensical defaults&lt;br /&gt;
and produce thousands of useless patches as a result.&lt;br /&gt;
Select a convenient directory for the patches to go into, and select &amp;quot;OK&amp;quot; to get the ball rolling.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you should see all your changes as conveniently-named patch files in the directory you have chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:ghc_work_patch2.png]]&lt;br /&gt;
&lt;br /&gt;
You can send this to an OpenClonk team member - or anybody with an OpenClonk repository clone, really - &lt;br /&gt;
and they will be able to import your change. If they tell you that the patch doesn&#039;t apply cleanly, this probably&lt;br /&gt;
means that you have to synchronize and rebase again (see previous section).&lt;br /&gt;
&lt;br /&gt;
== Pushing Changes ==&lt;br /&gt;
&lt;br /&gt;
Pushing a change directly is slightly easier - all you have to do is select &amp;quot;Push&amp;quot; from the synchronization&lt;br /&gt;
window. What can happen here is that you get a message of the form:&lt;br /&gt;
&lt;br /&gt;
    Pushing to ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    To ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    ! [rejected]        master -&amp;gt; master (non-fast-forward)&lt;br /&gt;
    error: failed to push some refs to &#039;ssh://git@git.openclonk.org/openclonk.git&#039;&lt;br /&gt;
    hint: Updates were rejected because the tip of your current branch is behind&lt;br /&gt;
    hint: its remote counterpart. Merge the remote changes (e.g. &#039;git pull&#039;)&lt;br /&gt;
    hint: before pushing again.&lt;br /&gt;
&lt;br /&gt;
This helpful message tells you that you have forgotten to synchronize &amp;amp; rebase before trying to push. Better get used to it :-)&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Development&amp;diff=1284</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Development&amp;diff=1284"/>
		<updated>2012-12-01T21:28:15Z</updated>

		<summary type="html">&lt;p&gt;PeterW: Git workflow links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
OpenClonk is an open project. That means it depends on people coming in and helping out. People just like you! This page should give you an idea what you could do in order to get involved.&lt;br /&gt;
&lt;br /&gt;
=== Use Development Snapshots ===&lt;br /&gt;
&lt;br /&gt;
OpenClonk is continously in development. The &amp;quot;current&amp;quot; version can change daily! If you want to follow the development, it is a good idea to make sure you are able to run development versions. You will not need to build them yourself - just use the development snapshots linked below and you should be ready to go.&lt;br /&gt;
&lt;br /&gt;
* Development Snapshots - [http://www.openclonk.org/nightly-builds/ www.openclonk.org/nightly-builds/]&lt;br /&gt;
* Blog - [http://blog.openclonk.org blog.openclonk.org]&lt;br /&gt;
* Changelog - [http://hg.openclonk.org/openclonk/ hg.openclonk.org/openclonk/]&lt;br /&gt;
* Browse source - [http://hg.openclonk.org/openclonk/file/ hg.openclonk.org/openclonk/file/]&lt;br /&gt;
&lt;br /&gt;
=== Report Bugs ===&lt;br /&gt;
&lt;br /&gt;
We cannot possibly account for every possible configuration out there. If you see something that&#039;s wrong, we would really like to know about it. Especially if you are willing to actively work with us in finding a solution for the problem.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how you can reach us:&lt;br /&gt;
&lt;br /&gt;
* IRC - [irc://irc.euirc.net/openclonk-dev/ #openclonk-dev] on irc.euirc.net (Problems connecting? Use irc.ham.de.euirc.net)&lt;br /&gt;
* Bugtracker - [http://bugs.openclonk.org bugs.openclonk.org]&lt;br /&gt;
* Forum - [http://forum.openclonk.org forum.openclonk.org]&lt;br /&gt;
&lt;br /&gt;
=== Contribute Scripts or Game Content ===&lt;br /&gt;
&lt;br /&gt;
Just like Clonk Rage before, most things in OpenClonk can be changed without touching the engine. Instead, we rely on a script language and a flexible game content system to make up our game content. This means that you can get involved easily - without having to learn C++ first! Traditionally, developing own objects and scenarios and sharing them with others has been how pretty much all of today&#039;s developers started out.&lt;br /&gt;
&lt;br /&gt;
* Developer Documentation [http://docs.openclonk.org/en/sdk/ docs.openclonk.org/en/sdk/]&lt;br /&gt;
* Forum - [http://forum.openclonk.org forum.openclonk.org]&lt;br /&gt;
* Style Guide - [http://wiki.openclonk.org/w/C4Script_Style_Guidelines wiki.openclonk.org/w/C4Script_Style_Guidelines]&lt;br /&gt;
* Contribute changes - [[Git Workflow]]&lt;br /&gt;
&lt;br /&gt;
=== Build OpenClonk Yourself ===&lt;br /&gt;
&lt;br /&gt;
When delving deeper into OpenClonk, you will often find yourself in the situation that you need a closer look at what makes OpenClonk tick internally. At that point, it is a good idea to assume the perspective of developers - get the source code and build it in your own development environment.&lt;br /&gt;
&lt;br /&gt;
* Tutorial for Windows - [http://wiki.openclonk.org/w/Building_with_Windows wiki.openclonk.org/w/Building_with_Windows]&lt;br /&gt;
* General instructions - [http://wiki.openclonk.org/w/Build_OpenClonk wiki.openclonk.org/w/Build_OpenClonk]&lt;br /&gt;
* Mercurial Guide - [http://wiki.openclonk.org/w/Mercurial_Guide wiki.openclonk.org/w/Mercurial_Guide]&lt;br /&gt;
* Mercurial Repository - [http://hg.openclonk.org/openclonk/ hg.openclonk.org/openclonk/]&lt;br /&gt;
* Source Code Structure - [http://wiki.openclonk.org/w/Source_code_structure wiki.openclonk.org/w/Source_code_structure]&lt;br /&gt;
&lt;br /&gt;
=== Hack the OpenClonk Engine ===&lt;br /&gt;
&lt;br /&gt;
Maybe you already are well-versed in C++ and want to help out actually diagnosing problems? Or - even better - have your own ideas on engine improvements? We are always glad to look at patches.&lt;br /&gt;
&lt;br /&gt;
* Wondering where to start? - [[GSoC2011Ideas|Ideas page]]&lt;br /&gt;
* Debugging synchronization losses - [http://wiki.openclonk.org/w/Sync_losses wiki.openclonk.org/w/Sync_Losses]&lt;br /&gt;
* Style Guide - [http://wiki.openclonk.org/w/Style_Guidelines wiki.openclonk.org/w/Style_Guidelines]&lt;br /&gt;
* Forum, developers&#039; corner - [http://forum.openclonk.org/board_show.pl?bid=5 forum.openclonk.org]&lt;br /&gt;
* Contribute changes - [[Git Workflow]]&lt;br /&gt;
&lt;br /&gt;
=== Legal Stuff ===&lt;br /&gt;
&lt;br /&gt;
OpenClonk uses the ISC license for code (engine and script) and CC-by for most other media. Read more about the [[License | license stuff]] here.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1283</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1283"/>
		<updated>2012-12-01T21:25:06Z</updated>

		<summary type="html">&lt;p&gt;PeterW: Workflow links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work (see [[Git Workflow|the Git article]] for how that works). For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseGit ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [http://code.google.com/p/tortoisegit/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
As the website tells you, the installation of TortoiseGit has two parts: TortoiseGit and msysGit. It also says that you should start with TortoiseGit, so let us get that installer first. Make sure to choose the right architecture for your version of Windows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. Just selecting the default options should get you through alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; If you want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] to push commits, make sure to select the appropriate option along the way. Do it again for the msysGit installation below.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
Next, you need msysGit, which is what actually does all the work behind the scenes. Following the [http://code.google.com/p/msysgit/downloads/list?can=2&amp;amp;q=%22Full+installer+for+official+Git+for+Windows%22 &amp;quot;Full installer for official Git&amp;quot;] link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png|860px]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources you get. After you&#039;re done, you can check the [[Git Workflow]] page for how to work with your clone.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;.  Here&#039;s how it should look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; Use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; instead and activate the option to auto-load the PuTTY key for maximum convenience.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseGit will work for a while. After watching a tortoise somersaulting for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png]]&lt;br /&gt;
&lt;br /&gt;
This a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [http://www.microsoft.com/express/vc/#webInstall Visual Studio C++ 2010]. Follow that link, click yourself through the ever-shifting Microsoft website to the 2010 Express Edition, until you arrive at something that ideally looks like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc1_new.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The installer will offer us a lot of stuff we don&#039;t really need for OpenClonk. You should uncheck it to make the installation faster.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will most likely stare at the following screen for a bit. It won&#039;t take that long, and for me didn&#039;t even restart the computer like it suggested it would.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc3.png]]&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could try to search and download all those libraries by hand, but that would be pretty boring. Instead, just download [http://www.openclonk.org/openclonk-deps-vc90.zip this package] that contains everything you need to build Clonk.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_deps.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unpack both directories into the same path you put all the other files. Don&#039;t worry, nothing will get overwritten in &amp;quot;planet&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use, for example &amp;quot;Visual Studio 10&amp;quot;. Do &#039;&#039;not&#039;&#039; pick the Win64 option, as the precompiled libraries are 32 bit.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;clonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;Build Solution&amp;quot; from the &amp;quot;Build&amp;quot; menu (or just press F7). No, I don&#039;t know what &amp;quot;solution&amp;quot; means. Drink a cup of coffee or two while you wait for the compiler to do its job.&lt;br /&gt;
&lt;br /&gt;
Eventually, you will arrive at this screen.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nevertheless, you can now select &amp;quot;Start Debugging&amp;quot; from the &amp;quot;Debug&amp;quot; menu (or just press F5) and should be greeted by the startup screen of a fresh OpenClonk build!&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;br /&gt;
&lt;br /&gt;
= Enabling sound and DirectX =&lt;br /&gt;
&lt;br /&gt;
So far, the version of OpenClonk you can compile runs with OpenGL only and without sound. Here is how to enable both DirectX and sound:&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://msdn.microsoft.com/en-us/directx/default.aspx DirectX SDK] from the Microsoft website and install it. For sound, download the [http://www.fmod.org/index.php/download#FMOD3ProgrammersAPI FMOD 3 Programmers API] and unpack it somewhere. Now, you need to copy api/fmod.dll into your planet/ directory, all the files that are in api/inc to planet/deps/include and api/lib/fmodvc.lib to planet/deps/lib.&lt;br /&gt;
&lt;br /&gt;
Thats it. Now, you need to re-run CMake and check both USE_DIRECTX and USE_FMOD. Compiling the game with VC++ will now produce a build where you can hear the sound and use direct x.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1282</id>
		<title>Git Workflow</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1282"/>
		<updated>2012-12-01T21:10:10Z</updated>

		<summary type="html">&lt;p&gt;PeterW: /* Creating a Patch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
As an open source project, we want to make it easy for a lot of people to work on&lt;br /&gt;
our code - even people that aren&#039;t directly involved in the project!&lt;br /&gt;
That&#039;s why we use a distributed version control system called [http://git-scm.com/ Git],&lt;br /&gt;
which makes sure that all files stay consistent and it&#039;s not too easy to lose your data&lt;br /&gt;
when things get complicated. This article will walk you through how you can use this system&lt;br /&gt;
to organize and submit your changes to OpenClonk.&lt;br /&gt;
&lt;br /&gt;
We will assume here that you have a clone of the OpenClonk repository like the one&lt;br /&gt;
you created if you followed the [[Building_with_Windows|Windows build tutorial]].&lt;br /&gt;
The screenshots and explanations will also be somewhat specific to TortoiseGit. &lt;br /&gt;
On the other hand, the workflow is equally viable no matter what Git interface you use.&lt;br /&gt;
&lt;br /&gt;
= Committing your Changes =&lt;br /&gt;
&lt;br /&gt;
The first step is to actually make some meaningful changes to OpenClonk.&lt;br /&gt;
TortoiseGit will detect your work and automatically mark files or directories that have changed:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit1.png]]&lt;br /&gt;
&lt;br /&gt;
To register your changes with Git, you need to &amp;quot;commit&amp;quot; them using the &amp;quot;Git Commit&amp;quot; entry from the right-click menu.&lt;br /&gt;
Here you can select what files you want to include in the commit, and give a message&lt;br /&gt;
describing what you have done. Try to give a short summary of the change in the first&lt;br /&gt;
line, followed by more details and explanations after one empty line.&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit2.png]]&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to commit early, as registering changes with Git means they will be a lot harder to lose.&lt;br /&gt;
It&#039;s a good idea to do this even if you know that you will want to do additional changes to the commit later:&lt;br /&gt;
The commit window allows you to &amp;quot;amend&amp;quot; the last commit so you&lt;br /&gt;
can keep working on it.&lt;br /&gt;
&lt;br /&gt;
For even more flexibility, simply create another&lt;br /&gt;
commit for additional changes and [[#Reorganizing Changes|&amp;quot;squash&amp;quot; them later]]. This is also a good idea because it allows &lt;br /&gt;
you to go back and forth between revisions until you are convinced that your change works. It might even be&lt;br /&gt;
a good idea to mark commits that you want to be merged with a marker like &amp;quot;[squash!]&amp;quot; so&lt;br /&gt;
you don&#039;t forget to merge the changes later on.&lt;br /&gt;
&lt;br /&gt;
= Synchronizing your Repository =&lt;br /&gt;
&lt;br /&gt;
OpenClonk is under constant development, and it&#039;s generally a good idea to stay up-to-date.&lt;br /&gt;
Maybe uninuitively, this is especially vital if you are thinking of submitting a change:&lt;br /&gt;
You need to make sure that your changes work with where development is currently at.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Git Sync...&amp;quot; context menu entry to see something like the following dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_sync1.png]]&lt;br /&gt;
&lt;br /&gt;
There are a number of ways you can synchronize your repository: The default one will be&lt;br /&gt;
&amp;quot;Pull&amp;quot;, which is okay as long as you don&#039;t have any changes of your own. As the screenshot shows that we actually&lt;br /&gt;
have some changes, we want to use &amp;quot;Fetch&amp;amp;Rebase&amp;quot;. This will cause Git to download the changes&lt;br /&gt;
and then start a &amp;quot;rebase&amp;quot;, which we will explain in the next section.&lt;br /&gt;
&lt;br /&gt;
= Rebasing your Changes =&lt;br /&gt;
&lt;br /&gt;
The main idea with rebasing is to update your changes so they apply cleanly to the current state of the repository. This is important, as some parallel changes might have conflicted with what you have done.&lt;br /&gt;
&lt;br /&gt;
The rebase window will come up automatically if you chose &amp;quot;Fetch&amp;amp;Rebase&amp;quot; in the last step,&lt;br /&gt;
but you can reach it manually using the &amp;quot;Rebase...&amp;quot; entry in the TortoiseGit right-click menu. It should look like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase1.png]]&lt;br /&gt;
&lt;br /&gt;
What is happening here? The idea of a rebase is simple: The listed changes have been done to&lt;br /&gt;
an out-of-date repository, therefore they need to be updated for the new state of the OpenClonk repository.&lt;br /&gt;
To do this, Git will first temporarily (!) remove your changes, then check out the new&lt;br /&gt;
repository state, and finally try to &amp;quot;replay&amp;quot; the changes in the list.&lt;br /&gt;
Pressing &amp;quot;Start Rebasing&amp;quot; starts this process, resulting in all your commits getting updated -&lt;br /&gt;
unless conflicts happen, which we will explain below.&lt;br /&gt;
&lt;br /&gt;
== Reorganizing Changes ==&lt;br /&gt;
&lt;br /&gt;
Before we get to conflicts though, note that the rebase window allows you to reorder, edit and &amp;quot;squash&amp;quot; (merge) changes.&lt;br /&gt;
This is Git&#039;s workflow philosophy - as rebasing means re-applying all your changes, it might&lt;br /&gt;
as well allow you to change and reorder them while we&#039;re at it. Let&#039;s say we want to merge the two&lt;br /&gt;
commits for Credits.txt. We do this by making sure that the commits appear directly after each other&lt;br /&gt;
in the list, then change the &amp;quot;REBASE&amp;quot; state to &amp;quot;Sqash&amp;quot; for the &#039;&#039;later&#039;&#039; commit (look at the ID if unsure):&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase2.png]]&lt;br /&gt;
&lt;br /&gt;
When we select &amp;quot;Start Rebasing&amp;quot; now, rebasing will actually suspend after the first two commits so&lt;br /&gt;
we can edit the message for the merged commit. By default Git will just &lt;br /&gt;
append the two original messages, which we most likely&lt;br /&gt;
want to change:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase3.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that in the list the first commit is grayed out now to signify that it has already been converted at this point, and the second commit is bold as we&lt;br /&gt;
are currently considering how to re-record it.&lt;br /&gt;
When you&#039;re finished, press &amp;quot;Commit&amp;quot; to continue and eventually finish rebasing.&lt;br /&gt;
&lt;br /&gt;
== Conflicts and Editing ==&lt;br /&gt;
&lt;br /&gt;
Git is pretty smart about making sense of your changes even if the repository has changed. Sometimes, though, it will still&lt;br /&gt;
run into a problem where it has to request your help in figuring out what to do:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase4.png]]&lt;br /&gt;
&lt;br /&gt;
Here Git has encountered a conflict while trying to apply the bold change, in the file marked in red.&lt;br /&gt;
If we open the file, we might find something like follows:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key \&amp;quot;%s\&amp;quot;.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    #endif&lt;br /&gt;
    =======&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key %s.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 6e29e01... Removed quotes from message&lt;br /&gt;
&lt;br /&gt;
This is telling us that while our commit (6e29e01) changed these lines to something, the OpenClonk&lt;br /&gt;
repository (HEAD) changed them to something else. To resolve this, we update all conflicted files to the correct&lt;br /&gt;
state, mark the files as &amp;quot;Resolved&amp;quot; (using the right-click menu) and finally press &amp;quot;Commit&amp;quot; &lt;br /&gt;
in order to accept the resolution.&lt;br /&gt;
&lt;br /&gt;
= Submitting your Change =&lt;br /&gt;
&lt;br /&gt;
After you have rebased your changes to the current state of the OpenClonk repository (&#039;&#039;important!&#039;&#039;) you&lt;br /&gt;
can attempt to submit your changes. How you do this depends on whether you are an OpenClonk&lt;br /&gt;
team member or not: You either have to submit a patch, or can push the OpenClonk repository directly.&lt;br /&gt;
We will explain both methods here.&lt;br /&gt;
&lt;br /&gt;
== Creating a Patch ==&lt;br /&gt;
&lt;br /&gt;
In order to get a commit into the repository as a non-team member, you will have to send&lt;br /&gt;
the change to somebody that can review and accept it, for example by posting it in the forum.&lt;br /&gt;
The first step is to package your change as a patch file.&lt;br /&gt;
&lt;br /&gt;
To do this, use the &amp;quot;Create Patch Serial...&amp;quot; or &amp;quot;Format Patch&amp;quot; option from the right-click menu&lt;br /&gt;
(it&#039;s the same thing, just named differently depending on where you are). You should get the&lt;br /&gt;
following window:&lt;br /&gt;
&lt;br /&gt;
[[File:ghc_work_patch1.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure you should select &amp;quot;FETCH_HEAD&amp;quot; in the &amp;quot;Since&amp;quot; field in order to get all patches that are&lt;br /&gt;
new relative to the OpenClonk repository. Otherwise, TortoiseGit can use pretty nonsensical defaults&lt;br /&gt;
and produce thousands of useless patches as a result.&lt;br /&gt;
Select a convenient directory for the patches to go into, and select &amp;quot;OK&amp;quot; to get the ball rolling.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you should see all your changes as conveniently-named patch files in the directory you have chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:ghc_work_patch2.png]]&lt;br /&gt;
&lt;br /&gt;
You can send this to an OpenClonk team member - or anybody with an OpenClonk repository clone, really - &lt;br /&gt;
and they will be able to import your change. If they tell you that the patch doesn&#039;t apply cleanly, this probably&lt;br /&gt;
means that you have to synchronize and rebase again (see previous section).&lt;br /&gt;
&lt;br /&gt;
== Pushing Changes ==&lt;br /&gt;
&lt;br /&gt;
Pushing a change directly is slightly easier - all you have to do is select &amp;quot;Push&amp;quot; from the synchronization&lt;br /&gt;
window. What can happen here is that you get a message of the form:&lt;br /&gt;
&lt;br /&gt;
    Pushing to ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    To ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    ! [rejected]        master -&amp;gt; master (non-fast-forward)&lt;br /&gt;
    error: failed to push some refs to &#039;ssh://git@git.openclonk.org/openclonk.git&#039;&lt;br /&gt;
    hint: Updates were rejected because the tip of your current branch is behind&lt;br /&gt;
    hint: its remote counterpart. Merge the remote changes (e.g. &#039;git pull&#039;)&lt;br /&gt;
    hint: before pushing again.&lt;br /&gt;
&lt;br /&gt;
This helpful message tells you that you have forgotten to synchronize &amp;amp; rebase before trying to push. Better get used to it :-)&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1281</id>
		<title>Git Workflow</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1281"/>
		<updated>2012-12-01T21:07:51Z</updated>

		<summary type="html">&lt;p&gt;PeterW: /* Reorganizing Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
As an open source project, we want to make it easy for a lot of people to work on&lt;br /&gt;
our code - even people that aren&#039;t directly involved in the project!&lt;br /&gt;
That&#039;s why we use a distributed version control system called [http://git-scm.com/ Git],&lt;br /&gt;
which makes sure that all files stay consistent and it&#039;s not too easy to lose your data&lt;br /&gt;
when things get complicated. This article will walk you through how you can use this system&lt;br /&gt;
to organize and submit your changes to OpenClonk.&lt;br /&gt;
&lt;br /&gt;
We will assume here that you have a clone of the OpenClonk repository like the one&lt;br /&gt;
you created if you followed the [[Building_with_Windows|Windows build tutorial]].&lt;br /&gt;
The screenshots and explanations will also be somewhat specific to TortoiseGit. &lt;br /&gt;
On the other hand, the workflow is equally viable no matter what Git interface you use.&lt;br /&gt;
&lt;br /&gt;
= Committing your Changes =&lt;br /&gt;
&lt;br /&gt;
The first step is to actually make some meaningful changes to OpenClonk.&lt;br /&gt;
TortoiseGit will detect your work and automatically mark files or directories that have changed:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit1.png]]&lt;br /&gt;
&lt;br /&gt;
To register your changes with Git, you need to &amp;quot;commit&amp;quot; them using the &amp;quot;Git Commit&amp;quot; entry from the right-click menu.&lt;br /&gt;
Here you can select what files you want to include in the commit, and give a message&lt;br /&gt;
describing what you have done. Try to give a short summary of the change in the first&lt;br /&gt;
line, followed by more details and explanations after one empty line.&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit2.png]]&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to commit early, as registering changes with Git means they will be a lot harder to lose.&lt;br /&gt;
It&#039;s a good idea to do this even if you know that you will want to do additional changes to the commit later:&lt;br /&gt;
The commit window allows you to &amp;quot;amend&amp;quot; the last commit so you&lt;br /&gt;
can keep working on it.&lt;br /&gt;
&lt;br /&gt;
For even more flexibility, simply create another&lt;br /&gt;
commit for additional changes and [[#Reorganizing Changes|&amp;quot;squash&amp;quot; them later]]. This is also a good idea because it allows &lt;br /&gt;
you to go back and forth between revisions until you are convinced that your change works. It might even be&lt;br /&gt;
a good idea to mark commits that you want to be merged with a marker like &amp;quot;[squash!]&amp;quot; so&lt;br /&gt;
you don&#039;t forget to merge the changes later on.&lt;br /&gt;
&lt;br /&gt;
= Synchronizing your Repository =&lt;br /&gt;
&lt;br /&gt;
OpenClonk is under constant development, and it&#039;s generally a good idea to stay up-to-date.&lt;br /&gt;
Maybe uninuitively, this is especially vital if you are thinking of submitting a change:&lt;br /&gt;
You need to make sure that your changes work with where development is currently at.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Git Sync...&amp;quot; context menu entry to see something like the following dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_sync1.png]]&lt;br /&gt;
&lt;br /&gt;
There are a number of ways you can synchronize your repository: The default one will be&lt;br /&gt;
&amp;quot;Pull&amp;quot;, which is okay as long as you don&#039;t have any changes of your own. As the screenshot shows that we actually&lt;br /&gt;
have some changes, we want to use &amp;quot;Fetch&amp;amp;Rebase&amp;quot;. This will cause Git to download the changes&lt;br /&gt;
and then start a &amp;quot;rebase&amp;quot;, which we will explain in the next section.&lt;br /&gt;
&lt;br /&gt;
= Rebasing your Changes =&lt;br /&gt;
&lt;br /&gt;
The main idea with rebasing is to update your changes so they apply cleanly to the current state of the repository. This is important, as some parallel changes might have conflicted with what you have done.&lt;br /&gt;
&lt;br /&gt;
The rebase window will come up automatically if you chose &amp;quot;Fetch&amp;amp;Rebase&amp;quot; in the last step,&lt;br /&gt;
but you can reach it manually using the &amp;quot;Rebase...&amp;quot; entry in the TortoiseGit right-click menu. It should look like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase1.png]]&lt;br /&gt;
&lt;br /&gt;
What is happening here? The idea of a rebase is simple: The listed changes have been done to&lt;br /&gt;
an out-of-date repository, therefore they need to be updated for the new state of the OpenClonk repository.&lt;br /&gt;
To do this, Git will first temporarily (!) remove your changes, then check out the new&lt;br /&gt;
repository state, and finally try to &amp;quot;replay&amp;quot; the changes in the list.&lt;br /&gt;
Pressing &amp;quot;Start Rebasing&amp;quot; starts this process, resulting in all your commits getting updated -&lt;br /&gt;
unless conflicts happen, which we will explain below.&lt;br /&gt;
&lt;br /&gt;
== Reorganizing Changes ==&lt;br /&gt;
&lt;br /&gt;
Before we get to conflicts though, note that the rebase window allows you to reorder, edit and &amp;quot;squash&amp;quot; (merge) changes.&lt;br /&gt;
This is Git&#039;s workflow philosophy - as rebasing means re-applying all your changes, it might&lt;br /&gt;
as well allow you to change and reorder them while we&#039;re at it. Let&#039;s say we want to merge the two&lt;br /&gt;
commits for Credits.txt. We do this by making sure that the commits appear directly after each other&lt;br /&gt;
in the list, then change the &amp;quot;REBASE&amp;quot; state to &amp;quot;Sqash&amp;quot; for the &#039;&#039;later&#039;&#039; commit (look at the ID if unsure):&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase2.png]]&lt;br /&gt;
&lt;br /&gt;
When we select &amp;quot;Start Rebasing&amp;quot; now, rebasing will actually suspend after the first two commits so&lt;br /&gt;
we can edit the message for the merged commit. By default Git will just &lt;br /&gt;
append the two original messages, which we most likely&lt;br /&gt;
want to change:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase3.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that in the list the first commit is grayed out now to signify that it has already been converted at this point, and the second commit is bold as we&lt;br /&gt;
are currently considering how to re-record it.&lt;br /&gt;
When you&#039;re finished, press &amp;quot;Commit&amp;quot; to continue and eventually finish rebasing.&lt;br /&gt;
&lt;br /&gt;
== Conflicts and Editing ==&lt;br /&gt;
&lt;br /&gt;
Git is pretty smart about making sense of your changes even if the repository has changed. Sometimes, though, it will still&lt;br /&gt;
run into a problem where it has to request your help in figuring out what to do:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase4.png]]&lt;br /&gt;
&lt;br /&gt;
Here Git has encountered a conflict while trying to apply the bold change, in the file marked in red.&lt;br /&gt;
If we open the file, we might find something like follows:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key \&amp;quot;%s\&amp;quot;.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    #endif&lt;br /&gt;
    =======&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key %s.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 6e29e01... Removed quotes from message&lt;br /&gt;
&lt;br /&gt;
This is telling us that while our commit (6e29e01) changed these lines to something, the OpenClonk&lt;br /&gt;
repository (HEAD) changed them to something else. To resolve this, we update all conflicted files to the correct&lt;br /&gt;
state, mark the files as &amp;quot;Resolved&amp;quot; (using the right-click menu) and finally press &amp;quot;Commit&amp;quot; &lt;br /&gt;
in order to accept the resolution.&lt;br /&gt;
&lt;br /&gt;
= Submitting your Change =&lt;br /&gt;
&lt;br /&gt;
After you have rebased your changes to the current state of the OpenClonk repository (&#039;&#039;important!&#039;&#039;) you&lt;br /&gt;
can attempt to submit your changes. How you do this depends on whether you are an OpenClonk&lt;br /&gt;
team member or not: You either have to submit a patch, or can push the OpenClonk repository directly.&lt;br /&gt;
We will explain both methods here.&lt;br /&gt;
&lt;br /&gt;
== Creating a Patch ==&lt;br /&gt;
&lt;br /&gt;
In order to get a commit into the repository as a non-team member, you will have to send&lt;br /&gt;
the change to somebody that can review and accept it, for example by posting it in the forum.&lt;br /&gt;
The first step is to package your change as a patch file.&lt;br /&gt;
&lt;br /&gt;
To do this, use the &amp;quot;Create Patch Serial...&amp;quot; or &amp;quot;Format Patch&amp;quot; option from the right-click menu&lt;br /&gt;
(it&#039;s the same thing, just named differently depending on where you are). You should get the&lt;br /&gt;
following window:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_patch1.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure you should select &amp;quot;FETCH_HEAD&amp;quot; in the &amp;quot;Since&amp;quot; field in order to get all patches that are&lt;br /&gt;
new relative to the OpenClonk repository. Otherwise, TortoiseGit can use pretty nonsensical defaults&lt;br /&gt;
and produce thousands of useless patches as a result.&lt;br /&gt;
Select a convenient directory for the patches to go into, and select &amp;quot;OK&amp;quot; to get the ball rolling.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you should see all your changes as conveniently-named patch files in the directory you have chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_patch2.png]]&lt;br /&gt;
&lt;br /&gt;
You can send this to an OpenClonk team member - or anybody with an OpenClonk repository clone, really - &lt;br /&gt;
and they will be able to import your change. If they tell you that the patch doesn&#039;t apply cleanly, this probably&lt;br /&gt;
means that you have to synchronize and rebase again (see previous section).&lt;br /&gt;
&lt;br /&gt;
== Pushing Changes ==&lt;br /&gt;
&lt;br /&gt;
Pushing a change directly is slightly easier - all you have to do is select &amp;quot;Push&amp;quot; from the synchronization&lt;br /&gt;
window. What can happen here is that you get a message of the form:&lt;br /&gt;
&lt;br /&gt;
    Pushing to ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    To ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    ! [rejected]        master -&amp;gt; master (non-fast-forward)&lt;br /&gt;
    error: failed to push some refs to &#039;ssh://git@git.openclonk.org/openclonk.git&#039;&lt;br /&gt;
    hint: Updates were rejected because the tip of your current branch is behind&lt;br /&gt;
    hint: its remote counterpart. Merge the remote changes (e.g. &#039;git pull&#039;)&lt;br /&gt;
    hint: before pushing again.&lt;br /&gt;
&lt;br /&gt;
This helpful message tells you that you have forgotten to synchronize &amp;amp; rebase before trying to push. Better get used to it :-)&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Git_work_sync1.png&amp;diff=1280</id>
		<title>File:Git work sync1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Git_work_sync1.png&amp;diff=1280"/>
		<updated>2012-12-01T21:05:01Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Git_work_rebase4.png&amp;diff=1279</id>
		<title>File:Git work rebase4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Git_work_rebase4.png&amp;diff=1279"/>
		<updated>2012-12-01T21:04:55Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Git_work_rebase3.png&amp;diff=1278</id>
		<title>File:Git work rebase3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Git_work_rebase3.png&amp;diff=1278"/>
		<updated>2012-12-01T21:04:48Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Git_work_rebase2.png&amp;diff=1277</id>
		<title>File:Git work rebase2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Git_work_rebase2.png&amp;diff=1277"/>
		<updated>2012-12-01T21:04:42Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Git_work_rebase1.png&amp;diff=1276</id>
		<title>File:Git work rebase1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Git_work_rebase1.png&amp;diff=1276"/>
		<updated>2012-12-01T21:04:35Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Git_work_commit2.png&amp;diff=1275</id>
		<title>File:Git work commit2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Git_work_commit2.png&amp;diff=1275"/>
		<updated>2012-12-01T21:04:28Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Git_work_commit1.png&amp;diff=1274</id>
		<title>File:Git work commit1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Git_work_commit1.png&amp;diff=1274"/>
		<updated>2012-12-01T21:04:18Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Ghc_work_patch2.png&amp;diff=1273</id>
		<title>File:Ghc work patch2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Ghc_work_patch2.png&amp;diff=1273"/>
		<updated>2012-12-01T21:04:08Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Ghc_work_patch1.png&amp;diff=1272</id>
		<title>File:Ghc work patch1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Ghc_work_patch1.png&amp;diff=1272"/>
		<updated>2012-12-01T21:03:58Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1271</id>
		<title>Git Workflow</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Git_Workflow&amp;diff=1271"/>
		<updated>2012-12-01T20:58:35Z</updated>

		<summary type="html">&lt;p&gt;PeterW: Simple Git Workflow Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
As an open source project, we want to make it easy for a lot of people to work on&lt;br /&gt;
our code - even people that aren&#039;t directly involved in the project!&lt;br /&gt;
That&#039;s why we use a distributed version control system called [http://git-scm.com/ Git],&lt;br /&gt;
which makes sure that all files stay consistent and it&#039;s not too easy to lose your data&lt;br /&gt;
when things get complicated. This article will walk you through how you can use this system&lt;br /&gt;
to organize and submit your changes to OpenClonk.&lt;br /&gt;
&lt;br /&gt;
We will assume here that you have a clone of the OpenClonk repository like the one&lt;br /&gt;
you created if you followed the [[Building_with_Windows|Windows build tutorial]].&lt;br /&gt;
The screenshots and explanations will also be somewhat specific to TortoiseGit. &lt;br /&gt;
On the other hand, the workflow is equally viable no matter what Git interface you use.&lt;br /&gt;
&lt;br /&gt;
= Committing your Changes =&lt;br /&gt;
&lt;br /&gt;
The first step is to actually make some meaningful changes to OpenClonk.&lt;br /&gt;
TortoiseGit will detect your work and automatically mark files or directories that have changed:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit1.png]]&lt;br /&gt;
&lt;br /&gt;
To register your changes with Git, you need to &amp;quot;commit&amp;quot; them using the &amp;quot;Git Commit&amp;quot; entry from the right-click menu.&lt;br /&gt;
Here you can select what files you want to include in the commit, and give a message&lt;br /&gt;
describing what you have done. Try to give a short summary of the change in the first&lt;br /&gt;
line, followed by more details and explanations after one empty line.&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_commit2.png]]&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to commit early, as registering changes with Git means they will be a lot harder to lose.&lt;br /&gt;
It&#039;s a good idea to do this even if you know that you will want to do additional changes to the commit later:&lt;br /&gt;
The commit window allows you to &amp;quot;amend&amp;quot; the last commit so you&lt;br /&gt;
can keep working on it.&lt;br /&gt;
&lt;br /&gt;
For even more flexibility, simply create another&lt;br /&gt;
commit for additional changes and [[#Reorganizing Changes|&amp;quot;squash&amp;quot; them later]]. This is also a good idea because it allows &lt;br /&gt;
you to go back and forth between revisions until you are convinced that your change works. It might even be&lt;br /&gt;
a good idea to mark commits that you want to be merged with a marker like &amp;quot;[squash!]&amp;quot; so&lt;br /&gt;
you don&#039;t forget to merge the changes later on.&lt;br /&gt;
&lt;br /&gt;
= Synchronizing your Repository =&lt;br /&gt;
&lt;br /&gt;
OpenClonk is under constant development, and it&#039;s generally a good idea to stay up-to-date.&lt;br /&gt;
Maybe uninuitively, this is especially vital if you are thinking of submitting a change:&lt;br /&gt;
You need to make sure that your changes work with where development is currently at.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;Git Sync...&amp;quot; context menu entry to see something like the following dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_sync1.png]]&lt;br /&gt;
&lt;br /&gt;
There are a number of ways you can synchronize your repository: The default one will be&lt;br /&gt;
&amp;quot;Pull&amp;quot;, which is okay as long as you don&#039;t have any changes of your own. As the screenshot shows that we actually&lt;br /&gt;
have some changes, we want to use &amp;quot;Fetch&amp;amp;Rebase&amp;quot;. This will cause Git to download the changes&lt;br /&gt;
and then start a &amp;quot;rebase&amp;quot;, which we will explain in the next section.&lt;br /&gt;
&lt;br /&gt;
= Rebasing your Changes =&lt;br /&gt;
&lt;br /&gt;
The main idea with rebasing is to update your changes so they apply cleanly to the current state of the repository. This is important, as some parallel changes might have conflicted with what you have done.&lt;br /&gt;
&lt;br /&gt;
The rebase window will come up automatically if you chose &amp;quot;Fetch&amp;amp;Rebase&amp;quot; in the last step,&lt;br /&gt;
but you can reach it manually using the &amp;quot;Rebase...&amp;quot; entry in the TortoiseGit right-click menu. It should look like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase1.png]]&lt;br /&gt;
&lt;br /&gt;
What is happening here? The idea of a rebase is simple: The listed changes have been done to&lt;br /&gt;
an out-of-date repository, therefore they need to be updated for the new state of the OpenClonk repository.&lt;br /&gt;
To do this, Git will first temporarily (!) remove your changes, then check out the new&lt;br /&gt;
repository state, and finally try to &amp;quot;replay&amp;quot; the changes in the list.&lt;br /&gt;
Pressing &amp;quot;Start Rebasing&amp;quot; starts this process, resulting in all your commits getting updated -&lt;br /&gt;
unless conflicts happen, which we will explain below.&lt;br /&gt;
&lt;br /&gt;
== Reorganizing Changes ==&lt;br /&gt;
&lt;br /&gt;
Before we get to conflicts though, note that the rebase window allows you to reorder, edit and &amp;quot;squash&amp;quot; (merge) changes.&lt;br /&gt;
This is Git&#039;s workflow philosophy - as rebasing means re-applying all your changes, it might&lt;br /&gt;
as well allow you to change and reorder them while we&#039;re at it. Let&#039;s say we want to merge the two&lt;br /&gt;
commits for Credits.txt. We do this by making sure that the commits appear directly after each other&lt;br /&gt;
in the list, then change the &amp;quot;REBASE&amp;quot; state to &amp;quot;Sqash&amp;quot; for the &#039;&#039;later&#039;&#039; commit (look at the ID if unsure):&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase2.png]]&lt;br /&gt;
&lt;br /&gt;
When we select &amp;quot;Start Rebasing&amp;quot; now, rebasing will actually suspend after the first two commits so&lt;br /&gt;
we can edit the message for the merged commit. By default Git will just &lt;br /&gt;
append the two original messages, which we most likely&lt;br /&gt;
want to change:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase3.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that in the list the first commit is grayed out now to signify that it has already been converted at this point, and the second commit is bold as we&lt;br /&gt;
are currently considering how to add it.&lt;br /&gt;
When you&#039;re finished, press &amp;quot;Commit&amp;quot; to continue and eventually finish rebasing.&lt;br /&gt;
&lt;br /&gt;
== Conflicts and Editing ==&lt;br /&gt;
&lt;br /&gt;
Git is pretty smart about making sense of your changes even if the repository has changed. Sometimes, though, it will still&lt;br /&gt;
run into a problem where it has to request your help in figuring out what to do:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_rebase4.png]]&lt;br /&gt;
&lt;br /&gt;
Here Git has encountered a conflict while trying to apply the bold change, in the file marked in red.&lt;br /&gt;
If we open the file, we might find something like follows:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key \&amp;quot;%s\&amp;quot;.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    #endif&lt;br /&gt;
    =======&lt;br /&gt;
                    LogF(&amp;quot;WARNING: Control %s of set %s contains undefined key %s.&amp;quot;, GetControlName(), pParentSet-&amp;gt;GetName(), szKeyName);&lt;br /&gt;
    &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 6e29e01... Removed quotes from message&lt;br /&gt;
&lt;br /&gt;
This is telling us that while our commit (6e29e01) changed these lines to something, the OpenClonk&lt;br /&gt;
repository (HEAD) changed them to something else. To resolve this, we update all conflicted files to the correct&lt;br /&gt;
state, mark the files as &amp;quot;Resolved&amp;quot; (using the right-click menu) and finally press &amp;quot;Commit&amp;quot; &lt;br /&gt;
in order to accept the resolution.&lt;br /&gt;
&lt;br /&gt;
= Submitting your Change =&lt;br /&gt;
&lt;br /&gt;
After you have rebased your changes to the current state of the OpenClonk repository (&#039;&#039;important!&#039;&#039;) you&lt;br /&gt;
can attempt to submit your changes. How you do this depends on whether you are an OpenClonk&lt;br /&gt;
team member or not: You either have to submit a patch, or can push the OpenClonk repository directly.&lt;br /&gt;
We will explain both methods here.&lt;br /&gt;
&lt;br /&gt;
== Creating a Patch ==&lt;br /&gt;
&lt;br /&gt;
In order to get a commit into the repository as a non-team member, you will have to send&lt;br /&gt;
the change to somebody that can review and accept it, for example by posting it in the forum.&lt;br /&gt;
The first step is to package your change as a patch file.&lt;br /&gt;
&lt;br /&gt;
To do this, use the &amp;quot;Create Patch Serial...&amp;quot; or &amp;quot;Format Patch&amp;quot; option from the right-click menu&lt;br /&gt;
(it&#039;s the same thing, just named differently depending on where you are). You should get the&lt;br /&gt;
following window:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_patch1.png]]&lt;br /&gt;
&lt;br /&gt;
Make sure you should select &amp;quot;FETCH_HEAD&amp;quot; in the &amp;quot;Since&amp;quot; field in order to get all patches that are&lt;br /&gt;
new relative to the OpenClonk repository. Otherwise, TortoiseGit can use pretty nonsensical defaults&lt;br /&gt;
and produce thousands of useless patches as a result.&lt;br /&gt;
Select a convenient directory for the patches to go into, and select &amp;quot;OK&amp;quot; to get the ball rolling.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you should see all your changes as conveniently-named patch files in the directory you have chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:git_work_patch2.png]]&lt;br /&gt;
&lt;br /&gt;
You can send this to an OpenClonk team member - or anybody with an OpenClonk repository clone, really - &lt;br /&gt;
and they will be able to import your change. If they tell you that the patch doesn&#039;t apply cleanly, this probably&lt;br /&gt;
means that you have to synchronize and rebase again (see previous section).&lt;br /&gt;
&lt;br /&gt;
== Pushing Changes ==&lt;br /&gt;
&lt;br /&gt;
Pushing a change directly is slightly easier - all you have to do is select &amp;quot;Push&amp;quot; from the synchronization&lt;br /&gt;
window. What can happen here is that you get a message of the form:&lt;br /&gt;
&lt;br /&gt;
    Pushing to ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    To ssh://git@git.openclonk.org/openclonk.git&lt;br /&gt;
    ! [rejected]        master -&amp;gt; master (non-fast-forward)&lt;br /&gt;
    error: failed to push some refs to &#039;ssh://git@git.openclonk.org/openclonk.git&#039;&lt;br /&gt;
    hint: Updates were rejected because the tip of your current branch is behind&lt;br /&gt;
    hint: its remote counterpart. Merge the remote changes (e.g. &#039;git pull&#039;)&lt;br /&gt;
    hint: before pushing again.&lt;br /&gt;
&lt;br /&gt;
This helpful message tells you that you have forgotten to synchronize &amp;amp; rebase before trying to push. Better get used to it :-)&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1270</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1270"/>
		<updated>2012-12-01T17:38:22Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work. For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseGit ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [http://code.google.com/p/tortoisegit/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
As the website tells you, the installation of TortoiseGit has two parts: TortoiseGit and msysGit. It also says that you should start with TortoiseGit, so let us get that installer first. Make sure to choose the right architecture for your version of Windows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. Just selecting the default options should get you through alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; If you want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] to push commits, make sure to select the appropriate option along the way. Do it again for the msysGit installation below.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
Next, you need msysGit, which is what actually does all the work behind the scenes. Following the [http://code.google.com/p/msysgit/downloads/list?can=2&amp;amp;q=%22Full+installer+for+official+Git+for+Windows%22 &amp;quot;Full installer for official Git&amp;quot;] link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png|860px]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources you get. We will later see what we can do with this.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;.  Here&#039;s how it should look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; Use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; instead and activate the option to auto-load the PuTTY key for maximum convenience.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseGit will work for a while. After watching a tortoise somersaulting for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png]]&lt;br /&gt;
&lt;br /&gt;
This a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [http://www.microsoft.com/express/vc/#webInstall Visual Studio C++ 2010]. Follow that link, click yourself through the ever-shifting Microsoft website to the 2010 Express Edition, until you arrive at something that ideally looks like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc1_new.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The installer will offer us a lot of stuff we don&#039;t really need for OpenClonk. You should uncheck it to make the installation faster.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will most likely stare at the following screen for a bit. It won&#039;t take that long, and for me didn&#039;t even restart the computer like it suggested it would.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc3.png]]&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could try to search and download all those libraries by hand, but that would be pretty boring. Instead, just download [http://www.openclonk.org/openclonk-deps-vc90.zip this package] that contains everything you need to build Clonk.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_deps.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unpack both directories into the same path you put all the other files. Don&#039;t worry, nothing will get overwritten in &amp;quot;planet&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use, for example &amp;quot;Visual Studio 10&amp;quot;. Do &#039;&#039;not&#039;&#039; pick the Win64 option, as the precompiled libraries are 32 bit.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;clonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;Build Solution&amp;quot; from the &amp;quot;Build&amp;quot; menu (or just press F7). No, I don&#039;t know what &amp;quot;solution&amp;quot; means. Drink a cup of coffee or two while you wait for the compiler to do its job.&lt;br /&gt;
&lt;br /&gt;
Eventually, you will arrive at this screen.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nevertheless, you can now select &amp;quot;Start Debugging&amp;quot; from the &amp;quot;Debug&amp;quot; menu (or just press F5) and should be greeted by the startup screen of a fresh OpenClonk build!&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;br /&gt;
&lt;br /&gt;
= Enabling sound and DirectX =&lt;br /&gt;
&lt;br /&gt;
So far, the version of OpenClonk you can compile runs with OpenGL only and without sound. Here is how to enable both DirectX and sound:&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://msdn.microsoft.com/en-us/directx/default.aspx DirectX SDK] from the Microsoft website and install it. For sound, download the [http://www.fmod.org/index.php/download#FMOD3ProgrammersAPI FMOD 3 Programmers API] and unpack it somewhere. Now, you need to copy api/fmod.dll into your planet/ directory, all the files that are in api/inc to planet/deps/include and api/lib/fmodvc.lib to planet/deps/lib.&lt;br /&gt;
&lt;br /&gt;
Thats it. Now, you need to re-run CMake and check both USE_DIRECTX and USE_FMOD. Compiling the game with VC++ will now produce a build where you can hear the sound and use direct x.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1269</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1269"/>
		<updated>2012-12-01T17:36:47Z</updated>

		<summary type="html">&lt;p&gt;PeterW: Reword a bit to make the PuTTY remark less confusing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work. For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseGit ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [http://code.google.com/p/tortoisegit/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
As the website tells you, the installation of TortoiseGit has two parts: TortoiseGit and msysGit. It also says that you should start with TortoiseGit, so let us get that installer first. Make sure to choose the right architecture for your version of Windows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. Just selecting the default options should get you through alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OpenClonk team members:&#039;&#039; If you want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] to push commits, make sure to select the appropriate option along the way. Do it again for the msysGit installation below.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
Next, you need msysGit, which is what actually does all the work behind the scenes. Following the [http://code.google.com/p/msysgit/downloads/list?can=2&amp;amp;q=%22Full+installer+for+official+Git+for+Windows%22 &amp;quot;Full installer for official Git&amp;quot;] link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png|860px]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources you get. We will later see what we can do with this.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;. If you&#039;re a developer, use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; and set it to auto-load the PuTTY key. Here&#039;s how it should look like in both cases:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseGit will work for a while. After watching a tortoise somersaulting for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png]]&lt;br /&gt;
&lt;br /&gt;
This a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [http://www.microsoft.com/express/vc/#webInstall Visual Studio C++ 2010]. Follow that link, click yourself through the ever-shifting Microsoft website to the 2010 Express Edition, until you arrive at something that ideally looks like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc1_new.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The installer will offer us a lot of stuff we don&#039;t really need for OpenClonk. You should uncheck it to make the installation faster.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will most likely stare at the following screen for a bit. It won&#039;t take that long, and for me didn&#039;t even restart the computer like it suggested it would.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc3.png]]&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could try to search and download all those libraries by hand, but that would be pretty boring. Instead, just download [http://www.openclonk.org/openclonk-deps-vc90.zip this package] that contains everything you need to build Clonk.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_deps.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unpack both directories into the same path you put all the other files. Don&#039;t worry, nothing will get overwritten in &amp;quot;planet&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use, for example &amp;quot;Visual Studio 10&amp;quot;. Do &#039;&#039;not&#039;&#039; pick the Win64 option, as the precompiled libraries are 32 bit.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;clonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;Build Solution&amp;quot; from the &amp;quot;Build&amp;quot; menu (or just press F7). No, I don&#039;t know what &amp;quot;solution&amp;quot; means. Drink a cup of coffee or two while you wait for the compiler to do its job.&lt;br /&gt;
&lt;br /&gt;
Eventually, you will arrive at this screen.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nevertheless, you can now select &amp;quot;Start Debugging&amp;quot; from the &amp;quot;Debug&amp;quot; menu (or just press F5) and should be greeted by the startup screen of a fresh OpenClonk build!&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;br /&gt;
&lt;br /&gt;
= Enabling sound and DirectX =&lt;br /&gt;
&lt;br /&gt;
So far, the version of OpenClonk you can compile runs with OpenGL only and without sound. Here is how to enable both DirectX and sound:&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://msdn.microsoft.com/en-us/directx/default.aspx DirectX SDK] from the Microsoft website and install it. For sound, download the [http://www.fmod.org/index.php/download#FMOD3ProgrammersAPI FMOD 3 Programmers API] and unpack it somewhere. Now, you need to copy api/fmod.dll into your planet/ directory, all the files that are in api/inc to planet/deps/include and api/lib/fmodvc.lib to planet/deps/lib.&lt;br /&gt;
&lt;br /&gt;
Thats it. Now, you need to re-run CMake and check both USE_DIRECTX and USE_FMOD. Compiling the game with VC++ will now produce a build where you can hear the sound and use direct x.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1268</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1268"/>
		<updated>2012-11-29T12:06:40Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work. For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseGit ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [http://code.google.com/p/tortoisegit/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
As the website tells you, the installation of TortoiseGit has two parts: TortoiseGit and msysGit. It also says that you should start with TortoiseGit, so let us get that installer first. Make sure to choose the right architecture for your version of Windows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. If you are a developer and want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY], make sure to select the appropriate option along the way. But selecting default options everywhere won&#039;t break anything either...&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
Next, you need msysGit, which is what actually does all the work behind the scenes. Following the [http://code.google.com/p/msysgit/downloads/list?can=2&amp;amp;q=%22Full+installer+for+official+Git+for+Windows%22 &amp;quot;Full installer for official Git&amp;quot;] link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png|860px]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions - again developers might want to point it towards PuTTY at one point. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources you get. We will later see what we can do with this.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;. If you&#039;re a developer, use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; and set it to auto-load the PuTTY key. Here&#039;s how it should look like in both cases:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]][[File:build_windows_tgit_dev.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseGit will work for a while. After watching a tortoise somersaulting for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png]]&lt;br /&gt;
&lt;br /&gt;
This a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [http://www.microsoft.com/express/vc/#webInstall Visual Studio C++ 2010]. Follow that link, click yourself through the ever-shifting Microsoft website to the 2010 Express Edition, until you arrive at something that ideally looks like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc1_new.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The installer will offer us a lot of stuff we don&#039;t really need for OpenClonk. You should uncheck it to make the installation faster.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will most likely stare at the following screen for a bit. It won&#039;t take that long, and for me didn&#039;t even restart the computer like it suggested it would.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc3.png]]&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could try to search and download all those libraries by hand, but that would be pretty boring. Instead, just download [http://www.openclonk.org/openclonk-deps-vc90.zip this package] that contains everything you need to build Clonk.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_deps.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unpack both directories into the same path you put all the other files. Don&#039;t worry, nothing will get overwritten in &amp;quot;planet&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use, for example &amp;quot;Visual Studio 10&amp;quot;. Do &#039;&#039;not&#039;&#039; pick the Win64 option, as the precompiled libraries are 32 bit.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;clonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;Build Solution&amp;quot; from the &amp;quot;Build&amp;quot; menu (or just press F7). No, I don&#039;t know what &amp;quot;solution&amp;quot; means. Drink a cup of coffee or two while you wait for the compiler to do its job.&lt;br /&gt;
&lt;br /&gt;
Eventually, you will arrive at this screen.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nevertheless, you can now select &amp;quot;Start Debugging&amp;quot; from the &amp;quot;Debug&amp;quot; menu (or just press F5) and should be greeted by the startup screen of a fresh OpenClonk build!&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;br /&gt;
&lt;br /&gt;
= Enabling sound and DirectX =&lt;br /&gt;
&lt;br /&gt;
So far, the version of OpenClonk you can compile runs with OpenGL only and without sound. Here is how to enable both DirectX and sound:&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://msdn.microsoft.com/en-us/directx/default.aspx DirectX SDK] from the Microsoft website and install it. For sound, download the [http://www.fmod.org/index.php/download#FMOD3ProgrammersAPI FMOD 3 Programmers API] and unpack it somewhere. Now, you need to copy api/fmod.dll into your planet/ directory, all the files that are in api/inc to planet/deps/include and api/lib/fmodvc.lib to planet/deps/lib.&lt;br /&gt;
&lt;br /&gt;
Thats it. Now, you need to re-run CMake and check both USE_DIRECTX and USE_FMOD. Compiling the game with VC++ will now produce a build where you can hear the sound and use direct x.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_finish.png&amp;diff=1267</id>
		<title>File:Build windows tgit finish.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_finish.png&amp;diff=1267"/>
		<updated>2012-11-29T12:03:00Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_working.png&amp;diff=1266</id>
		<title>File:Build windows tgit working.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_working.png&amp;diff=1266"/>
		<updated>2012-11-29T12:02:15Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_dev.png&amp;diff=1265</id>
		<title>File:Build windows tgit dev.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_dev.png&amp;diff=1265"/>
		<updated>2012-11-29T12:01:36Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_pub.png&amp;diff=1264</id>
		<title>File:Build windows tgit pub.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit_pub.png&amp;diff=1264"/>
		<updated>2012-11-29T12:01:26Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1263</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1263"/>
		<updated>2012-11-29T12:00:56Z</updated>

		<summary type="html">&lt;p&gt;PeterW: /* Get the sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work. For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseHg ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [http://code.google.com/p/tortoisegit/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
As the website tells you, the installation of TortoiseGit has two parts: TortoiseGit and msysGit. It also says that you should start with TortoiseGit, so let us get that installer first. Make sure to choose the right architecture for your version of Windows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png|860px]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. If you are a developer and want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY], make sure to select the appropriate option along the way. But selecting default options everywhere won&#039;t break anything either...&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
Next, you need msysGit, which is what actually does all the work behind the scenes. Following the [http://code.google.com/p/msysgit/downloads/list?can=2&amp;amp;q=%22Full+installer+for+official+Git+for+Windows%22 &amp;quot;Full installer for official Git&amp;quot;] link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png|860px]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions - again developers might want to point it towards PuTTY at one point. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources you get. We will later see what we can do with this.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;. If you&#039;re a developer, use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; and set it to auto-load the PuTTY key. Here&#039;s how it should look like in both cases:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]][[File:build_windows_tgit_dev.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseHg will work for a while. After watching a tortoise somersaulting for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png]]&lt;br /&gt;
&lt;br /&gt;
This a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [http://www.microsoft.com/express/vc/#webInstall Visual Studio C++ 2010]. Follow that link, click yourself through the ever-shifting Microsoft website to the 2010 Express Edition, until you arrive at something that ideally looks like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc1_new.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The installer will offer us a lot of stuff we don&#039;t really need for OpenClonk. You should uncheck it to make the installation faster.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will most likely stare at the following screen for a bit. It won&#039;t take that long, and for me didn&#039;t even restart the computer like it suggested it would.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc3.png]]&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could try to search and download all those libraries by hand, but that would be pretty boring. Instead, just download [http://www.openclonk.org/openclonk-deps-vc90.zip this package] that contains everything you need to build Clonk.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_deps.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unpack both directories into the same path you put all the other files. Don&#039;t worry, nothing will get overwritten in &amp;quot;planet&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use, for example &amp;quot;Visual Studio 10&amp;quot;. Do &#039;&#039;not&#039;&#039; pick the Win64 option, as the precompiled libraries are 32 bit.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;clonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;Build Solution&amp;quot; from the &amp;quot;Build&amp;quot; menu (or just press F7). No, I don&#039;t know what &amp;quot;solution&amp;quot; means. Drink a cup of coffee or two while you wait for the compiler to do its job.&lt;br /&gt;
&lt;br /&gt;
Eventually, you will arrive at this screen.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nevertheless, you can now select &amp;quot;Start Debugging&amp;quot; from the &amp;quot;Debug&amp;quot; menu (or just press F5) and should be greeted by the startup screen of a fresh OpenClonk build!&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;br /&gt;
&lt;br /&gt;
= Enabling sound and DirectX =&lt;br /&gt;
&lt;br /&gt;
So far, the version of OpenClonk you can compile runs with OpenGL only and without sound. Here is how to enable both DirectX and sound:&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://msdn.microsoft.com/en-us/directx/default.aspx DirectX SDK] from the Microsoft website and install it. For sound, download the [http://www.fmod.org/index.php/download#FMOD3ProgrammersAPI FMOD 3 Programmers API] and unpack it somewhere. Now, you need to copy api/fmod.dll into your planet/ directory, all the files that are in api/inc to planet/deps/include and api/lib/fmodvc.lib to planet/deps/lib.&lt;br /&gt;
&lt;br /&gt;
Thats it. Now, you need to re-run CMake and check both USE_DIRECTX and USE_FMOD. Compiling the game with VC++ will now produce a build where you can hear the sound and use direct x.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_msvc1_new.png&amp;diff=1262</id>
		<title>File:Build windows msvc1 new.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_msvc1_new.png&amp;diff=1262"/>
		<updated>2012-11-29T12:00:03Z</updated>

		<summary type="html">&lt;p&gt;PeterW: uploaded a new version of &amp;amp;quot;File:Build windows msvc1 new.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1261</id>
		<title>Building with Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=Building_with_Windows&amp;diff=1261"/>
		<updated>2012-11-29T11:58:30Z</updated>

		<summary type="html">&lt;p&gt;PeterW: /* Get Microsoft Visual Studio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Get the sources =&lt;br /&gt;
&lt;br /&gt;
The source of OpenClonk is hold in a so-called version control system. Put simply, this is something that allows programmers to coordinate their work. For the moment, it&#039;s just a couple of files you want to download.&lt;br /&gt;
&lt;br /&gt;
== Install TortoiseHg ==&lt;br /&gt;
&lt;br /&gt;
The notable difference to a simple download is that you need a special program to do it. Our version control system is Git, and we will use the [http://code.google.com/p/tortoisegit/ TortoiseGit] client. Follow that link and click &amp;quot;Download&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit.png|860px]]&lt;br /&gt;
&lt;br /&gt;
As the website tells you, the installation of TortoiseGit has two parts: TortoiseGit and msysGit. It also says that you should start with TortoiseGit, so let us get that installer first. Make sure to choose the right architecture for your version of Windows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit2.png]]&lt;br /&gt;
&lt;br /&gt;
And walk through the installation. If you are a developer and want to use [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY], make sure to select the appropriate option along the way. But selecting default options everywhere won&#039;t break anything either...&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit4.png]]&lt;br /&gt;
&lt;br /&gt;
Next, you need msysGit, which is what actually does all the work behind the scenes. Following the [http://code.google.com/p/msysgit/downloads/list?can=2&amp;amp;q=%22Full+installer+for+official+Git+for+Windows%22 &amp;quot;Full installer for official Git&amp;quot;] link will get you to another download page:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit3.png]]&lt;br /&gt;
&lt;br /&gt;
This installation will ask even more confusing questions - again developers might want to point it towards PuTTY at one point. But again default options won&#039;t cause anything to break, I would just recommend deactivating some GUI options, as TortoiseGit already offers them:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit5.png]]&lt;br /&gt;
&lt;br /&gt;
After a bit of waiting and (if you&#039;re lucky) not a single request to restart your computer, this should have given you a working TortoiseGit installation.&lt;br /&gt;
&lt;br /&gt;
== Clone ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we are going to download the sources. Git calls this &amp;quot;cloning&amp;quot; because it&#039;s actually a lot more than just the sources you get. We will later see what we can do with this.&lt;br /&gt;
&lt;br /&gt;
For now, just find a place where you want the source to be, open the context menu by right-click and select &amp;quot;Git Clone...&amp;quot; from the TortoiseGit menu:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dialog will appear asking for the repository URL and the destination path. In our case, we want the source to be the OpenClonk repository.  The URL you need is normally &amp;quot;git://git.openclonk.org/openclonk.git&amp;quot;. If you&#039;re a developer, use &amp;quot;ssh://git@git.openclonk.org/openclonk.git&amp;quot; and set it to auto-load the PuTTY key. Here&#039;s how it should look like in both cases:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_pub.png]][[File:build_windows_tgit_dev.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After pressing &amp;quot;OK&amp;quot;, TortoiseHg will work for a while. After watching a tortoise somersaulting for a while, it should finish. Congratulations, you now have the bleeding edge of OpenClonk development on your hard drive!&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_tgit_finish.png]]&lt;br /&gt;
&lt;br /&gt;
This a lot of stuff and most likely you won&#039;t understand much of it. Here&#039;s a quick orientation guide of the actually important bits:&lt;br /&gt;
* &amp;quot;docs&amp;quot; - the sources of our [http://docs.openclonk.org/en/sdk/ documentation]&lt;br /&gt;
* &amp;quot;planet&amp;quot; - these are the game resources - scripts, graphics and everything to explain how to make a game out of them&lt;br /&gt;
* &amp;quot;src&amp;quot; - all the source code of the game engine. Lots of C++ ahead.&lt;br /&gt;
&lt;br /&gt;
= Get it to Compile =&lt;br /&gt;
&lt;br /&gt;
This is nice, but we are interested in seeing the game run, aren&#039;t we? For this, we need a program that will take all those C++ files and make an executable file out of it. Unfortunately, programming is complicated stuff so even setting up the tools and the environment has become a bit of science. But this won&#039;t stop us.&lt;br /&gt;
&lt;br /&gt;
== Get Microsoft Visual Studio ==&lt;br /&gt;
&lt;br /&gt;
You can say what you want about Microsoft, but they sure make nice development environments. And they are even giving a lot of it away for free. We will use [http://www.microsoft.com/express/vc/#webInstall Visual Studio C++ 2010]. Follow that link, click yourself through the ever-shifting Microsoft website to the 2010 Express Edition, until you arrive at something that ideally looks like follows:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc1_new.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The installer will offer us a lot of stuff we don&#039;t really need for OpenClonk. You should uncheck it to make the installation faster.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will most likely stare at the following screen for a bit. It won&#039;t take that long, and for me didn&#039;t even restart the computer like it suggested it would.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_msvc3.png]]&lt;br /&gt;
&lt;br /&gt;
== Get Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Like most big programs, OpenClonk doesn&#039;t stand on its own. Some things (like opening PNG images) were already programmed by other programers far better than we could ever do. This is why we have to get a few so-called &amp;quot;libraries&amp;quot; before Clonk can be built.&lt;br /&gt;
&lt;br /&gt;
You could try to search and download all those libraries by hand, but that would be pretty boring. Instead, just download [http://www.openclonk.org/openclonk-deps-vc90.zip this package] that contains everything you need to build Clonk.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_deps.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unpack both directories into the same path you put all the other files. Don&#039;t worry, nothing will get overwritten in &amp;quot;planet&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Get CMake ==&lt;br /&gt;
&lt;br /&gt;
Before all this becomes useful, we still need something that tells the compiler &#039;&#039;how&#039;&#039; all those sources and libraries should be compiled together.&lt;br /&gt;
&lt;br /&gt;
For this, Visual C++ needs a project file. But there is none - we have to consult &#039;&#039;another&#039;&#039; program to generate it for us. This might seem confusing - but the point is that there are a lot of build environments besides Visual Studio, and having all those project files next to each other would become a problem in the long run.&lt;br /&gt;
&lt;br /&gt;
What we need is [http://www.cmake.org/cmake/resources/software.html#latest CMake]. Follow that link and download the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake1.png|860px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know what to do.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the installation, start the CMake GUI from the start menu. Put the path you cloned the repository into the source code path field.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now click the &amp;quot;Configure&amp;quot; button in the lower left. It will ask what compiler we want to use. Select the compiler you want to use, for example &amp;quot;Visual Studio 10&amp;quot;. Do &#039;&#039;not&#039;&#039; pick the Win64 option, as the precompiled libraries are 32 bit.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_cmake4.png]]&lt;br /&gt;
&lt;br /&gt;
If you get some error messages (in red), you&#039;re probably missing some dependencies. Don&#039;t worry if cmake complains about some missing paths, it shouldn&#039;t affect you.&lt;br /&gt;
&lt;br /&gt;
The last step is to click the &amp;quot;Generate&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Your First Build ==&lt;br /&gt;
&lt;br /&gt;
Okay, now we have everything needed to make OpenClonk run for the first time. Go into the source directory and double-click on the &amp;quot;openclonk.sln&amp;quot; file that should now have appeared:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual C++ should open and look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We only want to build the engine, so select &amp;quot;clonk&amp;quot; from the list, right-click and select &amp;quot;Set as Start-Up project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;Build Solution&amp;quot; from the &amp;quot;Build&amp;quot; menu (or just press F7). No, I don&#039;t know what &amp;quot;solution&amp;quot; means. Drink a cup of coffee or two while you wait for the compiler to do its job.&lt;br /&gt;
&lt;br /&gt;
Eventually, you will arrive at this screen.&lt;br /&gt;
&lt;br /&gt;
[[File:build_windows_build4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nevertheless, you can now select &amp;quot;Start Debugging&amp;quot; from the &amp;quot;Debug&amp;quot; menu (or just press F5) and should be greeted by the startup screen of a fresh OpenClonk build!&lt;br /&gt;
&lt;br /&gt;
[[File:Openclonk_first_start.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why OpenClonk suddenly starts in some kind of pseudo windowed mode: This is because we just built a debug build (note the &amp;quot;dbg&amp;quot; after the version?). This build is a bit slower but allows you to get a better look at the internals of the engine while it&#039;s running. Maybe we&#039;ll have another article about that soon.&lt;br /&gt;
&lt;br /&gt;
= Enabling sound and DirectX =&lt;br /&gt;
&lt;br /&gt;
So far, the version of OpenClonk you can compile runs with OpenGL only and without sound. Here is how to enable both DirectX and sound:&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://msdn.microsoft.com/en-us/directx/default.aspx DirectX SDK] from the Microsoft website and install it. For sound, download the [http://www.fmod.org/index.php/download#FMOD3ProgrammersAPI FMOD 3 Programmers API] and unpack it somewhere. Now, you need to copy api/fmod.dll into your planet/ directory, all the files that are in api/inc to planet/deps/include and api/lib/fmodvc.lib to planet/deps/lib.&lt;br /&gt;
&lt;br /&gt;
Thats it. Now, you need to re-run CMake and check both USE_DIRECTX and USE_FMOD. Compiling the game with VC++ will now produce a build where you can hear the sound and use direct x.&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit6.png&amp;diff=1260</id>
		<title>File:Build windows tgit6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit6.png&amp;diff=1260"/>
		<updated>2012-11-29T11:56:44Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
	<entry>
		<id>https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit5.png&amp;diff=1259</id>
		<title>File:Build windows tgit5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openclonk.org/index.php?title=File:Build_windows_tgit5.png&amp;diff=1259"/>
		<updated>2012-11-29T11:56:34Z</updated>

		<summary type="html">&lt;p&gt;PeterW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeterW</name></author>
	</entry>
</feed>