Mittwoch, 12. Dezember 2018

Robin Hood

Aus Spielen-unter-Linux Wiki by linuxgaming.de

Wechseln zu: Navigation, Suche
Diese Anleitung setzt die Kenntnis folgender Artikel vorraus:


Das Spiel ist lauffähig unter:
Nativ spielbar
Wine
DOSBox
DOSEMU
ScummVM


Robin Hood - Die Legende von Sherwood

Hauptmenü
Basisdaten
Entwickler: Spellbound
Publisher: {{{Publisher}}}
Plattform(en): Linux, MacOSX, Windows
Architektur: x86, PowerPC
Genre: Strategiespiel
Version: 1.1
Spielmodi: Einzelspieler
Sprache: Deutsch, Englisch
Steuerung: Maus, Tastatur
Lizenz: kommerziell, ab 39,90€
Installation: {{{Installation}}}
Systemminima: 500Mhz, 128MB RAM, 8MB Grafikkarte, 4x CD ROM, 1GB Festplattenspeicher
Altersfreigabe: Freigegeben ab 12 Jahren gemäß § 14 JuSchG
Demo: Demo
Webseite: Homepage
Diskussion: SuL-Forum

Inhaltsverzeichnis


Beschreibung des Spiels

Robin Hood - Die Legende von Sherwood wurde von Spellbound entwickelt und von RuneSoft (ehemals epic) für Linux und Mac portiert. Die verwendete Engine findet ebenfalls bei Desperados und Chicago 1930 Verwendung. Das Spiel kann mit dem Satz "Wie Commandos, aber im Mittelalter" ganz gut beschrieben werden. Tatsächlich spielt die Handlung im Jahre 1190 in England. Die grundlegende Geschichte des Robin Hood ist sicherlich hinreichend bekannt. Zusammen mit seinen treuen Gefährten nimmt der Spieler also in Mantel- und Degenmanier den Kampf gegen Prinz John und seinem Sheriff auf.

Dabei hilft natürlich nur selten blanker Stahl. Sehr wohl aber ab und an ein gut platzierter Schlag mit einer Keule oder Faust. Mit List und Tücke dirigiert man seine Gefährten durch die vielfältigen Missionen. Spezialfähigkeiten wollen dabei nutzbringend eingesetzt sein, um die Mannen des Sheriff leise und unauffällig aus dem Weg zu räumen. Das Töten sollte man dabei auf einem Minimum halten (tatsächlich informiert bereits der Profilmonitor im Hauptmenü über den Prozentsatz verschonter Leben), um die gemeine Bevölkerung auf der eigenen Seite zu halten.

Doch auch außer Gefecht gesetzte Gegner wollen sicher verwahrt werden. Gefesselt oder bewusstlos aufgefundene Wachen werden flugs wieder befreit oder aufgeweckt (und natürlich Alarm geschlagen). Verstecke müssen her, um nicht plötzlich mit einer Vielzahl aufgeregter Gegner im Rücken erwischt zu werden. Zu allem Überfluss bergen selbst Zivilisten Gefahren (oder Nutzen). Diese dürfen aber unter keinem Umständen zu Schaden kommen. Wenn alle Stricke reißen kann sich Robin aber immernoch auf seinen Bogen und seine Schießkünste verlassen.

Die Grafik ist nicht mehr ganz zeitgemäß aber sehr liebevoll gezeichnet. Die Pixelanimationen erinnern stark an Spiele wie Commandos oder Baldurs Gate. Drei Zoomstufen helfen den Überblick zu wahren. Alle Aktionen können mit der Maus ausgeführt werden. Der Zeiger verwandelt sich je nach ausgewählten Charakter und seine Spezialfähigkeiten über Gelände oder Gegenständen zum passenden Aktionssymbol. Dazu steht ein Aktionsplaner zur Verfügung, mit dem sich die Aktionen der Gefährten wunderbar planen und sogar synchronisieren lassen. Untermalt wird das Spektakel mit stimmungsvollen Tönen für Umgebungen und den Charakteren. Wachen kommentieren die Situationen mit Sprüchen, Vorgesetzte rufen Befehle und die letzten Worte dürfen natürlich auch nicht fehlen. Die Hintergrundmusik bleibt wirklich im Hintergrund und geht selbst nach Stunden nicht auf die Nerven. Dabei passt sie sich den Geschehnissen an (Spannungsakkord wenn eine Wache aufmerksam wird o.ä.).


Installation

Warnung: Die Installation von Demo oder Spiel sollte nicht als root erfolgen, da unter Umständen die Verzeichnisrechte bei der Installation verändert werden.

Als erstes wird die CD im Laufwerk eingebunden. Das geht zum Beispiel so:

mount /media/cdrom

Danach wechseln wir zum Mountpunkt der CD und führen setup.sh als User aus. Das Setupskript ist sehr bescheiden und funktioniert ohne einen vorherigen Wechsel in das Verzeichnis der CD nicht:

cd /media/cdrom
sh setup.sh

Wir bestätigen die Pfadabfrage einfach mit der Eingabetaste:

Welcome to the Robin Hood installation script

Select the directory where you want to install the game,
the default is [/home/beko/robinhood], press return only if it's ok for you:

Using default directory: /home/beko/robinhood

setup.sh: line 41: robin.kdelnk: Keine Berechtigung
setup.sh: line 43: robin.gnome: Keine Berechtigung

Robin Hood has been installed in </home/beko/robinhood>.

Enter in the /home/beko/robinhood directory and run ./robin to play it.

KDE & GNOME menu shortcuts will be available as soon as you restart your desktop enviroment.

Damit ist Robin Hood im Heimatverzeichnis $HOME/robinhood installiert und kann von dort bereits vom Anwender gestartet werden. Optional kann man die Installation im folgenden Abschnitt systemweit ausdehnen.


Systemweite Installation

Da es, wie oben beschrieben, nicht ratsam ist das Spiel mit root-Rechten zu installieren, muss für die systemweite Installation noch selbst Hand angelegt werden. Das ist ebenfalls nötig, um die fehlenden Zugriffssrechte korrekt zu setzen. Das Spiel legt nämlich Speicherstände und Profile nicht im Heimatverzeichnis $HOME sondern im Installationsordner ab. Tiefstes Mittelalter eben. Wir arbeiten jetzt als root/sudo die Installation etwas auf - im Beispiel wurde das Spiel nach /home/beko installiert:

mkdir /home/beko/robinhood/Data/Savegame
mkdir /home/beko/robinhood/Data/Savegame/Profiles
chown -R root:users /home/beko/robinhood
chmod 775 /home/beko/robinhood
chmod 775 /home/beko/robinhood/Data/Savegame/Profiles
chmod 775 /home/beko/robinhood/Data/Configuration/*

Nach dem Anlegen der erwarteten Verzeichnisse Savegame und Profiles bekommt die Gruppe users noch Schreibrechte auf die Profile und Speicherstände sowie die Tastaturkürzel. Schreibrechte auf das Spieleverzeichnis selbst werden nur benötigt, wenn die Benutzer Screenshots machen dürfen. Das ist etwas unschön, da sich alle Systembenutzer nun die selbe Konfiguration teilen müssen. Nun kopieren wir das ganze Verzeichnis an einen geeigneten Platz im System und erstellen uns noch einen Link zum Startscript und kopieren uns das Icon für Desktopsymbole von der CD:

mv /home/beko/robinhood /usr/local/games/
ln -s /usr/local/games/robinhood/start_RH.sh /usr/bin/robin
cp /media/cdrom/inst/rh.png /usr/share/icons/robin.png

Danach öffnen wir die Datei /usr/local/games/robinhood/start_RH.sh in einem Texteditor und passen den Pfad in Zeile 3 auf das neue Installationsverzeichnis an:

#!/bin/sh

cd "/usr/local/games/robinhood/"
./robin

Nun sollte jedes Mitglied der Gruppe users das Spiel über den Befehl robin starten können.


PPC Installation

Um Robin Hood auf einem PowerPC zu installieren, muss eine neue ausführbare Datei für PPC heruntergeladen werden. Diese wird dann einfach über die x86 Datei kopiert. Die Grundinstallation ist die selbe wie für die x86 Version. Die Datei befindet sich auf dieser Webseite unter Downloads. Nach dem Herunterladen der Datei robin.gz für die x86 Vollversion kopiert man die entpackte Datei robin einfach über die Originaldatei im Installationsverzeichnis. Das geht zum Beispiel so:

gzip -d robin.gz
mv robin ~/robinhood/robin
chmod +x ~/robinhood/robin

Fertig ist die PPC Version.


Problemlösung

Das Spiel selbst ist leider, wie zahlreichen Berichten aus dem Netz zu entnehmen, ziemlich schlecht portiert. Viele Fehler werfen einen immer wieder auf den Desktop zurück. Ärgerlich, wenn die Fehler dabei auch in die Speicherstände geschrieben wurden und das Spiel nach dem Neustart sofort wieder stirbt.


Speicherstrategie und kaputte Spielstände

Mit den Berichten aus dem Netz und eigenen Tests habe ich eine "Speicherstrategie" entwickelt. Die meisten Fehler werden nämlich durch direkte Aktionen ausgelöst. Ein Beispiel:

Schlägt man einen ganz bestimmten Wachmann in einer ganz bestimmten Mission mit Robins Faustangriff K.O. wird das Spiel beim nächsten Speichern abstürzen und einen kaputten Speicherstand hinterlassen. Schlägt man den selben Wachmann aber über den Keulenangriff einer anderen Spielerfigur K.O. tritt der Fehler nicht auf. Das Ergebnis für den Wachmann ist das selbe und lediglich der Spielespaß leidet ein wenig, wenn man seine schön geplante Aktion "korrigieren" muss und dazu eine ganze Reihe extra Speicherstände anlegen muss (so ca. 3 Stück pro Mission haben sich bewährt).

Fehler können ebenfalls auftreten, wenn Wachen Bereiche verlassen oder betreten. Ab und an hilft es eine Wache aus einem bestimmten Gebiet weg zu locken und woanders K.O. zu schlagen um einen Absturz zu vermeiden. Grundsätzlich sollte vor und nach jeder gelungenen Aktion gespeichert werden. Dabei sollte nie auf den letzten Speicherstand gespeichert werden. Stürzt das Spiel beim Speichern ab ist der Speicherstand kaputt und man muss die vorherige Situation auf eine andere Art lösen um den absolut reproduzierbaren Fehler zu vermeiden. Mit drei Speicherständen pro Mission und einem rollierendem System ist man auf der sicheren Seite.

Stürzt das Spiel beim Anlegen eines neuen Speicherstandes ab, erhält man einen kaputten Speicherstand, der nicht im Spiel entfernt werden kann. Die Speicherstände befinden sich im Installationsverzeichnis Data/Savegame/Profile_<spielernummer> und sind einfach zu erkennen. Jeder Speicherstand ist hier doppelt vorhanden. Beispiele:

Savegame_005
Savegame_005_t
Savegame_008
Savegame_008_t

Gültige Speicherstände bestehen aus zwei Dateien. Die zweite Datei hat dabei den Zusatz _t. Fehlt bei einer Datei dieses _t ist das ein sicheres Zeichen für einen beschädigten Speicherstand. Er muss manuell aus dem Verzeichnis gelöscht werden. Gültige Speicherstände sind dabei nicht zwangsläufig funktionstüchtig. Diese können aber im Speichermenü des Spiels selektiert und dort dann gelöscht werden.


Segmentation Fault (SDL Parachute Deployed)

Diese Meldung kommt bei jedem Absturz und führt gerne auf den Holzweg. Der Fehler hat nichts mit SDL zu tun. Robin Hood stürzt aus den folgenden Gründen gerne ab:

  • Keine OSS kompatible Soundkarte gefunden (zwingend erforderlich)
  • Kaputtes Profil (Neu anlegen)
  • Kaputter Speicherstand (Stand entsorgen)
  • Aktion mit Folgefehler (Vorherigen Stand laden und Situation anders lösen)

Robin Hood nutzt OSS über die einkompilierte SDL_mixer Bibliothek zur Soundausgabe. Moderne Systeme nutzen ALSA mit emulierten OSS. Ist die Umgebungsvariable SDL_AUDIODRIVER=alsa gesetzt, versucht die einkompilierte SDL_mixer auf alsa zuzugreifen. Da SDL_mixer aber ohne alsa-Unterstützung (ein)gebaut wurde, schlägt dies fehl und das Spiel startet nicht. Prüft ob SDL_AUDIODRIVER gesetzt ist:

echo $SDL_AUDIODRIVER

Ist dies der Fall, kann die Variable mit

unset SDL_AUDIODRIVER

für das aktive Terminal freigegeben werden. Geht außerdem sicher, dass keine andere Anwendung gerade auf die Soundkarte zugreift (auch keine Soundserver!), falls weiterhin keine Tonausgabe erfolgt und eure Soundkarte kein Hardwaremixing unterstützt.

Alternativ können fortgeschrittene Nutzer die Systembibliothek des Systems verwenden lassen, die in der Regel dann auch alsa unterstützen. Dazu muss das Spiel mit "robin.dynamic" (im Installationsverzeichnis) gestartet werden.

Bemängelte "fehlende" Bibliotheken müssen nun mit den aktuellen Versionen verlinkt werden. Haben sich die benötigten Aufrufe in den Bibliotheken nicht verändert, startet robin danach unter Nutzung der aktuellen Systembibliotheken. Ich brauche sicherlich nicht zu erwähnen, dass dieses drastische Mittel zu seltsamen Effekten im Spiel bis hin zu Abstürzen führen kann.


Weiteres

Mit der nicht dokumentierten Taste "Druck" wird ein Screenshot im TGA-Format im Spieleverzeichnis abgelegt, sofern der Spieler über die nötigen Schreibrechte verfügt.


Screenshot

Hauptmenü
Introszene
Daheim im Sherwood
Death From Above
Hier geht es nicht weiter
Hier hingegen schon
Gleich gibts hier auf die Mütze
Wir belauschen Prinz John
Robin wurde entdeckt!

-- Beko 21:31, 11. Jun. 2008 (UTC)