OpenXcom installieren oder kompilieren unter Ubuntu 14.04


Hauptseite « Old-Games « X-COM « OpenXcom kompilieren


Letzte Änderung: 2015-07-05

OpenXcom ist im Wesentlichen das gute alte X-COM - Ufo defense, nur nachprogrammiert und um ein paar Funktionen erweitert bzw. verbessertes Interface. Als solches ist es Open Source, abgesehen von den Medien-Daten, wie Maps, Bitmaps und Sounds. Wie man OpenXcom unter Ubuntu 14.04 installiert bzw. kompiliert, das wird hier erklärt.

  1. Voraussetzungen
  2. Installation
  3. Kompilieren
  4. Automatisiert kompilieren

1 Voraussetzungen

Es werden vom Original Spiel einige Verzeichnisse benötigt, um es überhaupt zum Laufen bringen zu können. Die X-COM-Version ist entweder 1.4 (=DOS), oder aber die Collectors-Edition (=Windows). Falls jemand das Spiel nicht hat, kann man es sich auch heute noch via Steam kaufen, oder aber man googlet mal danach, obs das nicht wo gibt (wenn man seine Installationsdatenträger verloren hat...) Gibt zumindest noch so Abandon-Ware-Seiten, die das anbieten. Da ist es ratsam, gleich nach der Collectors Edition zu suchen, weil man bei den DOS-Versionen nicht immer weiß, welche Version man jetzt wirklich erhalten hat. Benötigt werden die Verzeichnisse:

Hinweis an dieser Stelle: Da Linux bei Dateinamen case-sensitive ist, müssen die Ordner in Großbuchstaben geschrieben sein. Ansonsten findet das Spiel unter Linux die Dateien einfach nicht.

Es gibt inzwischen auch einen von der Community erarbeiteten Patch, der u. A. Map-Bugs und ähnliches behebt. Zu finden ist er unter http://openxcom.org/download/extras/universal-patch.zip. Wenn man zukünftig öfter selbst kompilieren will, kann man diese Files auch einfach mit denen vom Original-Spiel zusammen packen. Erst die oben genannten Ordner in ein Verzeichnis, dann die Verzeichnisse aus dem Patch-Archiv auch dort hin entpacken und ggf. überschreiben lassen. Das Ergebnis kann man sich wieder in ein Archiv für spätere Verwendung bunkern.

Zur Benutzung müssen evtl. noch Pakete nachinstalliert werden, insbesondere zum Compilieren:

Oder als ein Befehl zur Installation unter Ubuntu:

sudo apt-get install git libsdl1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libyaml-cpp-dev libboost-dev cmake cmake-curses-gui

Die -dev-Pakete sind nur zum Kompilieren notwendig, deren kompilierte Versionen sollten eigentlich mit installiert werden, wenn man OpenXcom aus einem PPA installiert.

Man kann das Spiel auch installieren, hat dann allerdings die Einschränkung, dass Updates eher selten geschehen. Viele Mods laufen nur mit neueren Versionen, den sogenannten Nighlies. Dazu ist selbst kompilieren notwendig. Aber der Vollständigkeit halber die Installation:

2 Installieren

sudo deb http://ppa.launchpad.net/knapsu/openxcom/ubuntu trusty main

sudo deb-src http://ppa.launchpad.net/knapsu/openxcom/ubuntu trusty main

sudo apt-get install openxcom

Dann noch die Original-Files an die richtige Stelle packen, direkt ins Verzeichnis /usr/local/share/openxcom/UFO/. Für TFTD ist es der Ordner /usr/local/share/openxcom/TFTD/. Dort sucht OpenXcom nach den Original-Files. Ggf. auch an anderer Stelle, aber es macht Sinn, hier konsistent zu bleiben, um keine Probleme zu bekommen. Mods gehören übrigens nicht mehr ins Spiele-Verzeichnis sondern nach $HOME/.local/share/openxcom/mods, ein Verzeichnis tiefer, als auch die saved games liegen. Danach sollte man spielen können.

↑ Inhaltsverzeichnis

3 Kompilieren

Man kann, bzw. muss das Spiel evtl. auch mal selbst kompilieren, z. B. weil neuere Mods auch neuere OpenXcom-Versionen benötigen. Über das PPA von oben sind Updates eher selten, sodass es notwendig sein kann, ein Nightly selbst zu kompilieren. Nightlies gibt es für Windows-User bereits vorkompiliert hier. Nur noch das Original-Verzeichnis füllen und schon ist man fertig. Als Ubuntu-User muss man für Nightlies allerdings selbst zum Compiler greifen. Das ist aber auch nicht unbedingt sonderlich schwer. Man kann das im Prinzip auch weitestgehend automatisieren.

  1. Quell-Dateien runterladen. Diese findet man immer unter https://github.com/SupSuper/OpenXcom, rechts unter dem Link »Download ZIP«.
  2. In ein beliebig benanntes Verzeichnis entpacken (wird hinterher nicht mehr unbedingt benötigt)
  3. Die oben bereits genannten Original-Files und die Patch-Files in den Ordner bin/UFO/ der gerade entpackten Quell-Dateien kopieren/entpacken. Falls man noch TFTD rum liegen hat, das dann auch nach bin/TFTD/ kopieren.
  4. Ggf. den Versions-String anpassen: Normalerweise ist in diesen Quellfiles immer als Version die Nr. 1.0 angegeben, was so relativ wenig Aussage hat, weil man auf diese Weise z. B. gar nicht feststellen kann, was für eine Version man letztlich installiert hat, eine aus den PPAs, ein nightly, und wenn letzteres, von wann. Man kann daher in der Datei src/version.h den String #define OPENXCOM_VERSION_SHORT "1.0" entsprechend abändern, z. B. auf #define OPENXCOM_VERSION_SHORT "1.0 Nightly 2015-06-05-12-13", für den 5.6.2015, 12:13 Uhr. Bei Windows-vorkompilierten nightlys von der Website ist z. B. ein automatischer Eintrag von Git enthalten.
  5. Ordner build im Quell-Verzeichnis anlegen und auf der Konsole dort hinein wechseln.
  6. cmake ..
    alternativ:
    cmake -DCMAKE_BUILD_TYPE=Release ..
    für den Fall, dass man ohnehin als Release in die Standard-Verzeichnisse installieren möchte. Das erspart den nächsten Schritt. Es lassen sich aber auch die Ordner angeben, wenn man das möchte, indem man mit -DVariable=Variablenwert die Pfade mit übergibt (siehe Punkte 8).
  7. ccmake ..
    Dieser Schritt und der nachfolgende sind optional, wenn man cmake mit den direkt übergebenen Optionen ausgeführt hat.
  8. Einstellungen setzen:
    1. CMAKE_BUILD_TYPE auf Release setzen, alternativ auf Debug.
    2. CMAKE_INSTALL_PREFIX auf den Pfad setzen, in den die OpenXcom-Binary später installiert werden soll. Standard ist /usr/local/ (voreingestellt), womit das Spiel im Ordner /usr/local/bin landet.
    3. DATADIR auf den Pfad des Ziel-Ordners für die Daten-Files (Originale) setzen. Die weiter oben in die Sourcen kopierten Files werden dann dort während des nachfolgenden Prozesses hin kopiert. Gibt man keinen Pfad an, landen die Daten in /usr/local/share/openxcom/data/.
    4. c für configure drücken
    5. e um aus dem configure-Bildschirm wieder raus zu kommen.
    6. g zum Generieren und Beenden von ccmake drücken.
  9. make -j3
    Man kann auch höhere Werte als 3 angeben, z. B. 10, um den Kompilations-Prozess zu beschleunigen. Allerdings ist es nicht empfohlen, keine Werte anzugeben, damit es maximal schnell läuft. Es können unvorhergesehene Zustände auftreten, die das Kompilieren verhindern!
  10. make install
    Falls man beim Pfad CMAKE_INSTALL_PREFIX oder DATADIR einen Ordner angegeben hat, für den man die Schreibrechte nicht hat, muss man unter einem Benutzer kompilieren, der die Rechte dazu hat. Beim Standard-Pfad sind also Root-Rechte notwendig:
    sudo make install

Damit ist die Kompilation abgeschlossen (sofern nicht irgendwelche Fehler dabei aufgetreten sind...). In diesem Fall dürfte man bei Standard-Pfaden einfach loslegen können. Hat man an den Pfade rum editiert, z. B. um das Spiel als User irgendwo zum Laufen zu bekommen, also ohne richtige Installation, kann man sich noch ein Start-Skript schreiben:

#!/bin/sh
"Pfadzu/openxcom" -data "Pfadzu/data"

mit den jeweiligen Pfaden zu OpenXcom bzw. dem Original-Verzeichnis. Das Skript dann unter $HOME/bin/ ablegen, und z. B. openxcom nennen, ausführbar machen und schon kann man OpenXcom auch ohne Admin-Rechte für die Installation im eigenen Home-Bereich spielen, indem in der Konsole einfach openxcom eingibt. Das Skript kann natürlich auch irgendwo anders liegen, z. B. auf dem Desktop, wo man es dann auch anderweitig starten kann.

Wenn man richtig viel Wert auf Optik legt, kann man für das eben erstellte Start-Skript auch ein Desktop-File anlegen, um das eben kompilierte OpenXcom z. B. auch in den Starter von Gnome integrieren zu können:

[Desktop Entry]
Name=OpenXcom
Exec=<Pfadname/zum/OpenXcom-Skript>
Type=Application
StartupNotify=true
Path=<Pfad/zum/OpenXcom-Skript>
Icon=<Pfad/zum/OpenXcom-Ordner>/common/openxcom.png

Dieses File dann z. B. unter dem Namen OpenXcom.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.

Wichtig: Die eben installierten Files im Original-Ordner werden möglicherweise nicht verwendet, wenn in einem anderen der abgesuchten Pfade noch ein UFO- oder TFTD-Ordner gefunden wird. Daher empfiehlt es sich, alle anderen Original-Ordner entweder zu löschen oder wenigstens umzubenennen (z. B. data alt oder so ähnlich). Man kann evtl. weitere vorhandene Original-Ordner mit einem einfachen Befehl finden:

sudo find / -name BACKPALS.DAT

sudo ist notwendig, weil man sonst u. U. nicht alle Pfade findet, bzw. ständig Fehlermeldungen wegen fehlender Rechte die Ausgabe unterbrechen. Die Datei BACKPALS.DAT ist Teil des UFO-Verzeichnisses und sollte theoretisch nur ein mal auf der Platte vorkommen, sofern man sie nicht noch woanders gebunkert hat. Sollten sich mehrere Pfade finden lassen, die data/GEODATA/BACKPALS.DAT am Ende haben, sind das genau solche möglichen Problemstellen.

4 Automatisiert kompilieren

Im Prinzip kann man den kompletten Kompilations-Vorgang auch vollständig automatisieren, mit einem Skript der Form:

echo "Lade Quelldateien von github..."
wget https://github.com/SupSuper/OpenXcom/archive/master.zip
echo 'Entpacke "master.zip"...'
unzip master.zip
echo "Wechsle ins neu erstellte Quellen-Verzeichnis..."
cd OpenXcom-master
echo 'Entpacke Patch- und Vanilla-Files ins "bin/UFO/"-Verzeichnis...'
<Entpack- oder Kopierbefehl der Vanilla- und Patch-Files nach ./bin/UFO/>
d=`date +%Y-%m-%d-%H-%M`
echo Ändere Versions-String von \"1.0\" zu \"1.0 Nightly $d\"
perl -pi -e 's/SHORT "1.0"/SHORT "1.0 Nightly '$d'"/g' src/version.h
echo 'Lege Verzeichnis "build" an...'
mkdir build
echo 'Wechsle nach "build"...'
cd build
echo 'Konfiguriere make als "Release"...'
cmake -DCMAKE_BUILD_TYPE=Release ..
echo 'Compiliere OpenXcom...'
make -j10
echo 'Installiere OpenXcom...'
sudo make install
echo 'Entferne nicht mehr benötigte "master.zip"...'
rm ../../master.zip

Das Skript lädt die Quellen runter, entpackt sie, kopiert/entpackt die Original- bzw. Patch-Files ins UFO-Verzeichnis, ändert den Versions-String und kompiliert ein Release-build inkl. anschließender Installation. Die nicht mehr benötigte zip-Datei mit den Quellen wir auch noch entfernt. Hinweis: Es ist nicht empfohlen, das Skript einfach zwei mal ablaufen zu lassen, wenn es möglich ist, dass sich einiges an der Ordner-Struktur geändert hat. Besser die alten OpenXcom-master-Ordner vor dem Ausführen löschen! (Lässt sich natürlich auch automatisieren, so wie vieles andere....)

↑ Inhaltsverzeichnis


Hauptseite « Old-Games « X-COM « OpenXcom kompilieren

Valid HTML 4.01 Frameset