Spiele die mithilfe der Unity-Engine erstellt wurden, sind mittlerweile recht populär. Ein Vorteil ist sicher, dass diese Spiele auch für den Gebrauch auf Linux kompiliert werden können. Meist laufen die Spiele auch aus dem Stand heraus, dennoch kann es sicher nicht schaden bei Bedarf auch echte Debian-Pakete zu erstellen. Da die Verzeichnisstruktur der Spiele immer gleich zu sein scheint, habe ich ein Skript geschrieben, mit dem man nahezu automatisch Debian-Pakete erstellen kann.
https://github.com/darealshinji/UnityEngine2deb
Das Ganze ist noch recht frisch, funktioniert aber bisher ganz gut. Die Pakete werden in zwei Schritten gebaut, zuerst mit u2deb.sh -p|prepare <pfad-zum-spiel>
und dann u2deb.sh -b|build|make
. Zwei Schritte deshalb, falls man die Dateien im debian-Ordner noch manuell bearbeiten möchte. Aufräumen kann man mit u2deb.sh -c|clean
.
1 2 3 | u2deb.sh -p|prepare <path> [-Z=<method>] [-d|--data] [--icon=<icon>] u2deb.sh -b|build|make [-Z=<method>] u2deb.sh -c|clean |
-Z=<method>
- Kompressionsmethode für Debian-Pakete. Wird im ersten Schritt mit prepare
gesetzt, kann mit u2deb.sh -b|build|make -Z=<method>
aber auch überschrieben werden. Standard ist xz.
-d|--data
- Erstellt separates Paket für architekturunabhängige Dateien. Sinnvoll, falls das Spiel 32 und 64 Bit Binärdateien enthält.
--icon=<icon>
- Es wird automatisch das Icon im Ordner der Spieledateien verwendet, oder falls nicht vorhanden ein Ersatzicon. Mit diesem Befehl kann man ein bestimmtes Icon für das Paket verwenden.
Beispiel:
1 2 3 4 5 6 7 8 9 10 11 | # erstmal ein Spiel laden wget http://superhotgame.com/SUPERHOT_Prototype_Linux.zip wget http://fs1.directupload.net/images/150103/8jk9r9gd.png unzip SUPERHOT_Prototype_Linux.zip mv "Linux/SUPERHOT September 2013_Data" "Linux/SUPERHOT_Prototype_Data" mv "Linux/SUPERHOT September 2013.x86" "Linux/SUPERHOT_Prototype.x86" # und dann paketieren ./u2deb.sh prepare ./Linux --icon=8jk9r9gd.png ./u2deb.sh make -Z=bz2 ./u2deb.sh clean |
Abhängigkeiten: debhelper librsvg2-bin imagemagick execstack
Um sicherzustellen, dass alle Paketabhängkeiten richtig erkannt werden, sollte man auch folgende Pakete installieren: libgtk2.0-0 libgtk2.0-0:i386 libglu1-mesa libglu1-mesa:i386
Ich empfehle außerdem patchelf
oder patchelfmod
zu installieren.