Armagetron Advanced: Documentation
Author: Manuel Moos
Date: 2020-11-05T23:48:11+01:00

First Start | Installation | Network Play | Configuration | FAQ | Redistribution

# Installation

## General comments

All systemwide installation has to be carried out as root. Installation from a source archive is recommended, as Armagetron Advanced will be tailored for your system and missing libraries will be identified and pointed out to you. Only as a last resort, you should choose the binary archives. The binary RPMs and Debian packages are a reasonable choice if your system supports them and you can get hold of the corresponding library packages in the right versions.

It is very important that Armagetron and all of its dependencies are built with the same compiler. The different versions of gcc tend to be slightly binary incompatible with each other, and on complex projects like this one these small glitches tend to cause unexplainable problems. The distributed binaries are compiled with gcc 3.3, and we test source compatibility with 3.4 and 4.0 regularly. Yes, theoretically the binary interface for C code (ABI) did not change, but be prepared for problems nevertheless.

## Required libraries

- LibXML2 version 2.6.0 (some binaries: 2.6.12) or later for map file parsing
- OpenGL or Mesa for rendering
- SDL version 1.2.x (Simple Direct Media Layer) for input and sound output
- SDL_image version 1.2.x for the textures which itself needs the libs
- pnglib and zlib (they should be included in your distribution)
- Optional: SDL_mixer
- Binary versions only: libstdc++ 5.0.7 (any 5.x.y or whatever came with your System if it uses GCC 3.2 or higher should do). Use rpmfind or google to find a RPM with that library for your system. Sorry, Debian users: I don't know what you need to do; use the source packages instead.

## Installation

### Source archive

Unpack the archive and change into the unpacked directory; type

    ./configure
    gmake install

Everything will be copied to /usr/local/games/armagetron. Should there already be a version, it will be overwritten (see the section on multiple versions if you want to keep your old version around). If gmake is not found on your system, try make; however, only GNU make is supported. To build the dedicated server, add the option --disable-glout to the configure script. To change the installation path, use the option --prefix=new_path. Type

    uninstall-armagetronad-0.2.8.3.5

to uninstall.

Please report it if this procedure gives you errors you cannot resolve; the goal is to make it work on as many systems as possible.

### Binary RPM

Type

    rpm -i filename.rpm

The RPM build is quite untested, so it may be that it has registered too many dependencies and you are not allowed to install it; you may use the additional switch --nodeps to ignore these errors. However, you may then end up with a broken installation.
The documentation can then found in /usr/share/doc/armagetronad. To uninstall, use

    rpm -e armagetronad

### Source RPM

Type

    rpm --rebuild filename.src.rpm

This should build binary RPMs suitable for your system in /usr/src/redhat/RPMS/i386 (RedHat) resp. /usr/src/packages/RPMS/i386 (SuSE); you may have to look into the other subdirectories of RPMS to find them. Proceed as described in the previous paragraph.
Alternatively, type

    rpm -i filename.src.rpm

This should extract a source package in /usr/src/.../SOURCES you can handle like described in the first section. You can surely ignore all failed dependencies with --nodeps since the dependencies were all there when you built the package. (It is possible, if not likely, that the automatic dependency generation of RPM produces junk.)

### Non-Root install

You have the option to install the game as a regular user in your home directory. To do so, use the --prefix directive of rpm or the configure script to point to a place in your home directory, i.e.

    ./configure --prefix /home/username/usr

You can then start the game with

    /home/username/usr/bin/armagetronad

or, if you add /home/username/usr/bin to your executable search path, like normal.

### Multiple versions

If you give the additional option --enable-multiver to configure, all installation directories and executables will get the suffix 0.2.8.3.5. Symbolic links will be created to your convenience. This allows to install multiple versions in parallel, where armagetronad will always start the last installed version.

## Dedicated Server

To install the dedicated server from binaries, follow all the procedures above with the corresponding download files; the server will be installed in usr/local/games/armagetronad-dedicated and can be invoked by

    armagetronad-dedicated

Use the --disable-glout option of configure to build a dedicated server when you are installing from source.

An init.d style start/stop script called armagetronad will be installed into /etc/init.d, so you can use your standard system utilities to let it be started at boot time. By default, it runs the server under the userid armagetronad-dedicated (which gets created at installation) and logs activity in /var/games/armagetronad-dedicated. You can change these settings in the configuration file /etc/armagetronad/rc.config. Unfortunately, the only way to give commands to the server when it is run this way is to put them into everytime.cfg which is read every round or through the ingame admin.

## Play

Type

    armagetronad

as a normal user to play.

This document was created by Manuel Moos

Last modification: Nov 05 2020

First Start | Installation | Network Play | Configuration | FAQ | Redistribution