Hauptseite « Old-Games « X-COM « UFO2000 kompilieren
Letzte Änderung: 2015-07-26
UFO2000 ist praktisch X-COM - Ufo defense Mensch gegen Mensch. Es ist Open Source, abgesehen von den Medien-Daten, wie Maps, Bitmaps und Sounds. Es läuft aber auch vollkommen ohne die Original-Files. Wie man UFO2000 unter Ubuntu 14.04 kompiliert, das wird hier erklärt.
Die wichtigsten Dinge habe ich auch mal in einem kleinen Video für Ubuntu zusammengepackt. Damit sollte es relativ einfach sein, das Spiel zum Laufen zu bekommen:
Um UFO2000 überhaupt kompilieren zu können, benötigt man ein Programm und diverse Libraries. Bevor man die nachstehenden Installationen auf der Konsole ausführt, sollte man ein mal folgende zwei Befehle in dieser Reihenfolge ausführen:
sudo apt-get update
sudo apt-get upgrade
Damit ist die Liste der Pakete aktuell, und die installierten Pakete ebenfalls. Auch empfiehlt es sich, original X-COM zur Hand zu haben, um es später in den Ordner XCOM
im UFO2000-Ordner kopieren zu können. Es wird zwar nicht verlangt, gibt einem aber viele Sounds mehr, diverse Maps zusätzlich und auch mehr Einheiten-Skins. Im Prinzip kann man sich auch die Collectors Edition im Netz suchen, wenn man seine Installationsmedien nicht mehr hat. Zum Kompilieren wird grundsätzlich wird Subversion (um die Quelldateien herunterladen zu können) benötigt. Subversion wird wie folgt installiert:
sudo apt-get install subversion
Um das Spiel selbst kompilieren zu können, werden noch folgende Libraries benötigt:
build-essential
(um überhaupt was kompilieren zu können)
subversion
(um den Code runterladen zu können)
liballegro4.2-dev
libexpat1-dev
zlib1g-dev
libfreetype6-dev
libdumb1-dev
(Optional, ermöglicht OGG-Musik-Wiedergabe)
libpng12-dev
(bei einem frisch installierten Ubuntu 14.04 mit Build-Essenctials normalerweise bereits installiert)
Das alles lässt sich in einem Rutsch installieren:
sudo apt-get install build-essential subversion liballegro4.2-dev libexpat1-dev zlib1g-dev libfreetype6-dev libdumb1-dev libpng12-dev
Zum Spielen werden die ersten beiden libraries nicht unbedingt benötigt, der Rest schon. Zum Kompilieren werden alle Libs verwendet.
Für den Dedicated Server werden benötigt:
build-essential
(um überhaupt was kompilieren zu können)
subversion
(um den Code runterladen zu können)
libhawknl-dev
(Netzwerkfunktionalitäten)
libsqlite3-dev
(Datenbankfunktionalitäten für ELO-Score und Benutzeraccounts)
Auch hier lässt sich das Ganze kurz und knapp auf ein mal abhandeln mit:
sudo apt-get install build-essential subversion libhawknl-dev libsqlite3-dev
Für den Server allein (z. B. um ihn auf einem Root-Server laufen zu lassen) braucht man nur beiden letzten Libraries, zum Kompilieren alle vier.
Zunächst muss man sich erst mal die Quellen aus dem SVN-Repository von UFO 2000 runterladen und ins Quellen-Verzeichnis wechseln:
svn checkout svn://svn.code.sf.net/p/ufo2000/code/trunk ufo2000-code
cd ufo2000-code
(Der Ordner-Name ist im Wesentlichen egal.)
Von hier aus kann man dann die verschiedenen Kompilier-Befehle absetzen. Das Spiel UFO2000 lässt sich auf zwei verschiedene Arten kompilieren, entweder mit OGG-Musik-Support, oder ohne.
make
(für ganz normales Spielen)
make no_dumbogg=1
(für Spielen ohne OGG-Support)
Anschließend sollte man noch, sofern zur Hand, die Original UFO bzw. TFTD-Files in die korrespondierenden Ordner XCOM
bzw. TFTD
kopieren. Damit hat man erstens mehr Maps zur Auswahl, zweitens das klassische UFO-Menü im Battle-Scape und drittens mehr Sounds im Spiel. Ohne ists ein wenig arg leise, weil nur wenige freie Sounds verwendet werden.
Hier ist die Sache relativ banal:
make server
Für alle, die nur kurz und knackig die Infos brauchen; es müssen folgende Befehle abgesetzt werden:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential liballegro4.2-dev libexpat1-dev zlib1g-dev libfreetype6-dev libdumb1-dev libpng12-dev libhawknl-dev libsqlite3-dev
svn checkout svn://svn.code.sf.net/p/ufo2000/code/trunk ufo2000-code
make
make no_dumbogg=1
make server
Das Spiel lässt sich dann ganz normal über einen Doppelklick auf die ufo2000
-binary starten. Es gilt dabei aber etwas zu beachten: Das Spiel legt (zumindest momentan noch) seine Einstellungen, Replays, Soldaten-Files, etc., im Spiel-Verzeichnis ab. D. h., wer das Spiel spielen können will, ohne massive Probleme mit der Benutzbarkeit zu haben, muss auch zwingend Schreibrechte auf das ufo2000-Verzeichnis haben. Es empfiehlt sich auch, in der Konfigurationsdatei ufo2000.ini
nachzusehen, welche Einstellungen man noch so setzen kann, weil nicht alle aus dem GUI heraus zugreifbar sind.
Es kann vorkommen, das das eben kompilierte Spiel einfach nicht startet, sondern diese Fehlermeldung raus wirft:
./init-scripts/main.lua:53: attempt to index local `fh' (a nil value)
stack traceback:
./init-scripts/main.lua:53: in main chunk
In diesem Fall sollte man prüfen, ob denn der Pfad zum Spiel evtl. problematische Unicode-Zeichen, wie zum Beispiel Umlaute, enthält. Dann findet er die Pfade nämlich nicht.
Wenn man richtig Wert auf Optik legt, kann man für die Binary auch ein Desktop-File anlegen, um das eben kompilierte UFO2000 z. B. auch in den Starter von Gnome integrieren zu können:
[Desktop Entry]
Name=UFO2000
Exec=<Pfadname/zur/ufo2000-Binary>
Type=Application
StartupNotify=true
Path=<Pfad/zum/ufo2000-Ordner>
Icon=<Pfad/zum/ufo2000-Ordner>/Seccast.ico
Dieses File dann z. B. unter dem Namen UFO2000.desktop speichern und ausführbar machen. Dieses File kann im Prinzip irgendwo liegen, allerdings empfiehlt es sich für Ubuntu mit Gnome, es unter ~/.local/share/applications/
abzulegen, da dort auch der Starter nachsucht. Für alle Benutzer ist der Ordner /usr/share/applications/
aber besser geeignet, weil so alle das Symbol finden können. Für diesen Fall aber an die oben genannte Rechte-Vergabe denken.
Den Server kann man dann ganz normal auf der Konsole via ./ufo2000-srv
oder mit einem entsprechenden init-Skript starten. Es werden durchaus auch Files angelegt, allerdings ist bei einem Server i. A. keine Benutzung durch verschiedene Benutzer gegeben. Es reicht also aus, wenn der Benutzer, unter dem der Dienst gestartet wird, die Schreibrechte auf das Verzeichnis des Servers hat. Die Einstellmöglichkeiten des Servers sind eher begrenzt und werden in der Konfig-Datei ufo2000-srv.conf
vorgenommen. Der Server liefert auch gleich eine Status-Seite mit, unter http://Adresse-des-Rechners:Port-des-Servers
. Der Default-Port ist 2000.
Hauptseite « Old-Games « X-COM « UFO2000 kompilieren