<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://staging-wiki.unvanquished.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kynes</id>
	<title>Unvanquished - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://staging-wiki.unvanquished.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kynes"/>
	<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/wiki/Special:Contributions/Kynes"/>
	<updated>2026-04-04T19:58:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=Compiling_the_source&amp;diff=1234</id>
		<title>Compiling the source</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=Compiling_the_source&amp;diff=1234"/>
		<updated>2013-01-30T04:47:50Z</updated>

		<summary type="html">&lt;p&gt;Kynes: changed pak{0...6}.pk3 to pak{0...9}.pk3 . Still missing pakA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Mac OS X==&lt;br /&gt;
&lt;br /&gt;
First, you need to [[Getting_the_source|acquire the source code]].&lt;br /&gt;
&lt;br /&gt;
Regardless of what interface you may use to compile the source, you will need [http://www.cmake.org/cmake/resources/software.html CMake] to generate makefiles. You will also need to install [https://developer.apple.com/xcode/ XCode] (making sure to choose to install the command-line utilities when prompted by the installer).&lt;br /&gt;
&lt;br /&gt;
Then, you will need to acquire (and in some cases, manually compile) at a minimum the [[#Dependencies|necessary libraries]].&lt;br /&gt;
&lt;br /&gt;
Once you have the source code and the libraries installed, you may actually proceed to compile the source. You have several options:&lt;br /&gt;
* '''Compile the source at the command line'''. This is the easiest if you would just like to compile the game to use yourself and you do not intend to work on the code.&lt;br /&gt;
* '''Compile the source using an IDE'''. This is preferred if you intend on developing the source.&lt;br /&gt;
** XCode is Apple's flagship IDE and you should have installed to compile the source regardless of which method you use.&lt;br /&gt;
** [http://qt-project.org/downloads QtCreator] is cross-platform and provides real-time feedback of syntax errors, a Vim mode, as well as other features.&lt;br /&gt;
** [http://www.codeblocks.org/ Code::Blcoks] is also cross-platform but lacks some of the features of XCode and QtCreator.&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
You only need to use one of the following methods (HomeBrew or compiling by hand). Please try and avoid mixing methods as this may produce unexpected results.&lt;br /&gt;
&lt;br /&gt;
Unvanquished requires the following libraries:&lt;br /&gt;
* [[#JPEG|JPEG]], version 8 or higher. (Version 6 was known to have problems)&lt;br /&gt;
* [[#Simple_DirectMedia_Layer_.28SDL.29|Simple DirectMedia Layer]] (The binary provided by libsdl.org causes graphical corruptions. Compile from source or use homebrew/macports)&lt;br /&gt;
* [[#The_OpenGL_Extension_Wrangler_Library_.28GLEW.29|The OpenGL Extension Wrangler Library]]&lt;br /&gt;
* CuRL&lt;br /&gt;
* [[#The_GNU_MP_Bignum_Library_.28libgmp.29|GMP]]&lt;br /&gt;
* [[#WebP|WebP]] (v0.2.0 or newer)&lt;br /&gt;
&lt;br /&gt;
The following libraries are optional:&lt;br /&gt;
* Theora&lt;br /&gt;
* Speex&lt;br /&gt;
* [[#Ogg|Ogg]]&lt;br /&gt;
* [[#Vorbis|Vorbis]]&lt;br /&gt;
&lt;br /&gt;
====HomeBrew====&lt;br /&gt;
Install [http://mxcl.github.com/homebrew/ HomeBrew] and then run the following command&lt;br /&gt;
&lt;br /&gt;
 $ brew install nettle libjpeg curl sdl webp xvid gmp glew speex libvorbis theora&lt;br /&gt;
&lt;br /&gt;
All the necessary libraries should now have been installed.&lt;br /&gt;
&lt;br /&gt;
====Compiling by hand====&lt;br /&gt;
The following are shell scripts that download, compile, and install various libraries. This is more time consuming then other methods but might be useful if you need more control over your libraries&lt;br /&gt;
&lt;br /&gt;
=====JPEG=====&lt;br /&gt;
&lt;br /&gt;
 $ curl http://www.ijg.org/files/jpegsrc.v8d.tar.gz &amp;gt; jpegsrc.v8d.tar.gz&lt;br /&gt;
 $ tar xvzf jpegsrc.v8d.tar.gz&lt;br /&gt;
 $ cd jpeg-8d&lt;br /&gt;
 $ ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
=====The OpenGL Extension Wrangler Library (GLEW)=====&lt;br /&gt;
&lt;br /&gt;
 $ curl -L https://sourceforge.net/projects/glew/files/glew/1.7.0/glew-1.7.0.tgz/download &amp;gt; glew-1.7.0.tgz&lt;br /&gt;
 $ tar xvzf glew-1.7.0.tgz&lt;br /&gt;
 $ cd glew-1.7.0&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
=====Simple DirectMedia Layer (SDL)=====&lt;br /&gt;
&lt;br /&gt;
Do not use the binaries provided by libsdl.org, as these are known to cause issues with gamma and color display. Instead, compile your own:&lt;br /&gt;
&lt;br /&gt;
 $ curl http://www.libsdl.org/release/SDL-1.2.15.tar.gz &amp;gt; SDL-1.2.15.tar.gz&lt;br /&gt;
 $ tar xvzf SDL-1.2.15.tar.gz&lt;br /&gt;
 $ cd SDL-1.2.15&lt;br /&gt;
 $ ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
=====The GNU MP Bignum Library (libgmp)=====&lt;br /&gt;
&lt;br /&gt;
 $ curl ftp://ftp.gmplib.org/pub/gmp-5.0.5/gmp-5.0.5.tar.bz2 &amp;gt; gmp-5.0.5.tar.bz2&lt;br /&gt;
 $ tar xvjf gmp-5.0.5.tar.bz2&lt;br /&gt;
 $ cd gmp-5.0.5&lt;br /&gt;
 $ ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
=====Ogg=====&lt;br /&gt;
&lt;br /&gt;
 $ curl http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz &amp;gt; libogg-1.3.0.tar.gz&lt;br /&gt;
 $ tar xvzf libogg-1.3.0.tar.gz&lt;br /&gt;
 $ cd libogg-1.3.0&lt;br /&gt;
 $ ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
=====Vorbis=====&lt;br /&gt;
&lt;br /&gt;
 $ curl http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz &amp;gt; libvorbis-1.3.3.tar.gz&lt;br /&gt;
 $ tar xvzf libvorbis-1.3.3.tar.gz&lt;br /&gt;
 $ cd libvorbis-1.3.3&lt;br /&gt;
 $ ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
=====WebP=====&lt;br /&gt;
&lt;br /&gt;
You do not need to compile WebP by hand; Google provides binaries for Mac OS X available from their [https://code.google.com/p/webp/downloads/detail?name=libwebp-0.2.0-mac-10.5.tar.gz project page]. You will need version 0.2.0 or newer.&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you must still install the header files and the binary:&lt;br /&gt;
&lt;br /&gt;
 $ curl https://webp.googlecode.com/files/libwebp-0.2.0-mac-10.5.tar.gz &amp;gt; libwebp-0.2.0-mac-10.5.tar.gz&lt;br /&gt;
 $ tar xvzf libwebp-0.2.0-mac-10.5.tar.gz&lt;br /&gt;
 $ cd libwebp-0.2.0-mac-10.5&lt;br /&gt;
 $ sudo cp include/webp /usr/local/include&lt;br /&gt;
 $ sudo cp lib/libwebp.a /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
===Configuring with CMake===&lt;br /&gt;
&lt;br /&gt;
# Run CMake.&lt;br /&gt;
# Enter the location of the source code.&lt;br /&gt;
# Enter the location in which you would like to build the source code. This should be a different directory.&lt;br /&gt;
# Hit &amp;quot;Configure&amp;quot;. You will be prompted as to which generator you would like to use. If you have Xcode installed, choose that. Wait while the configuration process runs. You may have to set the following:&lt;br /&gt;
## If CMake did not find your jpeg headers for some reason, set &amp;lt;code&amp;gt;JPEG_INCLUDE_DIR&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/path/to/Unvanquished/src/libs/jpeg&amp;lt;/code&amp;gt;.&lt;br /&gt;
## Check &amp;lt;code&amp;gt;USE_INTERNAL_CRYPTO&amp;lt;/code&amp;gt; to avoid having to compile nettle and hogweed.&lt;br /&gt;
## Check &amp;lt;code&amp;gt;USE_INTERNAL_SPEEX&amp;lt;/code&amp;gt; to avoid having to compile Speex.&lt;br /&gt;
## Uncheck &amp;lt;code&amp;gt;USE_CIN_THEORA&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USE_CIN_XVID&amp;lt;/code&amp;gt; to avoid having to compile Theora or Xvid. (At present, there are not cutscenes or any such that require it.)&lt;br /&gt;
## '''You will probably not be able to compile with the GLSL optimizer enabled; uncheck &amp;lt;code&amp;gt;USE_GLSL_OPTIMIZER&amp;lt;/code&amp;gt;'''&lt;br /&gt;
## If you have selected to generate XCode project files, make the &amp;lt;code&amp;gt;SDLMAIN_LIBRARY&amp;lt;/code&amp;gt; field blank. This option is not available if you have the generator set to Unix makefiles.&lt;br /&gt;
# Hit &amp;quot;Generate&amp;quot;.&lt;br /&gt;
# You may now close XCode.&lt;br /&gt;
&lt;br /&gt;
===Compiling===&lt;br /&gt;
&lt;br /&gt;
====With XCode====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compilation will fail unless you manually create certain directories needed by the build scripts:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/build/dir/CMakeFiles&lt;br /&gt;
$ mkdir gpp{game,trem,ui}-qvm.dir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a workaround to [https://github.com/Unvanquished/Unvanquished/issues/101 issue 101].&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Either start XCode and open the project file (in the build directory you specified) or double-click the project file in Finder.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the project file created by CMake, which should be in the build directory you specified.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Change the active target to &amp;quot;ALL_BUILD&amp;quot; and click Product&amp;amp;rarr;Build.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====With Unix Makefiles====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start Terminal (Applications &amp;amp;rarr; Utilities &amp;amp;rarr; Terminal).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Input the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/Unvanquished-build&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are on a multi-core or multi-processor machine, you may speed up the process by passing the &amp;lt;code&amp;gt;-j&amp;lt;/code&amp;gt; argument followed by the number of available cores to &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;; e.g., &amp;lt;code&amp;gt;make -j4&amp;lt;/code&amp;gt;. Note that doing so makes reading error messages more difficult, as multiple instances of the compiler will print to the screen at once, causing information to appear out of order.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Testing the build===&lt;br /&gt;
&lt;br /&gt;
====With XCode 4====&lt;br /&gt;
&lt;br /&gt;
To test the game, select the &amp;quot;client&amp;quot; scheme from the combo box on the toolbar, and click the run button or press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;&amp;amp;#8984;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====With Unix Makefiles====&lt;br /&gt;
&lt;br /&gt;
After compiling, you'll have to place the data files in the &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; directory in your build directory. [[#Acquiring the Game Files|For download instructions, see below.]]&lt;br /&gt;
&lt;br /&gt;
Your file structure should look as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Build_dir_Mac_OS_X.png]]&lt;br /&gt;
&lt;br /&gt;
You may now start the application as such:&lt;br /&gt;
&lt;br /&gt;
 $ ./daemon.i386&lt;br /&gt;
&lt;br /&gt;
Note that older machines will not support the new OpenGL 3 renderer, and must be started specifying the &amp;quot;vanilla&amp;quot; (aka &amp;quot;GL&amp;quot;) renderer:&lt;br /&gt;
&lt;br /&gt;
 $ ./daemon.i386 +set cl_renderer GL&lt;br /&gt;
&lt;br /&gt;
===Bundling the Application===&lt;br /&gt;
&lt;br /&gt;
====With CPack====&lt;br /&gt;
&lt;br /&gt;
CPack is able to create standalone bundles (as well as many other types of installers). However you must generate the files using Unix Makefiles instead of XCode.&lt;br /&gt;
&lt;br /&gt;
 $ cd /path/to/Unvanquished-build&lt;br /&gt;
 $ cpack -G Bundle&lt;br /&gt;
&lt;br /&gt;
Some warnings will be printed however these can be safely ignored. There should be a file called Unvanquished.dmg in the Unvanquished-build folder.&lt;br /&gt;
&lt;br /&gt;
====Manually====&lt;br /&gt;
&lt;br /&gt;
You'll find the Mac [http://macdylibbundler.sourceforge.net/ dynamic library bundler] to be quite useful (you must generate the files using Unix Makefiles instead of XCode):&lt;br /&gt;
&lt;br /&gt;
 $ curl -L http://sourceforge.net/projects/macdylibbundler/files/macdylibbundler/0.4.1/dylibbundler0.4.1.zip/download &amp;gt; dylibbundler0.4.1.zip&lt;br /&gt;
 $ unzip dylibbundler0.4.1.zip&lt;br /&gt;
 $ cd dylibbundler&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
Once you've done that, you can proceed to create the application bundle. Note that these steps assume that you have downloaded the data files to &amp;lt;code&amp;gt;main/&amp;lt;/code&amp;gt; as shown above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git=/path/to/Unvanquished-git-repo&lt;br /&gt;
$ build=/path/to/Unvanquished-build-dir&lt;br /&gt;
$ mkdir -pv Unvanquished.app/Contents/{libs,MacOS,Resources,Frameworks}&lt;br /&gt;
$ cp -r $build/main Unvanquished.app/Contents/MacOS&lt;br /&gt;
$ sips -s format tiff $git/debian/unvanquished.png --out temp.tiff&lt;br /&gt;
$ tiff2icns temp.tiff Unvanquished.app/Contents/Resources/Unvanquished.icns&lt;br /&gt;
$ rm temp.tiff&lt;br /&gt;
$ cp $build/daemon{,ded}.i386 $build/*.dylib Unvanquished.app/Contents/MacOS&lt;br /&gt;
$ cp -r /Library/Frameworks/SDL.framework Unvanquished.app/Contents/Frameworks&lt;br /&gt;
$ install_name_tool -id @executable_path/../Frameworks/SDL.framework/Versions/A/SDL Unvanquished.app/Contents/Frameworks/SDL.framework/Versions/A/SDL&lt;br /&gt;
$ install_name_tool -change @rpath/SDL.framework/Versions/A/SDL @executable_path/../Frameworks/SDL.framework/Versions/A/SDL Unvanquished.app/Contents/MacOS/daemon.i386&lt;br /&gt;
$ install_name_tool -change @rpath/SDL.framework/Versions/A/SDL @executable_path/../Frameworks/SDL.framework/Versions/A/SDL Unvanquished.app/Contents/MacOS/librendererGLi386.dylib&lt;br /&gt;
$ install_name_tool -change @rpath/SDL.framework/Versions/A/SDL @executable_path/../Frameworks/SDL.framework/Versions/A/SDL Unvanquished.app/Contents/MacOS/librendererGL3i386.dylib&lt;br /&gt;
$ for binary in Unvanquished.app/Contents/MacOS/*.{i386,dylib}; do dylibbundler -b -x $binary -d $dest/Unvanquished.app/Contents/libs/; done&lt;br /&gt;
$ cp /usr/lib/libGLEW.1.7.0.dylib ./Unvanquished.app/Contents/libs/libGLEW.1.7.0.dylib&lt;br /&gt;
$ chmod +w ./Unvanquished.app/Contents/libs/libGLEW.1.7.0.dylib&lt;br /&gt;
$ install_name_tool -id @executable_path/../libs/libGLEW.1.7.0.dylib ./Unvanquished.app/Contents/libs/libGLEW.1.7.0.dylib&lt;br /&gt;
$ install_name_tool -change /usr/lib/libGLEW.1.7.0.dylib @executable_path/../libs/libGLEW.1.7.0.dylib ./Unvanquished.app/Contents/MacOS/daemon.i386&lt;br /&gt;
$ cat &amp;gt; Unvanquished.app/Contents/Info.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleName&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Unvanquished&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleDisplayName&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Unvanquished&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleExecutable&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;daemon.i386&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleIconFile&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Unvanquished.icns&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;net.Unvanquished&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleInfoDictionaryVersion&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;6.0&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundlePackageType&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;APPL&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleShortVersionString&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;0.4.0&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;CFBundleVersion&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;0.4.0&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
^d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: &amp;lt;code&amp;gt;^d&amp;lt;/code&amp;gt; indicates pressing &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;Ctrl&amp;lt;/span&amp;gt;+&amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;D&amp;lt;/span&amp;gt; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
The contents of the completed application bundle should look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Bundle_dir_Mac_OS_X.png]]&lt;br /&gt;
&lt;br /&gt;
'''Note''': If you compiled SDL from source, you will not see a directory titled &amp;lt;code&amp;gt;SDL.framework&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
&lt;br /&gt;
===Visual Studio===&lt;br /&gt;
&lt;br /&gt;
CMake can generate Visual Studio projects for unvanquished however this feature is relatively new and may have some bugs.&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
&lt;br /&gt;
# Double click on Visual_Studio32.bat&lt;br /&gt;
# Open build-32/Daemon.sln in Visual Studio 2010.&lt;br /&gt;
# In the two text boxes in the toolbar, select &amp;quot;Release&amp;quot; or &amp;quot;Debug&amp;quot; in the first one and Win32 in the second one&lt;br /&gt;
# Press F5 to build solution and run application, or just use Build &amp;amp;rarr; Build Solution to compile the code.&lt;br /&gt;
&lt;br /&gt;
====Important Notes====&lt;br /&gt;
&lt;br /&gt;
* LLVM is disabled and does not work correctly with CMake generated Visual Studio projects.&lt;br /&gt;
* ncurses is not supported under Visual Studio.&lt;br /&gt;
* The path to the build folder must not have any spaces otherwise generation of QVMs will fail. See [https://github.com/Unvanquished/Unvanquished/issues/102 issue 102]&lt;br /&gt;
* Due to limitations with cmake neither the startup project nor the working directory can be specified. These must be manually set to the following values for debugging the client under Visual Studio&lt;br /&gt;
** Right click on client and select &amp;quot;Set as StartUp project&amp;quot;.&lt;br /&gt;
** Right click on client, select properties, select Debugging and set &amp;quot;Working Directory&amp;quot; to $(TargetPath)\..&lt;br /&gt;
&lt;br /&gt;
===MinGW===&lt;br /&gt;
&lt;br /&gt;
Unvanquished is supported under MinGW. The build process should be fairly similar to the Linux instructions.&lt;br /&gt;
&lt;br /&gt;
The easiest way to acquire and install MinGW is with the graphical [http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/ mingw-get-inst installer]. &amp;lt;!-- TODO: maybe walk the user through the installer? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When configuring the build with CMake, you will find that you will have to set a number of libraries manually. You can find precompiled DLLs for most of the dependencies; those that are not pre-compiled can be built with the corresponding &amp;lt;code&amp;gt;USE_INTERNAL_&amp;lt;/code&amp;gt; setting.&lt;br /&gt;
&lt;br /&gt;
The easiest way to get a build up (at the time of writing) is as follows: &amp;lt;!-- FIXME: incomplete --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|content=Be aware that some of these paths are for the 64 bit versions of libraries; if you are on a 32-bit system, you will need to change some of these paths. The easiest way to locate libraries is to navigate in Windows Explorer to the &amp;lt;code&amp;gt;src/libs&amp;lt;/code&amp;gt; directory and search for files matching &amp;lt;code&amp;gt;dll&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;!-- might not be necessary&lt;br /&gt;
&amp;lt;li&amp;gt;Download and extract the latest version of the [http://gmplib.org/ GNU MP Bignum Library (GMP)]. (You will need either cygwin with tar and bz2 installed or 7-zip to extract the archive.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Theoretically, you can compile GMP with either the MSYS shell (from MinGW) or Cygwin, but you may experience issues with the former. Regardless of which you use, the steps to compile are the same:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./configure --disable-static --enable-shared&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;--disable-static&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--enable-shared&amp;lt;/code&amp;gt; flags configure GMP to build a DLL instead of a static library. You may optionally perform &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;. Additional compilation instructions [http://www.cs.nyu.edu/exact/core/gmp/ are available].&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set the following CMake flags:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Description&lt;br /&gt;
! Type&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_INTERNAL_CRYPTO&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the provided copies of crypto libraries. &amp;lt;!-- FIXME: I think these are nettle and something else --&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_INTERNAL_GLEW&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the provided copy of GLEW.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_INTERNAL_JPEG&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the provided copy of JPEG.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_INTERNAL_SDL&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the provided copy of SDL.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_INTERNAL_SPEEX&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the provided copy of Speex.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_INTERNAL_WEBP&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the provided copy of WebP.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_CURSES&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/disables curses.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PNG_LIBRARY&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the PNG library DLL.&lt;br /&gt;
| &amp;lt;code&amp;gt;FILEPATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/libpng/libs/win64/libpng14-14.dll&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PNG_PNG_INCLUDE_DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the PNG library header files.&lt;br /&gt;
| &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/libpng&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FREETYPE_LIBRARY&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the compiled FreeType library.&lt;br /&gt;
| &amp;lt;code&amp;gt;FILEPATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/freetype/lib/x64/freetype.dll&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FREETYPE_INCLUDE_DIR_freetype2&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the FreeType library header files.&lt;br /&gt;
| &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/freetype/include/freetype2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FREETYPE_INCLUDE_DIR_ft2build&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the FreeType library file &amp;quot;ftbuild.h&amp;quot;.&lt;br /&gt;
| &amp;lt;code&amp;gt;FILEPATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/freetype/include/ftbuild.h&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;GMP_INCLUDE_DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the GMP library header files.&lt;br /&gt;
| &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/gmp/include&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;GMP_LIBRARY&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the GMP library.&lt;br /&gt;
| &amp;lt;code&amp;gt;FILEPATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ZLIB_INCLUDE_DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the zlib library header files.&lt;br /&gt;
| &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/zlibwapi/include&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ZLIB_LIBRARY&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the zlib library.&lt;br /&gt;
| &amp;lt;code&amp;gt;FILEPATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/zlibwapi/lib/x64/zlib1.dll&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CURL_LIBRARY&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the CURL library.&lt;br /&gt;
| &amp;lt;code&amp;gt;FILEPATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/curl-7.21.6/lib/win64/release/libcurl.dll&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CURL_INCLUDE_DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to the zlib library.&lt;br /&gt;
| &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/curl-7.21.6/include/curl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_OPENAL&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/disables OpenAL support.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_CIN_THEORA&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/disables Theora support.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_CIN_XVID&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/disables Xvid support.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;USE_CODEC_THEORA&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/disables Ogg support.&lt;br /&gt;
| &amp;lt;code&amp;gt;BOOL&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SDLMAIN_LIBRARY&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/disables Ogg support.&lt;br /&gt;
| &amp;lt;code&amp;gt;FILEPATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;SourcePath&amp;lt;/var&amp;gt;/src/libs/libsdl/src/main/win32/SDL_win32_main.c&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Do note that CMake is slash-direction&amp;amp;ndash;agnostic; it can handle both forward- and backslashes on Windows.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a more fully-featured build:&lt;br /&gt;
* If you would like to use curses, try using [http://sourceforge.net/projects/pdcurses/files/pdcurses PDCurses].&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: this may be incomplete --&amp;gt;&lt;br /&gt;
====Debian/Ubuntu====&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install libcurl4-gnutls-dev libfreetype6-dev libglew1.5-dev \&lt;br /&gt;
   libgmp3-dev libjpeg8-dev libncurses5-dev libogg-dev libopenal-dev \&lt;br /&gt;
   libpng12-dev libsdl1.2-dev libvorbis-dev zlib1g-dev nettle-dev \&lt;br /&gt;
   libwebp-dev libspeexdsp-dev libtheora-dev&lt;br /&gt;
&lt;br /&gt;
If the version of WebP supplied by your version of Debian or Ubuntu is older than v0.2.0, you will need to [https://code.google.com/p/webp/downloads/detail?name=libwebp-0.2.0.tar.gz download] and [https://developers.google.com/speed/webp/docs/compiling#unix compile it from source]. After compiling and installing with &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;, in CMake, you'll need to set &amp;lt;code&amp;gt;WEBP_INCLUDE_DIR&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/usr/local/include/webp&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;WEBP_LIBRARY&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/usr/local/lib/libwebp.so&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Actual dev package names may vary, e.g. libgmp-dev instead of libgmp3-dev and libglew-dev or libglew1.7-dev instead of libglew1.5-dev.&lt;br /&gt;
&lt;br /&gt;
Since we have a debian directory in the source, you can also to check what's needed then install the listed packages (choosing from alternatives as needed):&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;var&amp;gt;/path/to/unvanquished&amp;lt;/var&amp;gt;&lt;br /&gt;
 $ dpkg-checkbuilddeps&lt;br /&gt;
 …&lt;br /&gt;
 $ sudo apt-get install &amp;lt;var&amp;gt;package(s)&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If dpkg-checkbuilddeps produces no output, you have all necessary build dependencies. Also, debhelper's only needed if you're building .debs.&lt;br /&gt;
&lt;br /&gt;
====Gentoo====&lt;br /&gt;
&lt;br /&gt;
 $ emerge curl freetype glew gmp jpeg ncurses libogg openal libpng libsdl libvorbis zlib&lt;br /&gt;
&lt;br /&gt;
====openSUSE====&lt;br /&gt;
&lt;br /&gt;
 $ sudo install zypper gcc gcc-c++ Mesa-libGL-devel SDL-devel libjpeg8-devel \&lt;br /&gt;
   libpng12-devel glew-devel webp-devel ncurses-devel gmp-devel libcurl-devel \&lt;br /&gt;
   libnettle-devel openal-soft-devel speex-devel libvorbis-devel \&lt;br /&gt;
   libtheora-devel&lt;br /&gt;
&lt;br /&gt;
The latest version of WebP must be installed manually:&lt;br /&gt;
&lt;br /&gt;
 $ wget https://webp.googlecode.com/files/libwebp-0.2.1.tar.gz&lt;br /&gt;
 $ tar xvzf libwebp-0.2.1.tar.gz&lt;br /&gt;
 $ cd libwebp-0.2.1&lt;br /&gt;
 $ ./configure &amp;amp;&amp;amp; make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
You must disable curses (set &amp;lt;code&amp;gt;USE_CURSES&amp;lt;/code&amp;gt; appropriately in CMake) as failing to do so will cause Unvanquished to crash on startup.&lt;br /&gt;
&lt;br /&gt;
===Configuring the code with CMake===&lt;br /&gt;
&lt;br /&gt;
After you have [[Getting the source|acquired the source code]], you can proceed to compile. Unvanquished uses CMake, so you must have that installed. &lt;br /&gt;
&lt;br /&gt;
====Using ccmake (curses-based front-end)====&lt;br /&gt;
&lt;br /&gt;
On Debian or Ubuntu:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install cmake-curses-gui&lt;br /&gt;
&lt;br /&gt;
On Gentoo you should set the '''ncurses''' USE flag either globally or individually, just for cmake.&lt;br /&gt;
To add the USE flag globally, edit the USE array in /etc/make.conf for it to include '''ncurses'''.&lt;br /&gt;
To only install cmake with ncurses functionality, you could do the following:&lt;br /&gt;
&lt;br /&gt;
 $ echo 'dev-util/cmake ncurses' &amp;gt;&amp;gt; /etc/portage/package.use &amp;amp;&amp;amp; emerge cmake&lt;br /&gt;
&lt;br /&gt;
Note that in Ubuntu, &amp;lt;code&amp;gt;cmake-curses-gui&amp;lt;/code&amp;gt; is in Universe, which you may have to enable with &amp;lt;code&amp;gt;software-properties-gtk&amp;lt;/code&amp;gt;. Make sure to reload the software sources with &amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt; afterwards.&lt;br /&gt;
&lt;br /&gt;
Next, configure the codebase.&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;var&amp;gt;/path/to/unvanquished&amp;lt;/var&amp;gt;&lt;br /&gt;
 $ mkdir build&lt;br /&gt;
 $ cd build&lt;br /&gt;
 $ ccmake ..&lt;br /&gt;
&lt;br /&gt;
Or, in Debian or Ubuntu, you can build a package (but you'll need to have devscripts and fakeroot installed):&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;var&amp;gt;/path/to/unvanquished&amp;lt;/var&amp;gt;&lt;br /&gt;
 $ fakeroot dpkg-buildpackage -b -uc&lt;br /&gt;
 $ sudo dpkg -i &amp;lt;var&amp;gt;../unvanquished_*.deb&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once in &amp;lt;code&amp;gt;ccmake&amp;lt;/code&amp;gt;, use the following keys:&lt;br /&gt;
&lt;br /&gt;
* Press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt; to configure. If an error occurs during this phase, make note of it and press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt; to dismiss it.&lt;br /&gt;
* Use the up and down arrow keys to navigate the compilation options.&lt;br /&gt;
* Press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;Enter&amp;lt;/span&amp;gt; to enable or disable boolean options (i.e., on/off) or to edit textual options.&lt;br /&gt;
** Press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;Esc&amp;lt;/span&amp;gt; when editing a textual option to cancel the change.&lt;br /&gt;
&lt;br /&gt;
Once you have finished the configuration process, press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt; again, then &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt; to generate the makefile.&lt;br /&gt;
&lt;br /&gt;
====Using cmake-qt-gui (graphical front-end)====&lt;br /&gt;
&lt;br /&gt;
This graphical front end for cmake has its own package you must install:&lt;br /&gt;
&lt;br /&gt;
=====Debian/Ubuntu=====&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install cmake-qt-gui&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
&lt;br /&gt;
With the '''qt4''' USE flag enabled:&lt;br /&gt;
&lt;br /&gt;
 $ emerge cmake&lt;br /&gt;
&lt;br /&gt;
Once installed, run with &amp;lt;code&amp;gt;cmake-gui&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cmake-qt-gui.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
# Set the path where you have the source code downloaded.&lt;br /&gt;
# Set the path where you would like to build the engine. This may be the same directory if you wish.&lt;br /&gt;
# Click 'Configure'.&lt;br /&gt;
# Click 'Generate'.&lt;br /&gt;
&lt;br /&gt;
====Unnecessary libraries====&lt;br /&gt;
&lt;br /&gt;
Regardless of which front-end to cmake you use, you may want to disable some libraries that are not strictly necessary:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;USE_OPENAL&amp;lt;/code&amp;gt; &amp;amp;mdash; If this is disabled, SDL is used instead for sound.&lt;br /&gt;
* &amp;lt;code&amp;gt;USE_CODEC_VORBIS&amp;lt;/code&amp;gt; &amp;amp;mdash; Disabling this will cause certain sound effects (those using the &amp;lt;code&amp;gt;.ogg&amp;lt;/code&amp;gt; format) not to play. At present, this has only a minor impact on gameplay, but more and more sounds will likely use the format in the future.&lt;br /&gt;
* &amp;lt;code&amp;gt;USE_CURSES&amp;lt;/code&amp;gt; &amp;amp;mdash; Disabling this will cause the external (not in-game) console to not use curses; it will not be scrollable and will be similar to the console in the original Tremulous. This does in no way affect gameplay.&lt;br /&gt;
* &amp;lt;code&amp;gt;USE_CIN_THEORA&amp;lt;/code&amp;gt; &amp;amp;mdash; Disabling this prevents videos from being recorded in Theora.&lt;br /&gt;
* &amp;lt;code&amp;gt;USE_CIN_XVID&amp;lt;/code&amp;gt; &amp;amp;mdash; Disabling this prevents videos from being recorded in Xvid.&lt;br /&gt;
* &amp;lt;code&amp;gt;USE_VOIP&amp;lt;/code&amp;gt; &amp;amp;mdash; Disabling this removes VOIP support. Alternatively enabling &amp;lt;code&amp;gt;USE_INTERNAL_SPEEX&amp;lt;/code&amp;gt; will use the libraries distributed with Unvanquished for VoIP&lt;br /&gt;
* &amp;lt;code&amp;gt;USE_INTERNAL_CRYPTO&amp;lt;/code&amp;gt; &amp;amp;mdash; Enable this to use the crypto libraries provided by Unvanquished.&lt;br /&gt;
&lt;br /&gt;
===Compiling===&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;var&amp;gt;path/to/unvanquished/build&amp;lt;/var&amp;gt;&lt;br /&gt;
 $ make -j4&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;-j&amp;lt;/code&amp;gt; switch to make allows you to speed up the compilation process by running it in multiple threads; set the number following this to the number of cores your processor(s) have.&lt;br /&gt;
&lt;br /&gt;
===Acquiring the Game Files===&lt;br /&gt;
&lt;br /&gt;
====Acquiring mandatory game files====&lt;br /&gt;
&lt;br /&gt;
The game files are not in the Git repository, and must be downloaded separately. This may be done on the command line or from your web browser. The downloads may be found on [http://sourceforge.net/projects/unvanquished/files/Assets SourceForge.net]. If you download the files from your browser, just download the files named &amp;quot;pak*.pk3&amp;quot;, and save them to the [[Running_the_game#Data_locations|data location]] for your system.&lt;br /&gt;
&lt;br /&gt;
On Linux, this may be done as follows:&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;var&amp;gt;[path to Unvanquished installation or build]&amp;lt;/var&amp;gt;/main&lt;br /&gt;
 $ for file in pak{0..9}.pk3; do&lt;br /&gt;
 wget -O $file &amp;quot;http://sourceforge.net/projects/unvanquished/files/Assets/$file/download&amp;quot;&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On FreeBSD, using the &amp;lt;code&amp;gt;sh&amp;lt;/code&amp;gt; shell:&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;var&amp;gt;[path to Unvanquished installation or build]&amp;lt;/var&amp;gt;/main&lt;br /&gt;
 $ for file in pak{0..9}.pk3; do&lt;br /&gt;
 fetch -r -o $file &amp;quot;http://sourceforge.net/projects/unvanquished/files/Assets/$file/download&amp;quot;&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
On Mac OS X:&lt;br /&gt;
&lt;br /&gt;
 $ cd ~/Library/Application Support/Unvanquished/main&lt;br /&gt;
 $ for file in pak{0..9}.pk3; do&lt;br /&gt;
 curl -L &amp;quot;http://sourceforge.net/projects/unvanquished/files/Assets/$file/download&amp;quot; &amp;gt; $file&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Linux users may also use the &amp;lt;code&amp;gt;download-pk3.sh&amp;lt;/code&amp;gt; script that is distributed with the source code, which requires that curl be installed:&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;var&amp;gt;[path to Unvanquished source code]&amp;lt;/var&amp;gt;&lt;br /&gt;
 $ mkdir -p ~/.Unvanquished/main&lt;br /&gt;
 $ ./download-pk3.sh ~/.Unvanquished/main&lt;br /&gt;
&lt;br /&gt;
====Downloading the map pack====&lt;br /&gt;
&lt;br /&gt;
The map pack exists only for convenience; if you do not download the map pack, Unvanquished will automatically download maps as needed when you attempt to play online.&lt;br /&gt;
&lt;br /&gt;
To download the map pack on Linux:&lt;br /&gt;
&lt;br /&gt;
 $ wget -O maps.7z &amp;quot;http://sourceforge.net/projects/unvanquished/files/Map%20Pack/maps.7z&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
To download the map pack on Mac OS X:&lt;br /&gt;
&lt;br /&gt;
 $ curl -L &amp;quot;http://sourceforge.net/projects/unvanquished/files/Map%20Pack/maps.7z&amp;quot; &amp;gt; maps.7z; done&lt;br /&gt;
&lt;br /&gt;
Note that you will need to unzip the map pack on either system as it is compressed with LZMA. Mac users can use the [http://wakaba.c3.cx/s/apps/unarchiver.html Unarchiver]. Uncompressing the archive on Linux is highly dependent on your distribution.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
&lt;br /&gt;
===CMake cannot locate Newton===&lt;br /&gt;
&lt;br /&gt;
If CMake cannot find Newton, you'll need to set it up yourself.&lt;br /&gt;
&lt;br /&gt;
It should be in &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;/path/to/Unvanquished&amp;lt;/var&amp;gt;/src/libs/libnewton/libs/&amp;lt;var&amp;gt;your_os&amp;lt;/var&amp;gt;/libNewton.so&amp;lt;/code&amp;gt;.&lt;br /&gt;
Be sure to replace &amp;lt;var&amp;gt;your_os&amp;lt;/var&amp;gt; with the proper directory name.&lt;br /&gt;
&lt;br /&gt;
Use CMake as before to change the &amp;lt;code&amp;gt;NEWTON_LIBRARY&amp;lt;/code&amp;gt; build setting to the said path:&lt;br /&gt;
&lt;br /&gt;
# Start the CMake configurator:&amp;lt;pre&amp;gt;$ ccmake ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Scroll down and highlight &amp;lt;code&amp;gt;NEWTON_LIBRARY&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;Enter&amp;lt;/span&amp;gt; to begin editing and input in the path.&lt;br /&gt;
# Press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt; to configure and &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt; to generate the new makefiles.&lt;br /&gt;
# Press &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;Q&amp;lt;/span&amp;gt; to quit.&lt;br /&gt;
# Recompile the source:&amp;lt;pre&amp;gt;$ make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The C Compiler is not able to compile a simple test program===&lt;br /&gt;
&lt;br /&gt;
When attempting to generate a solution for Xcode CMake fails with the following error&lt;br /&gt;
  -- Check for working C compiler using: Xcode -- broken&lt;br /&gt;
  CMake Error at /Applications/CMake 2.8-8.app/Contents/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE):&lt;br /&gt;
   The C compiler &amp;quot;/usr/bin/gcc&amp;quot; is not able to compile a simple test program.&lt;br /&gt;
  &lt;br /&gt;
    It fails with the following output:&lt;br /&gt;
  &lt;br /&gt;
     Change Dir: /Users/danielmaloney/Documents/Unvanquished/build-xcode/CMakeFiles/CMakeTmp&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    Run Build Command:/Applications/CMake\ 2.8-8.app/Contents/bin/cmakexbuild&lt;br /&gt;
    -project CMAKE_TRY_COMPILE.xcodeproj build -target&lt;br /&gt;
    cmTryCompileExec1400153232 -configuration Debug&lt;br /&gt;
  &lt;br /&gt;
    Error: No developer directory found at /Developer.  Run&lt;br /&gt;
    /usr/bin/xcode-select to update the developer directory path.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
    CMake will not be able to correctly generate this project.&lt;br /&gt;
  Call Stack (most recent call first):&lt;br /&gt;
    CMakeLists.txt:19 (project)&lt;br /&gt;
&lt;br /&gt;
This is due to Xcode 4.3 having a different directory structure to previous versions. Simply running the following command will correct this error:&lt;br /&gt;
 sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/&lt;/div&gt;</summary>
		<author><name>Kynes</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=Main_Page&amp;diff=200</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=Main_Page&amp;diff=200"/>
		<updated>2012-04-09T01:28:42Z</updated>

		<summary type="html">&lt;p&gt;Kynes: updated git link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This tells MediaWiki to not generate a table of contents for this page. --&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;text-align:center;margin:0px 0px 40px 0px;border-bottom-style:none;&amp;quot;&amp;gt;Welcome to the Unvanquished Wiki!&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unvanquished is a free and open-source team-based first person shooter based on [http://tremulous.net Tremulous] and created by Unvanquished Development. Unvanquished is a split from the [http://tremz.com/ TremZ project], with fundamentally different goals. We aim to provide a transparent development process that is open to the community, with frequent releases. We use the [[Engine features|Daemon engine]] (a fork of the OpenWolf engine) which provides a number of new features over Tremulous' ioQuake3-based engine.&lt;br /&gt;
&lt;br /&gt;
===What is it about?===&lt;br /&gt;
&lt;br /&gt;
Unvanquished is a first-person shooter, but a very unique one. It is team-based, and pits the [[aliens]] against the [[humans]]. While the humans are equipped with weapons that they use to exterminate the alien presence, the aliens have only their pincers and a few special attacks, such as poison gas, and ranged electrical and projectile attacks. Players do not spawn at random points in the map; instead, each map has default spawn points and both teams are capable of moving them wherever they please. Both teams have other buildings that round out their base, such as machinegun turrets for the humans and barricades for the aliens. Either team wins by destroying the opposing team's spawn points and killing any remaining members of that team before they are able to build any more spawn points or the game timer ends.&lt;br /&gt;
&lt;br /&gt;
==Downloading &amp;amp; Installing==&lt;br /&gt;
&lt;br /&gt;
See the [[Downloading &amp;amp; Installing]] page.&lt;br /&gt;
&lt;br /&gt;
==Playing the game==&lt;br /&gt;
&lt;br /&gt;
* [[Creating custom keybinds]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
==Contributing==&lt;br /&gt;
&lt;br /&gt;
There are a number of ways you can help. If you would like to contribute to the project, contact a team member on the [http://unvanquished.net/forum/ forums] or on [[IRC]]. We have two channels, [irc://freenode.net/#unvanquished #unvanquished] and [irc://freenode.net/#unvanquished-dev #unvanquished-dev] on [http://freenode.net// Freenode]. The former is for general discussion, while the latter is strictly for development-related discussion, so while members of the public are welcome at either, please keep the discussion on #unvanquished-dev on topic.&lt;br /&gt;
&lt;br /&gt;
If you do not have an IRC client, you can use the [http://webchat.freenode.net/?channels=unvanquished web chat] directly in your browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin:0px auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;padding:0px 10px;background:#C9DCF6;border-radius:7px 0px 0px 0px&amp;quot;&amp;gt;&lt;br /&gt;
Artists&lt;br /&gt;
&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;padding:0px 10px;background:#C9DCF6;&amp;quot;&amp;gt;&lt;br /&gt;
Programmers&lt;br /&gt;
&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;padding:0px 10px;background:#C9DCF6;border-radius:0px 7px 0px 0px&amp;quot;&amp;gt;&lt;br /&gt;
Everyone&lt;br /&gt;
&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:0px 10px;background:#F0F5FC;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Modeling Guide|Modeling]]&lt;br /&gt;
* [[Mapping]]&lt;br /&gt;
* [[Music and sounds]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:0px 10px;background:#F0F5FC;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Getting the source]]&lt;br /&gt;
* [[Compiling the source]]&lt;br /&gt;
* [[Technical documentation]]&lt;br /&gt;
* [[Engine features]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:0px 10px;background:#F0F5FC;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Bug reporting]]&lt;br /&gt;
* [[Wiki_TODO_List|Wiki documentation]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://unvanquished.net/ Homepage]&lt;br /&gt;
* [http://unvanquished.net/forum/ Forums]&lt;br /&gt;
* [http://unvanquished.net/forum/blog.php Development blog]&lt;br /&gt;
* [http://sourceforge.net/projects/unvanquished/files/ Downloads]&lt;br /&gt;
* [https://github.com/Unvanquished Source code]&lt;br /&gt;
* [https://picasaweb.google.com/104009985595164250961 Development screenshots]&lt;/div&gt;</summary>
		<author><name>Kynes</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=Getting_the_source&amp;diff=199</id>
		<title>Getting the source</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=Getting_the_source&amp;diff=199"/>
		<updated>2012-04-09T01:27:32Z</updated>

		<summary type="html">&lt;p&gt;Kynes: updated git link to https://github.com/Unvanquished/Unvanquished&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
==Installing Git==&lt;br /&gt;
&lt;br /&gt;
If you already have Git installed, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Windows users can acquire git from the [http://code.google.com/p/msysgit/ MSysGit project]. If you would prefer a graphical front-end, there is [http://code.google.com/p/tortoisegit/ TortoiseGit], but regardless MSysGit must be installed.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
Apple has included Git with Xcode since version 4. You may download [https://developer.apple.com/xcode/ Xcode] from  Apple's developer website.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
====Debian &amp;amp; Ubuntu====&lt;br /&gt;
&lt;br /&gt;
Install git using the package manager:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install git&lt;br /&gt;
&lt;br /&gt;
==Downloading the source==&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/Unvanquished/Unvanquished Unvanquished source code] is hosted on GitHub. You can either download a snapshot of the source code using the &amp;quot;ZIP&amp;quot; link, or you can use git to clone the repository.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
Use git on the command line:&lt;br /&gt;
&lt;br /&gt;
 $ git clone https://github.com/Umvanquished/Unvanquished.git&lt;br /&gt;
&lt;br /&gt;
This will create a directory called &amp;lt;code&amp;gt;Unvanquished&amp;lt;/code&amp;gt; in your home folder.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
====Command Line====&lt;br /&gt;
&lt;br /&gt;
Acquiring the source code using the command line is the same as on Linux. Just open a Terminal (/Applications/Utilities/Terminal) window and clone the source code like so:&lt;br /&gt;
&lt;br /&gt;
 $ git clone https://github.com/Unvanquished/Unvanquished.git&lt;br /&gt;
&lt;br /&gt;
====Xcode 4====&lt;br /&gt;
&lt;br /&gt;
# Start Xcode.&lt;br /&gt;
# Open the Organizer window (Window &amp;amp;rarr; Organizer or &amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;Shift&amp;lt;/span&amp;gt;+&amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;Command&amp;amp;nbsp;&amp;amp;#x2318;&amp;lt;/span&amp;gt;+&amp;lt;span class=&amp;quot;hotkey&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt;)&lt;br /&gt;
# Click the &amp;quot;Repositories&amp;quot; button on the top bar.&lt;br /&gt;
# Click the &amp;quot;+&amp;quot; button in the lower-left corner, and choose &amp;quot;Checkout or Clone Repository&amp;amp;hellip;&amp;quot;.&lt;br /&gt;
# In the rollout sheet that appears, enter &amp;lt;code&amp;gt;https://github.com/Unvanquished/Unvanquished.git&amp;lt;/code&amp;gt; into the &amp;quot;Location&amp;quot; field, and click &amp;quot;Next&amp;quot;.&lt;br /&gt;
# Enter &amp;quot;Unvanquished&amp;quot; into the &amp;quot;Name&amp;quot; field, ensure that the &amp;quot;Type&amp;quot; combo box is set to &amp;quot;Git&amp;quot;, and click &amp;quot;Clone&amp;quot;.&lt;br /&gt;
# You will be prompted where to save the repository. Choose a location and click &amp;quot;Clone&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
====TortoiseGIT====&lt;br /&gt;
&lt;br /&gt;
# Make and enter a new folder to store the source code in&lt;br /&gt;
# Right click the inside of the folder &amp;amp;rarr; Git Clone...&lt;br /&gt;
# In the Url textbox enter: &amp;lt;code&amp;gt;https://github.com/Unvanquished/Unvanquished.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# Click ok.&lt;br /&gt;
&lt;br /&gt;
====Command Line====&lt;br /&gt;
Open the MsysGit terminal and type:&lt;br /&gt;
 $ git clone https://github.com/Unvanquished/Unvanquished.git&lt;br /&gt;
&lt;br /&gt;
==Compiling==&lt;br /&gt;
&lt;br /&gt;
After getting the source code, you can [[Compiling the source|compile]] it.&lt;/div&gt;</summary>
		<author><name>Kynes</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=Creating_custom_keybinds&amp;diff=183</id>
		<title>Creating custom keybinds</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=Creating_custom_keybinds&amp;diff=183"/>
		<updated>2012-04-02T21:21:35Z</updated>

		<summary type="html">&lt;p&gt;Kynes: fixed silly table mistake from previous&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
'''''The information on this page is incomplete.'''''&lt;br /&gt;
&lt;br /&gt;
A number of commands for keybinds have changed since Tremulous, so keybind configurations cannot be directly copied from Tremulous to Daemon.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tremulous || Daemon || Used for…&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+button5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+attack2&amp;lt;/code&amp;gt; || Secondary attack&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+button7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+activate&amp;lt;/code&amp;gt; || Evolving or using&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+button8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+sprint&amp;lt;/code&amp;gt; || Sprinting&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+button6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+dodge&amp;lt;/code&amp;gt; || Dodging&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may want to bind the new [[Voice say system|vsays]] to different keys.&lt;br /&gt;
&lt;br /&gt;
==New commands==&lt;br /&gt;
&lt;br /&gt;
===if===&lt;br /&gt;
&amp;lt;tt&amp;gt;if VALUE CONDITION VALUE THEN [ELSE]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;if MODIFIERS THEN [ELSE]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;tt&amp;gt;VALUE&amp;lt;/tt&amp;gt; : a variable or number&lt;br /&gt;
; &amp;lt;tt&amp;gt;CONDITION&amp;lt;/tt&amp;gt; : comparison operator&lt;br /&gt;
; &amp;lt;tt&amp;gt;MODIFIERS&amp;lt;/tt&amp;gt; : comma-separated list of keyboard modifiers: Shift, Ctrl, Alt, Command (or Cmd), Mode, Super. Prefix any which must not be pressed with &amp;lt;kbd&amp;gt;!&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
; &amp;lt;tt&amp;gt;THEN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ELSE&amp;lt;/tt&amp;gt; : either a variable name or, if prefixed with &amp;lt;kbd&amp;gt;/&amp;lt;/kbd&amp;gt; or &amp;lt;kbd&amp;gt;\&amp;lt;/kbd&amp;gt;, a command string.&lt;br /&gt;
&lt;br /&gt;
Either the &amp;lt;tt&amp;gt;THEN&amp;lt;/tt&amp;gt; clause or the &amp;lt;tt&amp;gt;ELSE&amp;lt;/tt&amp;gt; clause (if present) will be executed. If it is a variable name, its content will be executed.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;/if shift &amp;quot;/echo Hello&amp;quot; &amp;quot;/echo Goodbye&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modcase===&lt;br /&gt;
&amp;lt;tt&amp;gt;modcase MODIFIERS THEN [MODIFIERS THEN]* [ELSE]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This works like &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;. The leftmost most-specific &amp;lt;tt&amp;gt;THEN&amp;lt;/tt&amp;gt; whose modifier list matches is the one which is executed; if none match, then &amp;lt;tt&amp;gt;ELSE&amp;lt;/tt&amp;gt; is executed if it is present.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;/modcase shift &amp;quot;/echo 1&amp;quot; ctrl &amp;quot;/echo 2&amp;quot; shift,ctrl &amp;quot;/echo 3&amp;quot; shift,!alt &amp;quot;/echo 4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
works as follows:&lt;br /&gt;
&lt;br /&gt;
# if Shift and Alt (due to clause 4) but not Ctrl (due to clause 3) are pressed;&lt;br /&gt;
# if Ctrl but not Shift (due to clause 3);&lt;br /&gt;
# if Shift and Ctrl;&lt;br /&gt;
# if Shift but neither Alt nor Ctrl.&lt;br /&gt;
&lt;br /&gt;
===messagemode4===&lt;br /&gt;
This command opens a chat prompt for the built-in IRC client.&lt;br /&gt;
&lt;br /&gt;
===editbind===&lt;br /&gt;
&amp;lt;tt&amp;gt;editbind KEY&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This inserts a &amp;lt;tt&amp;gt;/bind&amp;lt;/tt&amp;gt; command into the in-game console, ready for editing. The console is opened if needed.&lt;/div&gt;</summary>
		<author><name>Kynes</name></author>
	</entry>
	<entry>
		<id>https://staging-wiki.unvanquished.net/index.php?title=Creating_custom_keybinds&amp;diff=182</id>
		<title>Creating custom keybinds</title>
		<link rel="alternate" type="text/html" href="https://staging-wiki.unvanquished.net/index.php?title=Creating_custom_keybinds&amp;diff=182"/>
		<updated>2012-04-02T21:20:52Z</updated>

		<summary type="html">&lt;p&gt;Kynes: added '+button6 -&amp;gt; +dodge' to list of binding changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
'''''The information on this page is incomplete.'''''&lt;br /&gt;
&lt;br /&gt;
A number of commands for keybinds have changed since Tremulous, so keybind configurations cannot be directly copied from Tremulous to Daemon.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tremulous || Daemon || Used for…&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+button5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+attack2&amp;lt;/code&amp;gt; || Secondary attack&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+button7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+activate&amp;lt;/code&amp;gt; || Evolving or using&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+button8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+sprint&amp;lt;/code&amp;gt; || Sprinting&lt;br /&gt;
| &amp;lt;code&amp;gt;+button6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+dodge&amp;lt;/code&amp;gt; || Dodging&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may want to bind the new [[Voice say system|vsays]] to different keys.&lt;br /&gt;
&lt;br /&gt;
==New commands==&lt;br /&gt;
&lt;br /&gt;
===if===&lt;br /&gt;
&amp;lt;tt&amp;gt;if VALUE CONDITION VALUE THEN [ELSE]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;if MODIFIERS THEN [ELSE]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;tt&amp;gt;VALUE&amp;lt;/tt&amp;gt; : a variable or number&lt;br /&gt;
; &amp;lt;tt&amp;gt;CONDITION&amp;lt;/tt&amp;gt; : comparison operator&lt;br /&gt;
; &amp;lt;tt&amp;gt;MODIFIERS&amp;lt;/tt&amp;gt; : comma-separated list of keyboard modifiers: Shift, Ctrl, Alt, Command (or Cmd), Mode, Super. Prefix any which must not be pressed with &amp;lt;kbd&amp;gt;!&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
; &amp;lt;tt&amp;gt;THEN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ELSE&amp;lt;/tt&amp;gt; : either a variable name or, if prefixed with &amp;lt;kbd&amp;gt;/&amp;lt;/kbd&amp;gt; or &amp;lt;kbd&amp;gt;\&amp;lt;/kbd&amp;gt;, a command string.&lt;br /&gt;
&lt;br /&gt;
Either the &amp;lt;tt&amp;gt;THEN&amp;lt;/tt&amp;gt; clause or the &amp;lt;tt&amp;gt;ELSE&amp;lt;/tt&amp;gt; clause (if present) will be executed. If it is a variable name, its content will be executed.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;/if shift &amp;quot;/echo Hello&amp;quot; &amp;quot;/echo Goodbye&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modcase===&lt;br /&gt;
&amp;lt;tt&amp;gt;modcase MODIFIERS THEN [MODIFIERS THEN]* [ELSE]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This works like &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;. The leftmost most-specific &amp;lt;tt&amp;gt;THEN&amp;lt;/tt&amp;gt; whose modifier list matches is the one which is executed; if none match, then &amp;lt;tt&amp;gt;ELSE&amp;lt;/tt&amp;gt; is executed if it is present.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;/modcase shift &amp;quot;/echo 1&amp;quot; ctrl &amp;quot;/echo 2&amp;quot; shift,ctrl &amp;quot;/echo 3&amp;quot; shift,!alt &amp;quot;/echo 4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
works as follows:&lt;br /&gt;
&lt;br /&gt;
# if Shift and Alt (due to clause 4) but not Ctrl (due to clause 3) are pressed;&lt;br /&gt;
# if Ctrl but not Shift (due to clause 3);&lt;br /&gt;
# if Shift and Ctrl;&lt;br /&gt;
# if Shift but neither Alt nor Ctrl.&lt;br /&gt;
&lt;br /&gt;
===messagemode4===&lt;br /&gt;
This command opens a chat prompt for the built-in IRC client.&lt;br /&gt;
&lt;br /&gt;
===editbind===&lt;br /&gt;
&amp;lt;tt&amp;gt;editbind KEY&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This inserts a &amp;lt;tt&amp;gt;/bind&amp;lt;/tt&amp;gt; command into the in-game console, ready for editing. The console is opened if needed.&lt;/div&gt;</summary>
		<author><name>Kynes</name></author>
	</entry>
</feed>