Revision as of 10:01, 25 March 2012 by MCR (talk | contribs) (Adding important information regarding uforadiant compilation, general restructuring of the page for better readability)


For Debian and Debian-based distributions (Ubuntu etc.), you first need to install the standard GNU gcc stuff and GIT. Open your favourite console and type:

 $ sudo apt-get install make gcc git-core

You also need the following development packages (hope I didn't forget any - if make fails, that's probably the reason):

 $ sudo apt-get install \
   libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libvorbis-dev zlib1g-dev gettext libtheora-dev \
   libjpeg62-dev libpng12-dev libncurses5-dev libcurl3-dev libsdl-mixer1.2-dev \
   libxml2-dev libopenal-dev p7zip-full libcunit1-dev binutils-dev libxvidcore-dev libmxml-dev

You need these development packages if radiant should be built, which can be enabled later via './configure --enable-uforadiant'.

 $ sudo apt-get install \
   libglib2.0-dev libgtk2.0-dev libgtkglext1-dev libgtksourceview2.0-dev

If you plan to compile version prior to 2.2 you maybe also need libxxf86vm-dev and libxxf86dga-dev.

If you have issues with finding 'GL/gl.h' (later in the build) the following may also help

 $ sudo apt-get --reinstall install mesa-common-dev

Note: You also need to install gettext to compile languages (following the standard procedure on Ubuntu without that results in almost no texts in game). Wrwrwr 03:04, 7 December 2007 (CET)

Note: An easy way to get all build deps is to install the ubuntu/debian packages "equivs" and "devscripts" and run the following commands : (this will also provide the option to make the .deb files for ufoai later) --Ranyardm 00:16, 1 May 2010 (UTC)

 sudo dpkg -i ufoai-build-deps_1.0_all.deb
 sudo apt-get install -f

For Ubuntu 8.04 LTS users, simply use the following: (--Stmok 02:18, 14 October 2009 (UTC))

 $ sudo apt-get install \
   make gcc subversion libsdl1.2-dev libsdl-ttf2.0-dev libvorbis-dev zlib1g-dev gettext libtheora-dev libjpeg62-dev libpng12-dev libncurses5-dev \
   libcurl4-openssl-dev libsdl-mixer1.2-dev libxml2-dev libopenal-dev libglib2.0-dev libgtk2.0-dev libgtkglext1-dev mesa-common-dev gettext \
   libxvidcore4-dev libgtksourceview2.0-dev

If the game's sound is choppy, goes fast, and dies soon after starting, install libsdl1.2debian-pulseaudio. Set PulseAudio to use an internal sample rate of 48000 Hz by adding this line to /etc/pulse/daemon.conf:

  default-sample-rate = 48000

Download the latest development version

See Getting the source for more information

Compile game, language files and maps

Compile the game with:

$ ./configure
$ make

NOTE: You might want to use the -j option to make. This option will start multiple jobs to speed up compilation on modern CPUs. The number of jobs should be cpus/cores + 1, so if you have a dual-core cpu make -j 3, on a quad-core CPU make -j 5 is recommended. You could also use -j 2 or -j 4 on single core/single cpu machines to speed up things a little bit. Be aware that using all cores for map compiling will use up all of your processing power, so other applications will slow down to a crawl.

Compile the language files with:

$ make lang

NOTE: Ofc you can use multiple jobs here as well.

Now compile the maps (see also Mapping/Compile):

$ make maps

WARNING: Compiling all the maps takes a very long time, even on today's fastest machines !

NOTE: It is highly recommended to download compiled maps from the server instead of compiling them, but if you want to test the cooling of your CPU using multiple jobs is recommended for this task as well.

NOTE: You can use the python script in ufoaisource/contrib/map-get/ to save time and CPU power and download all the latest compiled maps (.bsps) from our server. You need to have Python installed to make this work:

$ python ./

NOTE: You can also start the map-get update-maps script with:

$ make maps-sync

After you've aquired the maps and compiled the binary you are ready to start the game:

$ ./ufo

Compile UFORadiant (optional)

NOTE: To be able to create maps for UFO:Alien Invasion's battlescape you need to compile UFORadiant (our map-editor). These steps are optional if you do not intend to modify maps or help with mapping, otherwise they are essential.

$ ./configure --enable-uforadiant
$ make uforadiant

NOTE: To start the mapeditor you have to change directory into radiant and start the compiled executable from there.

$ cd radiant
$ ./uforadiant

Installation (optional)

$ make pk3
$ sudo make install

NOTE: You just need to create the pk3 files (which are simple .zip files containing the data for the installation like maps, ufos, pics, textures, models) if you want to install the game. For running the game from source and helping with development these installation steps are not needed.


In master run the ufo executable:

$ ./ufo

The Debugging section also provides useful advice if something goes wrong.


If a black screen occurs and if you previously have installed the game : remove the ufoai directory (~/.ufoai) in your home directory:

$ rm -R ~/.ufoai

Building Debian packages

Use e.g. script to build a clean chroot environment in which you can generate the debian packages with:

sudo apt-get install devscripts

Just type:

$ make deb

This will build all maps and compile the game (if not already done) and create deb packages (you need the devscripts package, too). If you want to build the maps with this command, make sure, that you already have ufoai-tools installed. To install them before creating the maps you can type:

$ make debbinary

and install the ufoai-tools package via:

$ dpkg -i ufoai-tools[...].deb

You also have the ability to create only the data packages by typing:

$ make debdata