Humble Savegame Backup

Veröffentlicht am

Humble Savegame Backup – das ist der Name eines kleinen Skriptes, das ich mir zum Sichern und Wiederherstellen von Spielständen gebastelt habe. Der Name ist natürlich angelehnt an die Humble Bundles. Grundsätzlich ist das Skript aber offen für andere Spiele.

Funktionsweise

Bevor es um die Installation u.ä. geht, möchte ich zunächst kurz zeigen, wie das Shellskript i.d.R. zu verwenden ist. Dazu reicht es aus, das Skript ohne Optionen zu starten:

./humblesb.sh

Schritt 1: Aktion auswählen...

Daraufhin öffnet sich ein Dialog (siehe Abbildung: Schritt 1), in dem zunächst einmal die Wahl zwischen Sicherung und Wiederherstellung getroffen wird.

Nachdem dieser Dialog mit OK bestätigt wurde, folgt als nächstes die Frage, ob man die Spielstände aller Spiele sichern bzw. wiederherstellen möchte (siehe Abbildung: Schritt 2).

Die Auswahl beeinflusst dabei allerdings nur die Vorbesetzung für den darauf folgenden Dialog (siehe Abbildung: Schritt 3, unten). Hier kann man nun jedes Spiel einzeln anhaken.

Schritt 2: Alle Spiele?

Das Skript hat zu diesem Zeitpunkt übrigens schon geprüft, welche Spiele überhaupt installiert sind. Es werden somit nur Spiele zur Auswahl angezeigt, die für eine Sicherung bzw. Wiederherstellung überhaupt in Frage kommen (es wird nicht wirklich geprüft, ob das Spiel tatsächlich installiert ist, sondern ob das Spielstand-Verzeichnis des Spiels an der erwarteten Stelle existiert).

Wird dieser Dialog nun auch mit OK bestätigt, wird die Verarbeitung für die gewählten Spiele gestartet. Währenddessen wird ein weiteres Fenster mit einem Laufbalken angezeigt (dessen Abbildung ich mir hier aber spare).

Welche Spiele werden unterstützt?

Schritt 3: Spiele-Auswahl

In der ersten Version werden die folgenden Spiele OOTB unterstützt:

  • And Yet It Moves
  • Aquaria
  • Atom Zombie Smasher
  • Blocks That Matter
  • Braid
  • Cogs
  • Crayon Physics Deluxe
  • Darwinia
  • DEFCON
  • Dungeons of Dredmor
  • Frozen Synapse
  • Gratuitous Space Battles
  • Hammerfight
  • Jamestown
  • Jasper’s Journeys
  • Lugaru – The Rabbit’s Foot
  • Machinarium
  • Multiwinia
  • Osmos
  • Penumbra: Overture
  • Shadowgrounds
  • Shadowgrounds – Survivor
  • Shank
  • SpaceChem
  • SteelStorm
  • Super Meat Boy
  • Trauma
  • Trine
  • Uplink
  • Voxatron
  • VVVVVV
  • World of Goo

Es ist aber zu beachten, dass grundsätzlich jedes Spiel eingebunden werden kann, sofern die Voraussetzungen gegeben sind: das Spielstand-Verzeichnis kann automatisch ermittelt werden (oder ist fix). Es wird dann immer ein komplettes Verzeichnis gesichert.

Installation

Das Skript kann hier heruntergeladen werden. Es verwendet Zenity für die GUI-Teile (Dialog und Meldungsfenster). Daher muss zunächst einmal Zenity installiert werden, was aber über folgendes Kommando sehr einfach geht:

sudo apt-get install zenity

Darauf kann unter Verwendung bestimmter Aufruf-Optionen verzichtet werden (siehe Abschnitt Automatisierungen).

Ansonsten muss nichts weiter installiert werden. Es wird nun die .sh-Datei aus dem heruntergeladenen Paket benötigt. Das Skript kann in ein beliebiges Verzeichnis verschoben werden. Natürlich muss die Datei ausführbar sein, was folgendermaßen sichergestellt werden kann:

chmod +x humblesb.sh

Ggfs. werde ich demnächst noch ein Sprachpaket anbieten, so dass das Skript zumindest auch in englischer Sprache verwendet werden kann. Die Vorbereitungen dafür sind im Skript schon getroffen. Dieses Paket wird dann aber optional bleiben.

Humble Savegame Backup im Unity-Panel

Außerdem gibt es einen weiteren Download (ebenfalls auf der Downloadseite, ganz unten) für die Einbindung des Skriptes in das Unity-Panel. In diesem Download-Paket findet sich einerseits ein Logo (im .svg-Format) und eine .desktop-Datei. In der Desktop-Datei müssen zwei Zeilen angepasst werden:

In der ersten der beiden Zeilen muss der Pfad zur .sh-Datei angegeben werden. In der zweiten der Pfad zur .svg-Logodatei. Sind beide Anpassungen erledigt, kann das Skript per Doppelklick auf die .desktop-Datei gestartet werden. Im Unity-Panel genügt dann ein Rechtsklick auf das Icon und dann Im Starter behalten, um das Symbol dauerhaft im Panel zu behalten.

Exec=/path/to/humblesb.sh
Icon=/path/to/humblesb.svg

(Gezeigt wird hier nur der relevante Ausschnitt aus der Datei)

Automatisierungen

Durch die Verwendung von Aufruf-Optionen können die einzelnen Dialog-Teile automatisiert werden. Wenn alle Teile automatisiert werden und zusätzlich die Option -t verwendet wird, wird Zenity praktisch nicht mehr benötigt. Die Optionen im Einzelnen:

  • -b gibt an, dass Spielstände gesichert werden sollen.
  • -r gibt an, dass Spielstände wiederhergestellt werden sollen.
  • -a gibt an, dass alle Spielstände (bzw. die Spielstände aller installierten Spiele) zurückgesichert werden sollen.
  • -g LISTE gibt an, von welchen Spielen die Spielstände zurückgesichert werden sollen. Auf das -g folgt eine Liste von Spielenamen, die durch Kommata getrennt werden müssen. Die Liste darf keine Leerzeichen enthalten. Die Namen der Spiele muss man derzeit noch dem Skript entnehmen. Dort findet man für jedes Spiel eine Funktion, die mit hsbg_ beginnt. Das, was darauf folgt (bis zum ()), ist der hier erwartete Spielename.
  • -d VERZEICHNIS gibt an, in welchem Verzeichnis die Sicherungen gespeichert bzw. von woher sie wiederhergestellt werden sollen.
  • -t gibt an, dass Abfragen und Ausgaben per Zenity vermieden werden sollen.

Natürlich schließen sich -b und -r gegenseitig aus, genauso wie -a und -g. Für die Verwendung von -t gilt, dass entweder (-b oder -r) und (-a oder -g) angegeben sein müssen.

Beispiele:

  • ./humblesb.sh -b -a -t – Sichert die Spielstände aller Spiele ohne Nachfrage und Ausgabe per GUI.
  • ./humblesb.sh -r -g Osmos,Frozen_Synapse -d /home/me/humblesb.save – Stellt die Spielstände von Osmos und Frozen Synapse wieder her.

Sicherung in die Cloud

Natürlich macht es Sinn, das Backup-Verzeichnis (mit -d) anzugeben und so dafür zu sorgen, dass die Sicherung der Spielstände in einen Ordner erfolgt, der z.B. automatisch per Ubuntu One oder SparkleShare (darüber habe ich hier auch schon einmal eine Artikel-Serie geschrieben) abgeglichen wird.


Dieser Artikel wurde in der/den Kategorie(n) _Anwendungen, Planet-U, Praxis veröffentlicht und mit den Tags , , , versehen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>