Eine verbesserte, quelloffene Version der aus den S.T.A.L.K.E.R-Teilen von GSC Game World bekannten X-Ray-Engine.
Die Engine
OpenXRay ist der Ansatz einer Portierung der auf Funktionen von DirectX basierenden X-Ray-Engine der S.T.A.L.K.E.R-Spiele nach openGL. Seit 2019 existiert eine Kompilieranleitung für ausführbare Dateien unter Linux, was (bislang lediglich) Besitzer des Teils "Call of Prypjat" in den Genuss bringt, das Spiel nativ ohne die Verwendung von Proton, PlayOnLinux oder (grundlegend) wine unter Linux auszuführen. Die Funktionalität wird im Juli 2019 für besagten dritten Teil der Serie als 'sehr gut' deklariert. Für den Vorgängerteil "Clear Sky" besteht im Moment noch Betastatus. Der erste Teil der Serie S.T.A.L.K.E.R.: Shadow of Chernobyl ist (derzeit noch) nicht mit Hilfe der OpenXRay unter Linux spielbar, allerdings wird dieser Teil offiziell von Proton unterstützt, was eine sehr gutes bis zu gleichwertiges Spielerlebnis der Windowsversion unter Linux garantiert.
Die Installation
Diese Schritte entsprechen dem Stand der von den Entwickler zur Verfügung gestellten Anleitung zum Kompilieren unter Linux, Stand Juli 2019. Es fand lediglich eine Übersetzung statt. Die originäre Anleitung findet sich hier. Prinzipiell redundante Schritte wurden ausgespart und teilweise wurde um eigene Informationen ergänzt.
Die eingesetzte Distribution muss über die installierten Pakete git, cmake, GLEW, FreeImage, FreeImagePlus, Lockfile, OpenAL, TBB, Crypto++, Theora, Ogg, SDL2, LZO und Jpeg verfügen. Distributionen mit apt-get können dies über den nachfolgenden Befehl realisieren
sudo apt install git cmake libglew-dev libfreeimage-dev libfreeimageplus-dev liblockfile-dev libopenal-dev libtbb-dev libcrypto++-dev libogg-dev libtheora-dev libvorbis-dev libsdl2-dev liblzo2-dev libjpeg-dev libreadline-dev
Für Distributionen die das rpm-basierte dnf benutzen sieht der Befehl vermutlich folgendermaßen aus:
sudo dnf install git cmake glew-devel freeimage-devel freeimage-plus-devel liblockfile-devel openal-devel tbb-devel cryptopp-devel libogg-devel libtheora-devel libvorbis-devel SDL2-devel lzo-devel libjpeg-turbo-devel readline-devel
Als nächstes klont man den aktuellen Stand des OpenXRay Repository mit
git clone https://github.com/OpenXRay/xray-16.git --recursive
Ist der Prozess abgeschlossen, erhält man ein neues Unterverzeichnis mit dem Namen "xray-16". Anschließend legt man via
cd xray-16 && mkdir bin && cd bin
darin einen Ordner "bin" an und navigiert in diesen. Anschließend startet man mit
cmake ..
einen Vorabtest, ob alle Abhängigkeiten auf dem System zum Bau gegeben sind oder nicht. Achtet hier auf eventuelle Fehlermeldungen und agiert beim Auftreten eben dieser entsprechend.
Ergänzung: Sollten Probleme bezüglich der gcc-Version (>8 erforderlich) auftreten, prüft ob eine entsprechend hohe Version installiert und als Standard hinterlegt ist
sudo update-alternatives --config cc
Sollte bereits ein Fehlversuch voran gegangen sein, kann es notwendig werden vorangegangene Altlasten vor einem neuen Versuch zu entfernen, um nicht in den gleichen, aus dem Log erneut eingeleseenen Fehler zu rennen.
Wer möchte, kann das Paket alternativ über clang bauen. Statt des obigen Befehls cmake .. gibt man dann das nachfolgende ein:
CC=clang CXX=clang++ cmake ..
Außerdem wird im Howto davon gesprochen, dass man alternativ mit "optimizations for your machine" gebaut werden kann. Das sähe dann so aus und müsste alternativ zu obigen 'cmake .. eingegeben werden.
CFLAGS="-march=native" CXXFLAGS="-march=native" cmake ..
Ist einer der drei obigen Befehle (also nicht alle drei hintereinander sondern einer der drei) ohne Fehler durchlaufen, kann man nun den Baubefehl absetzen, wobei das große "X" der Anzahl der Prozessorkerne entsprechen, beispielsweise 4 bei einem Quadcore-Prozessor sollte.
make -j4 [(/code] Wer, erneut alternativ dazu, die Ausgabe von Hinweis- und Fehlermeldungen in einer Logfile haben möchte, nutzt stattdessen [code] make -j4 >out.log 2>error.log
Als nächsten Schritt, um die Linux-bin nutzen zu können, muss ein Verzeichnis "bin-linux" erstellt und für die bin passend befüllt werden. Auch zu diesem Zweck gibt gibt es einen Befehl der ausgeführt werden muss. Man muss darauf achten, das "/Pfad/zu/CallOfPrypjat" der Pfad zu der via wine installierten Windows-Version des Spiels sein muss.
make DESTDIR=/Pfad/zu/CallOfPrypjat/bin-linux install
(Ab jetzt wird es schwammig bzw. ist das HowTo nicht mehr einwandfrei zu interpretieren)
Man sichert nun seine fsgame.ltx - Datei in der Form wie man sie durch das Installieren des Spiel via Steam, Gog oder von DVD aus erhalten hat.
Als nächstes kopiert man die fsgame.ltx - Datei und den Inhalt des "res" Ordners nach "/Pfad/zu/CallOfPrypjat".
Um das Spiel nun zu starten, gibt man aus dem Verzeichnis /bin-linux heraus im Terminal den nachfolgenden Befehl ein
./xr_3da.sh -fsltx ../fsgame.ltx
Teststatus
Im Netz kursieren verschiedene Videos die zeigen wie Nutzer das Spiel nativ unter Linux ausführen.
Die obenstehende Anleitung jedoch führt in zwei Testfällen auf verschiedenen System zu einer "FATAL ERROR" Meldung mit dem Hinweis
"[error] Description : can't read from file :" ohne konkreten Hinweise darauf, welche Dateien hier nicht gefunden werden oder fehlen.
Alternative: Nutzung eines PPA
Die Entwickler hinter dem Projekt haben auf github auf einen issue geantwortet, der das unter Teststatus festgehaltene Verhalten beschreibt. Sie sagen, dass die aktuelle Linuxversion fehlerhaft ist, jedoch zeit- und ersatzweise ein PPA genutzt werden kann, welches das System mit einer ausführbaren Datei versorgt. Zu diesem Zweck gibt man auf einem Terminal unter Ubuntu oder verwandten Systemen den nachfolgenden Befehle ein
sudo add-apt-repository ppa:eagleivg/openxray sudo apt-get update sudo apt-get install openxray
Ist dieser Vorgang abgeschlossen, müssen noch einige Ordner nach .local kopiert oder verlinkt werden. Dies betrifft mindestens die Ordner levels, localization, mp, patches und resources
aus der zuvor via wine installierten Windowsversion des Spiels. Diese müssen nach /home/$username/.local/share/GSC/SCOP/
bzw. ~/.local/share/GSC/SCOP/
kopiert werden.
Ferner benötigt man, da der linuxbuild etwas buggy ist, ein anderes/älteres "gamedata"-Verzeichnis. Zu diesem Zweck lädt man die Daten aus einem Fork des Projekts (https://github.com/eagleivg/xray-16.git), extrahiert sich daraus den Ordner "gamedata" und überschreibt mit diesem Ordner den Inhalt des gleichnamigen Verzeichnis unter ~/.local/share/GSC/SCOP/
. Ist dies geschehen, kann man in einem Terminal aus einem beliebigen Ordner heraus das Spiel mit "xr_3da" starten.
Trivia
Der Aufruf des Optionsmenü aus dem Hauptmenü heraus sorgt aktuell, Juli 2019, in einer Testsituation zu einem Absturz des Spiels.
- Anmelden oder Registrieren um Kommentare zu schreiben
- 2164 Aufrufe