Kategorie: Spiele

Robert Beckebans RBDOOM-3-BFG

6. 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öffetlichte 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.


Exiled Kingdoms-Spielstände bearbeiten

17. Mai 2022 · Spiele · andreas · 5 Kommentare

Auch wenn es meist der erste Schritt ist, jeglichen Spielspaß zu runinieren, so gibt es ab und an Situationen, in denen man eine kleine Korrektur an einem Spielstand vornehmen möchte. Nachdem die Suche nach “Exiled Kingdoms savegame editor” zu keinerlei Treffern geführt hat, hieß es selbst tätig werden.

Diese Beschreibung bezieht sich auf die Spielstände der Exiled Kingdoms Android-Version 1.3.1182, bei anderen Versionen kann die Vorgehensweise unterschiedlich sein.

Zuerst müssen die Spielstände aus dem geschützen Speicher des Android-Geräts in einen zugänglichen Bereich exportiert werden, dies geschieht im Spiel mittels der Funktion “Continue Game” / “Export & Cloud Save” / “Export your saves to a file”. Im Datenverzeichnis des Android-Geräts (i.d.R. “/storage/emulated/0/”) wird eine Datei “EK.bak” angelegt, welche die Spielstände enthält.

Das Bearbeiten erledigt man am einfachsten am PC, wohin die Datei als nächstes übertragen wird. Bei der “EK.bak” handelt es sich um eine normale ZIP-Datei:

$ file EK.bak
EK.bak: Zip archive data, at least v2.0 to extract

Umbenennen ist nicht notwendig, die Datei kann direkt ausgepackt werden:

$ unzip EK.bak
Archive: EK.bak
  inflating: saves/0/auto.sav
  inflating: saves/0/auto.sav.nfo 
  ...
  inflating: saves/global.sav

Nach dem Entpacken liegen die einzelnen Spielstände im Verzeichnis “./saves/0”, eine Beschreibung des Spielstands kann der jeweiligen “nfo”-Datei entnommen werden:

$ cat auto.sav.nfo 
Frozen Depths
      [GREEN]Level 9.[] Day 36, 4 AM

Die Spielstände selbst sind allerdings (noch) nicht direkt bearbeitbar, sondern wurden im “base64”-Format kodiert. Die Umwandlung ist allerdings schnell erledigt:

$ base64 -d auto.sav > auto.txt

Jetzt kann die Datei “auto.txt” mit einem Texteditor geöffnet und bearbeitet werden. Hierbei sollte nach Möglichkeit ein Texteditor verwendet werden, der weder die Zeichenkodierung noch die Zeilenenden verändert.

...
stats: {
	cached_maxhp: 99
	characterRace: HUMAN
	cached_level: 9
	missingHP: 126
	XP: 41911
	characterClass: WARRIOR
	cache_valid: true
}
...

Sobald die gewünschten Änderungen durchgeführt wurden, wird die Datei wieder zurückkodiert und die Textdatei (sofern gewünscht) wieder gelöscht:

$ base64 -w 0 auto.txt > auto.sav
$ unlink auto.txt

Dann wird das ZIP aktualisiert

$ zip -f -r EK.bak saves/
freshening: saves/0/auto.sav (deflated 86%)

Anschließend wird die “EK.bak” zurückkopiert und in Exiled Kingdoms mittels der Schritte “Continue Game” / “Export & Cloud Save” / “Restore your saves from a file” wieder importiert.


Warum breche ich Spiele ab?

27. Mai 2021 · Spiele · andreas · Kein Kommentar

Die Frage wurde als “Umfrage: Warum brecht ihr Spiele ab?” von der Zeitschrift GameStar gestellt und hat mich dazu gebracht, an das Thema ebenfalls ein paar Gedanken zu verschwenden.

Als erstes muß zwischen zwei Szenarien unterschieden werden: Spiele, die ich bewusst abgebrochen habe und solche, die ich einfach nicht mehr weitergespielt habe.

Vor allem bei letzteren gab es meist nicht den einen Grund, nicht mehr weiter zu spielen, sondern es war irgendwann einfach so, daß offensichtlich der Klick auf ein anderes Icon oder wahlweise eine andere Freizeitbeschäftigung attraktiver war, als das Spiel nochmal zu starten.

Dazu gehört neben einigen “kleineren” Spielen wie “Transistor” auch z.B. das grandiose “Fallout 3”, bei dem ich sowohl die Hauptgeschichte als auch die in der Game Of The Year-Edition enthaltenen Erweiterungen “Broken Steel” und “Operation Anchorage” gespielt habe, aber irgendwann im Verlauf von “Point Lookout” war dann die Luft raus. Versuche, mich nach einer längeren Pause nochmal zurecht zu finden, sind gescheitert.

Weiterlesen