staging.inyokaproject.org

Skript um Unity-Engine-Spiele zu paketieren

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

djcj

Avatar von djcj

Anmeldungsdatum:
28. August 2013

Beiträge: Zähle...

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.

djcj

(Themenstarter)
Avatar von djcj

Anmeldungsdatum:
28. August 2013

Beiträge: 240

Ich hab mir mal die Mühe gemacht und exemplarisch zu einigen Spielen Makefiles erstellt, um diese automatisch herunterzuladen und zu paketieren:

https://github.com/darealshinji/UnityGames-for-debian

u2deb muss als Debian-Paket installiert werden, vor allem wegen der Abhängigkeiten zum Paketbau. Das Paket kann entweder über das Shellskript im Github-Repository gebaut, oder von meinem PPA geladen werden: u2deb. Achtung, in meinem PPA sind noch andere Sachen (https://launchpad.net/~djcj/+archive/ubuntu/tools), im Zweifel also das Paket manuell laden und installieren.

Die Verwendung ist einfach: in das Verzeichnis des Spiels wechseln und make aufrufen. Quelle war in den meisten Fällen moddb.

PS: patchelf/patchelfmod werden jetzt nicht mehr benötigt. Patchelf liegt dem Skript nun als Quellcode bei und wird bei Bedarf kompiliert (dauert höchstens ein paar Sekunden).

Antworten |