Spiele

Torchlight 2 startet nicht mehr nach Debian-Update

09. Juni 2024 · Spiele · andreas · Kein Kommentar

Nach einem Betriebssystem-Update von Debian 11 auf Debian 12 wollte Torchlight 2, das vor dem Update problemlos lief, nicht mehr starten: nach dem Klick auf das Icon erschien nur noch kurz der Spash-Screen … und das war’s - vom eigentlich erwarteten Startschirm fehlte jede Spur.

Torchlight 2

Als erste Möglichkeit zur Fehlersuche bietet sich meist ein Start des Programms über die Kommandozeile an, in der Hoffnung, dadurch vielleicht in paar Statusmeldungen zu sehen. Dies funktioniert auch beim Start von Torchlight 2, welches eine ganze Menge an Meldungen ausgab, bevor es letztendlich mit einem “Speicherzugriffsfehler” abbrach.

$ ./Torchlight2.bin.x86_64 Creating resource group General Creating resource group Internal Creating resource group Autodetect ... Loading library RenderSystem_GL Path for saving is ... ... Compressing memory size is: 246 Compressing memory size is: 4559 Speicherzugriffsfehler

Leider führte die Kombination von “Torchlight 2” und “Speicherzugriffsfehler” bei der Suche nach Lösungsmöglichkeiten nicht zu hilfreichen Ergebnissen. Auch Tips, die in Richtung von Bibliothekskonflikten gingen halfen nicht, das Programm wieder zum Starten zu bewegen.

Zum Ziel führte letztendlich ein Blick in die Datei “ogre.log”, die auf den ersten Blick identisch mit den Ausgaben beim Programmstart aussieht, allerdings noch ein paar zusätzliche Ausgaben enthält:

$ cat ~/.local/share/Runic\ Games/Torchlight\ 2/ogre.log 11:57:15: Creating resource group General 11:57:15: Creating resource group Internal 11:57:15: Creating resource group Autodetect ... 11:57:15: Loading library RenderSystem_GL 11:57:15: OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library RenderSystem_GL. System Error: libGLU.so.1: cannot open shared object file: No such file or directory in DynLib::load at /builddir/Torchlight2/ogre170/OgreMain/src/OgreDynLib.cpp (line 94) 11:57:15: Path for saving is ... ... 11:57:16: Compressing memory size is: 246 11:57:16: Compressing memory size is: 4559

So war der entscheidende Hinweis zwischen den Zeilen “Loading library RenderSystem_GL” und “Path for saving is” versteckt, im konkreten Fall ein

System Error: libGLU.so.1: cannot open shared object file: No such file or directory

der sich durch Installation des Pakets libglu1-mesa letzendlich leicht beheben ließ.


Red Dead Redemption II: Nerviger Hochglanz-Western

30. Juli 2023 · Spiele · andreas · Kein Kommentar

Seit kurzem steht hier eine PlayStation 4 und passend dazu habe ich als Sonderangebot Red Dead Redemption II gekauft - ein hochgelobes Action-Adventure im Western-Setting von Rockstar Studios.

Ohne Zweifel ist die Präsentation gelungen: die Welt sieht richtig schick aus, egal ob einzelne Spuren im Schnee, Rauch oder viele andere Details - es macht einfach Spaß auch ohne konkretes Ziel durch die Gegend zu reisen und die Landschaft zu bewundern.

Red Dead Redemption II Screenshot

Zum Spiel selbst gehört aber natürlich mehr als Sightseeing zu betreiben und in diesem Punkt schwächelt Red Dead Redemption II gewaltig. Eine spielerische Herausforderung ist in vielen Situationen nur rudimentär vorhanden, die meisten zu spielenden Sequenzen erinnern an Dragon’s Lair:

eine Spielfigur in einem interaktiven Zeichentrickfilm … Der Spieler musste mit bestimmten Joystickbewegungen zum richtigen Zeitpunkt in die laufende Handlung eingreifen. [Quelle]

Sowohl Mitglieder der eigenen Bande als auch andere NPCs bieten zahlreiche Beschäftigungsmöglichkeiten - eine wirkliche Entscheidungsfreiheit oder alternative Lösungswege sind aber weitestgehend Mangelware. Wer vorher Spiele wie The Witcher oder Cyberpunk 2077 gespielt hat, wird sich wahlweise eingeschränkt und / oder unterfordert vorkommen.

Die eigentliche Geschichte rund um Spielercharakter Arthur Morgan ist erschreckend unflexibel und alles andere als gelungen inszeniert. Spätestens wenn man über einige der im Spiel versteckten Goldbarren stolpert und anschließend trotz voll ausgebautem Lager immer noch in Geld schwimmt, wird das ständige “Wir brauchen Geld!"-Gerede als Motivation unglaubwürdig und nervig. Wie schön wäre es, einfach “Wie viel brauchst Du denn?” antworten zu können und gut ist, statt mir mehreren tausend Dollar in der Tasche zwangsweise eine “Eine handvoll Dollar”-Mission starten zu müssen.

Dazu kommt, daß Arthur Morgan auch massiven Stimmungsschwankungen zu unterliegen scheint: Rettet er im einen Moment noch eine Damsel in Distress oder verschenkt Arznei an einen jammernden Passanten am Wegesrand, ist in der nächsten Storymission “schlagen statt fragen” die einzige Handlungsmöglichkeit. Kontinuität und Handlungsoptionen sehen anders aus.

Red Dead Redemption II Screenshot

Richtig nervig wird es beim Speichern bzw. Laden von Spielständen: wer auch immer dieses Speichersystem ausgedacht hat, hat das Spiel wohl selbst nie damit spielen müssen.

Die theoretische Möglichkeit, jederzeit frei Speichern zu können wird dadurch ausgehebelt, daß während einer Mission eben kein Speichern möglich ist. Nun ist der Umfang einer Mission (und somit deren zeitliche Dauer) im Voraus nicht abschätzbar und mittendrin nicht speichern können bedeutet, daß man Missionen eigentlich nur beginnen kann bzw. sollte, wenn man anschließend beliebig viel Zeit hat, die Mission unabhängig von ihrer Dauer zu Ende spielen zu können - sonst geht es wieder von vorne los.

Geht innerhalb einer Mission etwas schief, hilft ein Checkpoint-System nach dem Motto “Live. Die. Repeat.” den Abschnitt so oft wiederholen zu können / müssen, bis sich der vorprogrammierte Erfolg einstellt oder gar die Möglichkeit zum Überspringen einer Sequenz erscheint, was im Gegensatz zur Spieldauer den Spielspaß nicht unbedingt erhöht.

Als wäre das alles nicht bereits nervig genug, kamen die Entwickler auch noch auf die Idee, beim Laden eines gespeicherten Spielstandes Spawnpunkte zu verwenden.

Konkret bedeutet dies, daß nach dem Laden der Protagonist die Welt nicht wieder genau an dem Punkt betritt, an dem der Spielstand gespeichert wurde, sondern an einem Platz mehr oder minder in der Nähe des Speicherpunktes. Dies kann dann gerne auch mal ein ganzes Ende vom ursprünglichen Speicherpunkt entfernt sein.

Red Dead Redemption II Screenshot

Gerade als Gelegenheitsspieler habe ich mir in Open-World-Spielen angewöhnt, Speicherpunkte auch als To-Do-Merker zu verwenden, d.h. im Normalfall so zu speichern, daß der Charakter beim Laden genau dahin schaut, wo ich weitermachen möchte: zum Beispiel bei einer Schatzsuche genau mit Blick auf die Felsformation zu speichern, die demnächst zu erklimmen ist. Hilft nur leider nix, wenn man beim Laden an einer ganz anderen Ecke wieder auftaucht und den Weg zur Felsformation erneut oder aus einer ganz anderen Richtung zurücklegen muss - sofern man sich noch daran erinnert.

Red Dead Redemption II war durchgänig ein heißer Kandidat für “Warum breche ich Spiele ab?”. Erst im humorvoll inszenierten Epilog rund um John Marston blitzte sowas wie Freude am Spiel auf und dieser hat auch ein wenig für den Rest des Spiels entschädigt.


Robert Beckebans RBDOOM-3-BFG

06. März 2023 · Spiele · andreas · Kein Kommentar

Was mit Quake 2 funktioniert, funktioniert auch mit Doom 3 - zumindest mit der Doom 3 BFG-Edition. Für diese wurde das ursprüngliche Doom 3 nicht nur überarbeitet, sondern auch um die Missionspakete “Resurrection of Evil” und “The Lost Mission” sowie die Vorgängerspiele Doom und Doom 2 ergänzt.

Die am weitesten verbreitete Portierung der Spiele-Engine stammt von Robert Beckebans, der das Projekt “RBDOOM-3-BFG” bis heute kontinuierlich pflegt und auftretende Fehler bereinigt.

RBDOOM-3-BFG is based on DOOM-3-BFG and the goal of this port is to bring DOOM-3-BFG up to latest technology in 2023 making it closer to Doom 2016 while still remaining a DOOM 3 port regarding the gameplay. [Quelle]

Die benötigten Dateien können entweder direkt von der Projektseite auf Github heruntergeladen oder - sofern verfügbar - aus den offiziellen Paketquellen einer Linux-Distribution installiert weden:

$ sudo apt install rbdoom3bfg

Wie üblich sind bei der Spiele-Engine keinerlei Inhalte enthalten, diese müssen zusätzlich bereitgestellt werden. Der einfachste (legale) Weg führt entweder über einen Kauf bei Steam oder GOG.com, die weitere Vorgehensweise ist auf der Projektseite beschrieben.

Sofern die Installationsdatei von GOG.com vorliegt, kann diese auch - statt wie empfohlen umständlich über Wine installiert - direkt mit “innoextract” entpackt und anschließend verwendet werden:

$ innoextract setup_doom_3_bfg_1.14_\(13452\).exe

Sobald die Spieldaten entpackt wurden, können diese an einen beliebigen Ort “MEIN-PFAD” kopiert werden:

$ mkdir -p /MEIN-PFAD/Doom3BFG/ $ cp -r --preserve=timestamp app/base /MEIN-PFAD/Doom3BFG/

Anschließend sollte noch das Konfigurationsverzeichnis erzeugt und eine “autoexec.cfg” darin abgelegt werden, welche die Sprache auf die gewünschte Version setzt - bei den Installationsdateien von GOG.com wird sonst automatisch “Japanisch” als Standardsprache gewählt.

$ mkdir -p ~/.local/share/rbdoom3bfg/base/ $ echo 'seta sys_lang "english"' >> ~/.local/share/rbdoom3bfg/base/autoexec.cfg

Dann kann Doom 3 BFG gestartet werden, wobei zu beachten ist, daß es keinerlei Parameter gibt, um das Datenverzeichnis anzugeben. Das ausführbare “rbdoom3bfg” ist im Ordner “MEIN-PFAD” zu starten.

Wer möchte, kann sich den Start noch mit Hilfe einer “.desktop”-Datei erleichtern.

$ cp --preserve=timestamp app/language_setup.png /MEIN-PFAD/Doom3BFG/ $ vi ~/.local/share/applications/Doom3BFG.desktop [Desktop Entry] Type=Application Encoding=UTF-8 Name=Doom 3 BFG Exec=/usr/games/rbdoom3bfg Icon=/MEIN-PFAD/Doom3BFG/language_setup.png Path=/MEIN-PFAD/Doom3BFG/ Terminal=false Categories=Game

Auch hier ist “MEIN-PFAD” mit dem oben gewählten Pfad zu ersetzen.

Optional: AppArmor Profil

Optional kann auch noch ein AppArmor Profil erzeugt und in “/etc/apparmor.d” abgelegt werden. Folgendes Profil reicht (hier) aus, um RBDOOM-3-BFG mit einer NVidia-Graphikkarte zu spielen:

# 2023-03-02 athul/initial #include <tunables/global> /usr/games/rbdoom3bfg { #include <abstractions/X> #include <abstractions/base> #include <abstractions/audio> #include <abstractions/nvidia> deny network, @{HOME}/.local/share/rbdoom3bfg/** rwk, /MEIN-PFAD/Doom3BFG/** r, /sys/devices/** r, /var/lib/dbus/machine-id r, /proc/** r, /dev/nvidia* rw, }

Zu beachten ist die Anpassung von “MEIN-PFAD” sowie das anschließende Neuladen der AppArmor-Profile, nachdem “rbdoom3bfg” hinzugefügt wurde.


Retrogaming mit Yamagi Quake II

26. Februar 2023 · Spiele · andreas · Kein Kommentar

Irgendwie fühlt es sich seltsam an, die Wörter Quake II und Retrogaming in einem Satz zu verwenden, aber Wikipedia sagt

häufig werden bereits Spiele bis zum Ende der 1990er Jahre als “retro” angesehen [Quelle]

und somit fällt das Ende 1997 veröffentlichte Quake II wohl in diese Kategorie.

Trotz des für Software fast biblischen Alters können Spieleentwickler mit der Freigabe des Quellcodes der Spiel-Engine dafür sorgen, daß auch Jahrzehnte nach der Erstveröffentlichung ihre Werke ohne größere Klimmzüge (für den Endanwender) noch gespielt werden können. So auch Quake II, dessen Spiel-Engine auf unzählige Plattformen portiert wurde und inzwischen sogar im Webbrowser lauffähig ist.

Ein auf PCs weitverbreiteter Client für Quake II ist Yamagi Quake II, der für verschiedene Betriebssysteme verfügbar und auch bei vielen Linux-Disttributionen in den Standard-Paketquellenenthalten ist.

Screenshot

Wer das Rundum-Sorglos-Paket möchte, sollte das Paket “quake2” installieren, welches auch gleich den “game-data-packager” mitinstalliert. Dieser schnürt für eine ganze Reihe von Spielen mehr oder minder vollautomatisch aus bereits vorhandenen Spiel-Installationen oder Original-CDs installationsfähige Datenpakete, im Fall von Quake II werden bei Bedarf sogar die Daten der Demo heruntergeladen und paketiert.

Wer möchte, kann aber auch mit Hilfe einer Minimalinstallation und ein paar Befehlen auf der Kommandozeile eine spielfähige Installation erstellen. Die Anleitung hierfür bietet der Yamagi Quake II Installation Guide.

Wer das Original-Spiel nicht oder nicht mehr besitzt, kann sich mehr oder minder regelmäßig bei GOG.com für wenig Geld die Originalversion inklusive der offiziellen Missionspakete zulegen.

Die Installation des Yamagi-Clients erfolgt in diesem Fall ohne die “recommends”-Pakete

$ sudo apt install yamagi-quake2 --no-install-recommends

Anschließend kann mit Hilfe von “innoextract” das GOG-Installationspaket entpackt werden und die Dateien können in das Yamagi Quake II-Standard-Verzeichnis “~/.yq2/” kopiert werden.

$ sudo apt install innoextract ... $ innoextract setup_quake2_quad_damage_2.0.0.3.exe ... $ mkdir ~/.yq2/ $ cp -r --preserve=timestamp app/baseq2 ~/.yq2/ $ cp -r --preserve=timestamp app/music ~/.yq2/

Mit dem Aufruf von

$ /usr/lib/yamagi-quake2/quake2

wird Quake II gestartet. Wer die Dateien lieber an einer anderen Stelle in Dateisystem ablegen möchte, kann dies ebenfalls tun und muß den Aufruf des Clients um den Parameter “-datadir” ergänzen:

$ /usr/lib/yamagi-quake2/quake2 -datadir VERZEICHNISNAME

Um das Starten komfortabler zu gestalten, kann noch eine “.desktop”-Datei erstellt werden:

$ cp --preserve=timestamp app/goggame-1441704824.ico ~/.yq2/ $ vi .local/share/applications/Quake2.desktop [Desktop Entry] Type=Application Encoding=UTF-8 Name=Quake ][ Exec=/usr/lib/yamagi-quake2/quake2 Icon=~/.yq2/goggame-1441704824.ico Terminal=false Categories=Game

Das Kopieren der Missionspakete erfolgt analog zum Hauptspiel:

$ cp -r --preserve=timestamp app/rogue ~/.yq2/ $ cp -r --preserve=timestamp app/xatrix ~/.yq2/

Beim Aufruf des Clients ist noch ein “+set game rogue” oder “+set game xatrix” hinzuzufügen.


Intel Grafik, Mesa und CPU-Auslastung

25. August 2022 · Spiele · andreas · Kein Kommentar

Normalerweise sollte ein Intel Core i5-7300U mit eingebauter HD-Grafik 620 problemlos in der Lage sein, ein 2D-Spiel wie Space Haven darzustellen, trotzdem sorgte bereits kurz nach dem Start der Lüfter des Notebooks für eine beeindruckende Geräuschkulisse, denn die CPU-Auslastung war bei rund 300%:

Direkt beim Start von Space Haven wurden auch einige Fehler angezeigt, welche auf ein Problem mit der Graphik bzw. deren Nichterkennen hinwiesen:

com.badlogic.gdx.utils.GdxRuntimeException: OpenGL 2.0 or higher with the FBO extension is required. OpenGL version: 1.3 Mesa 20.3.5 Type: OpenGL Version: 1:3:0 Vendor: Intel Open Source Technology Center Renderer: Mesa DRI Unknown Intel Chipset

Abhilfe fand sich schließlich im archlinux Wiki, welches darauf hinweist, daß unter archlinux ab Mesa 20.0 ein neuer Treiber für neuere GPUs als Standard verwendet wird.

In Mesa 20.0, a new OpenGL driver, Iris, is promoted to be the default for Gen8+. Certain applications run faster with it. You may disable it and revert to use the old i965 driver by setting the MESA_LOADER_DRIVER_OVERRIDE=i965 environment variable before starting any OpenGL application. [Quelle]

Zwar ist der verbaute i5-7300U aus der 7. Generation, aber Debian ist auch kein archlinux und ein kurzer Test mit der vorgeschlagenen Umgebungsvariable ließ die CPU-Auslastung im normalen Rahmen und den Lüfter nach Start des Spiels unhörbar bleiben:

Leider hilft ein Blick in die Mesa 3D Dokumenation zum Verständnis nicht sonderlich viel weiter, so daß die Behebung der Symptome wohl so akzeptiert werden muss.

Die Ursache ist wahrscheinlich die Meldung “Mesa DRI Unknown Intel Chipset” dokumentiert, so daß erst mit dem über Umgebungsvariable vorgegebenem Treiber eine korrekte Initialisierung möglich ist.