c't 18/2017
S. 148
Praxis
Tipps für Linux-Gamer
Aufmacherbild

Spielen statt ärgern

Troubleshooting für Linux-Gamer

Tausende von Spielen gibt es mittlerweile für Linux. Doch nicht alle funktionieren problemlos auf allen Systemen. Oft reichen aber wenige Handgriffe, damit ein Spiel endlich läuft. Wir zeigen, wo Sie ansetzen können, wenn’s beim Spielen unter Linux mal hakt.

Die meisten Linux-Spiele lassen sich ebenso leicht installieren und starten wie die Windows-Version. Doch obwohl von vielen Spielen mittlerweile auch eine Linux-Version veröffentlicht wird, erhält diese doch nicht immer dieselbe Zuwendung wie ihr Windows-Pendant. Dann kann es schon mal vorkommen, dass ein Spiel nicht starten will, Grafikfehler auftreten oder ständige Abstürze das Gamer-Leben schwer machen.

Gelassene Gemüter lehnen sich dann einfach zurück und hoffen, dass die Entwickler einen Patch bereitstellen, der das Problem behebt. Wer darauf nicht warten möchte, kann viele Probleme mithilfe spezieller Startoptionen, dem Nachinstallieren fehlender Bibliotheken oder anderem auch selbst in den Griff bekommen.

Ein Beispiel, für das findige Gamer schnell eine Lösung in den Steam-Foren veröffentlichten: Beim Release von Firewatch hatte der Hersteller nicht bedacht, dass unter Linux die Dateisysteme zwischen Groß- und Kleinschreibung unterscheiden. Das Problem ließ sich mit dem Umbenennen der betroffenen Dateien und Verzeichnisse einfach selbst lösen, ohne auf den Patch des Herstellers warten zu müssen.

Die richtige Distribution

Welche Linux-Distribution sich am besten zum Spielen unter Linux eignet, ist ein umstrittenes Thema unter Linuxern. Grundsätzlich spielen kann man mit jeder Distribution. Offiziell unterstützt wird von Steam und den meisten Entwicklern jedoch Ubuntu und Valves eigenes SteamOS, das auf Debian Testing basiert.

Für Spiele sollten Sie eine halbwegs moderne Distribution einsetzen, denn damit erhalten sie aktuelle Komponenten und Treiber, mit denen Sie vielen Problemen von vornherein aus dem Weg gehen. Die Grafiktreiber von Nvidia unterstützen beispielsweise erst ab Treiberversion 381.26 die neue Grafikschnittstelle Vulkan. Eine Paketquelle stellt diese Version für Ubuntu bereit, sodass sie sich hier leicht installieren lassen. Allerdings gilt das nur für neuere Ubuntu-Versionen. Ubuntu 16.04 ist noch neu genug, älter sollte sie aber nicht sein. Mit der aktuellen Ubuntu-Version fährt man in der Regel immer gut.

Die Unterschiede bestehen häufig in den Versionsnummern von Bibliotheken oder Programmen. Liegen Bibliotheken nicht in der gewünschten Ausgabe vor oder fehlen ganz, starten Spiele oftmals nicht. Können fehlende Pakete dann nicht aus den angebundenen Paketquellen nachinstalliert werden oder funktionieren die im Folgenden genannten Tipps nicht, bleibt noch der Weg über das Einbinden fremder Paketquellen, die andere Programm- oder neuere Treiberversionen bereitstellen können. Aber Achtung: Das Installieren von Software aus fremden Quellen kann die Stabilität des Systems gefährden oder sogar Schadsoftware einspielen. Daher sollten Sie nur Software aus Quellen installieren, deren Anbietern Sie vertrauen.

Optimaler Grafiktreiber

Ähnlich wie unter Windows entscheidet die Leistungsfähigkeit der Grafikhardware und deren Treiber auch unter Linux darüber, wie gut oder schlecht Spiele laufen. Aktuelle Distributionen richten die passenden Grafiktreiber automatisch ein. Nachhelfen muss man häufig bei Systemen mit Nvidias GeForce- oder sehr neuen Grafikchips. Welche Grafiktreiber die richtigen für Ihren PC sind, hängt von Faktoren wie Distribution, Grafikchip und dem jeweiligen Spiel ab. Mehr über dieses Thema lesen Sie in [1].

glxinfo verrät außer der verbauten Grafikhardware auch, welcher Treiber in welcher Version aktuell verwendet wird.

Um herauszufinden, welche Grafikhardware eingebaut ist und welcher OpenGL-Treiber genutzt wird, eignet sich das Kommandozeilen-Tool glxinfo:

glxinfo | grep OpenGL

Bei Nvidias GeForce-Grafikchips wird dort von einem Treiber namens „Nouveau“ die Rede sein, den die meisten Distributionen standardmäßig für Nvidia-Chips einrichten. Er entlockt Grafikchips aber nur einen Bruchteil ihrer Leistungsfähigkeit. Zum Spielen müssen Sie daher fast immer die proprietären Treiber von Nvidia installieren. Dabei sollten Sie die Pakete Ihrer Distribution dem Treiber-Installer von der Nvidia-Website vorziehen, denn der erfordert mehr fortgeschrittene Kenntnisse und integriert sich nicht so gut ins System. Mit zur Distribution passenden Paketen gelingt die Installation hingegen sauber und im Handumdrehen.

Ubuntu bietet proprietäre Grafikkarten-Treiber in seinem Dialog „Anwendungen & Aktualisierungen“ zur Installation an.

Unter Ubuntu öffnen Sie dazu den Punkt „Zusätzliche Treiber“ über das Dash. Dort wählen Sie die neueste Treiberversion, die in der Beschreibung „-updates“ enthält. Nach einem Klick auf „Änderungen anwenden“, ein oder zwei Minuten Wartezeit und einem Neustart ist der Treiber einsatzbereit. Auch andere Distributionen bieten über Suchmaschinen schnell auffindbare Wege, um den Treiber nachzurüsten.

Um einen neueren Treiber als den von Ihrer Ubuntu-Version angebotenen zu verwenden, können Sie eine zusätzliche Paketquelle langjähriger Ubuntu-Freunde einrichten und so den Treiber selbst aktualisieren (siehe ct.de/yajp). Mit den folgenden Befehlen fügen Sie das Repository hinzu und erneuern die Paketliste, damit das System die neuen Pakete überhaupt kennt. Dabei müssen Sie bejahen, dass Sie dem Repository vertrauen, denn es wird nicht offiziell von Canonical betrieben.

sudo add-apt-repository ppa:graphics:

.-drivers/ppa

sudo apt-get update

Anschließend aktualisieren Sie den Treiber auf die neueste Version, momentan heißt das Paket nvidia-381:

sudo apt install nvidia-381

Starten Sie das System danach am besten neu, um den neuen Treiber zu nutzen.

Ist in den Glxinfo-Ausgaben von Intel die Rede, nutzt Ihr System die GPU ihres Intel-Prozessors mithilfe der quelloffenen Treiberfamilie „intel“. Diese arbeitet ganz ordentlich; alternative Treiber gibt es nicht. Einige der neuen OpenGL-Befehle, über die Linux-Spiele die 3D-Funktionen der Grafikhardware nutzen, erfordern aber moderne, erst in den letzten Monaten erschienene Treiberversionen. Dasselbe gilt für neu eingeführte Prozessoren, die die Treiber der Distribution noch nicht unterstützen. Die Intel-Treiber sind allerdings eng mit Kernkomponenten der Distributionen verwoben und dadurch nicht so leicht aktualisierbar. Der Wechsel auf eine aktuellere Distribution ist in diesem Fall oft der einfachste Weg zu neueren Treibern.

Bei Radeon-Chips von AMD ist die Situation komplizierter. Die meisten modernen Grafikchips werden von den standardmäßig eingerichteten Treiberfamilien „radeon“ und „amdgpu“ gut unterstützt; in den Glxinfo-Ausgaben tauchen diese Bezeichnungen aber manchmal nicht auf, denn ihr OpenGL-Treiber heißt „radeonsi“. Auch die Grafikchips der aktuellen Radeon-Rx-Serien 400 und 500 werden von diesen quelloffenen Treibern gut unterstützt – aber nur bei ganz neuen Distributionen. Wie beim Intel-Treiber ist es äußerst aufwendig, aktuellere Versionen der Treiber manuell einzurichten. Zusätzlich zu den quelloffenen und von AMD selbst vorangetriebenen Treibern stellt das Unternehmen auch eine proprietäre Treiberfamilie namens AMDGPU-Pro bereit. Nur noch wenige Spiele laufen damit schneller und besser, meist sind die quelloffenen Treiber die beste Wahl.

Die proprietären Treiber unterstützen nur eine Handvoll Distributionen – und Ubuntu 16.04 ist davon die einzige für Desktop-PCs. Auch bei dieser ist die Installation bei Weitem nicht so einfach wie die des Nvidia-Treibers; auf nicht unterstützten Distributionen läuft der Treiber manchmal gar nicht oder nur mit Tricks. Letztlich lautet die Empfehlung: Setzen Sie mit Radeon-Karten eine möglichst aktuelle Distribution ein, denn mit deren quelloffenen Treibern stehen die Chancen gut, dass einfach alles geht. Falls nicht, ist vermutlich Ubuntu 16.04 mit AMDs proprietären Treiberpaketen die beste Wahl.

Viele Hersteller legen einfach neue Verzeichnisse für ihr Spiel im Home-Verzeichnis an.

Ein Hinweis noch in Sachen AMD: Spielehersteller geben hin und wieder an, nur Nvidia-Grafikkarten zu unterstützen. Ungeachtet dessen funktionieren die Spiele häufig trotzdem mit AMD-Karten. Die Spieleschmiede Feral Interactive, die bereits Titel wie Dirt Rally, Hitman, Deus Ex: Mankind Divided und Tomb Raider auf Linux portiert hat, arbeitet an der Verbesserung der Treiberunterstützung des quelloffenen AMD-Treibers mit und bietet sogar ihre gesamte Spiele-Kollektion als Anreiz für fleißige Mesa-Entwickler.

eON-Ports

Die eON-Technologie von Virtual Programming portiert Windows-Spiele mit möglichst geringem Aufwand und ohne die zu portierende Software selbst anfassen zu müssen auf Plattformen wie Mac oder Linux. Bei diesem Weg der Portierung kann sich der Spielehersteller ganz auf die Entwicklung seines Produkts konzentrieren. Abschließend wird mit eON eine Schicht um das fertige Produkt gelegt. Aufrufe, die das Spiel an das Betriebssystem stellt, um auf die Grafikkarte, den Speicher oder andere Systemkomponenten zuzugreifen, fängt diese Schicht ab und wandelt sie in passende Linux-Aufrufe um. Mithilfe von eON sind durchaus gute Portierungen wie Bioshock Infinite gelungen, während The Witcher 2 anfangs keine gute Performance lieferte. Wenn ein Spiel mithilfe von eON auf Linux portiert wurde, ist im Steam-Store als Entwickler der Linux-Version Virtual Programming aufgeführt.

Die folgenden Tipps sind nicht in den offiziellen Hilfeseiten hinterlegt. Da man leider nicht viel über die eON-Technologie bekannt ist, funktionieren sie womöglich nicht in jedem Fall.

eON: Verzögerte Maus

In einigen mit eON portierten Spielen wie Overlord oder Overlord: Rising Hell verhält sich die Maus sehr träge. Die Bewegung des Mauszeigers erscheint dabei mit einer spürbaren Latenz auf dem Bildschirm; Mausklicks brauchen knapp eine Sekunde, um im Spiel anzukommen.

Ursache des Problems ist ein zu hoch eingestelltes Maus-Polling im Kernel, das meist automatisch konfiguriert wird. Die für eON zu hohe Einstellung – meist ein Wert über 125 Hz – sorgt bei einigen eOn-Ports für die genannten Symptome. Der Linux-Kernel liefert allerdings Schnittstellen, um das Maus-Polling anzupassen; für die Anpassungen sind root-Rechte nötig. Die Einstellung gilt systemweit und nicht nur für eOn-Anwendungen.

Um zu prüfen, auf welchen Wert das Maus-Polling eingestellt ist, öffnen Sie ein Terminal-Fenster und tippen:

cat /sys/module/usbhid/:

.parameters/mousepoll

Tabelle
Tabelle: Mouse-Polling

Das Ergebnis dieses Kommandos sollte eine einzelne Zahl sein. Welcher Wert für welche Polling-Frequenz steht, zeigt die Tabelle „Mouse-Polling“. Um den Wert zu verändern, legen Sie im Verzeichnis /etc/modprobe.d/ die Datei 99-custom.conf an. Der Name ist dabei egal, alle Dateien mit der Endung „.conf“ werden gelesen, es sei denn, Ihre Distribution geht hier einen Spezialweg. In die Datei tragen Sie folgende Zeile ein:

options usbhid mousepoll=8

Um mit den Werten zu experimentieren und den richtigen herauszufinden, ersetzen Sie die Zahl 8 anhand der Tabelle. Das Problem tritt offenbar bei Polling-Raten über 125 Hz auf.

Die neue Konfigurationsdatei sorgt dafür, dass die Einstellung beim nächsten Neustart geladen wird. Um den Wert ohne Neustart sofort zu ändern, laden Sie das Kernelmodul mit folgendem Kommando als root-Benutzer neu:

modprobe -r usbhid && modprobe usbhid

Dabei wird der gesamte USB-Hub neu gestartet, Maus und Tastatur können daher einen Moment ausfallen. Beim Test des betroffenen eON-Spiels finden Sie dann heraus, ob die Einstellung die gewünschte Wirkung zeigt.

eON: Mehrere Monitore

Kommen mehrere Monitore zum Einsatz, starten manche Spiele nicht immer auf dem gewünschten. Die Launcher mancher Linux-Ports bieten eine Option, um den Monitor auszuwählen, bei den eON-Ports müssen Sie anders vorgehen.

Man ändert sie in der Steam-Spiele-Bibliothek: Klicken Sie hier mit der rechten Maustaste auf das gewünschte Spiel und wählen Sie im Menü „Einstellungen“. Über den Knopf „Startoptionen festlegen“ weisen Sie dann das Spiel an, auf dem gewünschten Monitor zu starten. Der Eintrag

%command% --eon_force_display=0

sorgt dafür, dass das Spiel auf dem primären Monitor läuft, da die Zählung ganz in Informatikermanier bei 0 beginnt. Welcher Monitor der primäre ist, verrät der Befehl xrandr --current. Passen Sie die Ziffer im eben genannten Beispiel an den gewünschten Bildschirm an.

Spieleordner finden

Mit dem Bearbeiten von Startskripten und Konfigurationsdateien lassen sich unter anderem Probleme beim Start eines Spiels oder Launchers umgehen. Allerdings muss man diese erst einmal finden, denn jeder Spielehersteller entscheidet selbst, wo die Dateien liegen. Und nicht nur unter Windows sind Spielstände, Einstellungen und Skripte über mehrere Ordner verteilt.

Viele Spiele legen die Daten einfach in einem Ordner im Home-Verzeichnis ab, der den Namen des Spiels trägt und bestenfalls noch mit einem vorangestellten Punkt versteckt ist, zum Beispiel Minecraft.

Nur wenige Publisher halten sich an die XDG-Base-Directory-Spezifikation, die festlegt, wo solche Ordner liegen sollen, um nicht das Home-Verzeichnis zuzumüllen. Genau genommen legt die Spezifikation fest, welche Variable ein Programm nach dem gewünschten Pfad befragen soll. Hat der Benutzer diese nicht selbst gesetzt, verwendet das Programm den Standardwert – für Konfigurationsdateien ist das der Ordner .config im Home-Verzeichnis.

Wer seine Konfigurationsdateien nicht im Home-Verzeichnis, sondern woanders sammeln möchte, muss in der Datei /etc/environment mit Administratorrechten folgende Zeile ergänzen:

XDG_CONFIG_HOME = /mnt/config

Im Beispiel legt dann jedes Programm, das die XDG Base Directory unterstützt, seine Konfiguration künftig unter /mnt/config ab.

Vorbildliche Entwickler sorgen dafür, dass Konfiguration und Spielstände nicht direkt im Home-Verzeichnis, sondern wie vorgesehen im Unterverzeichnis ~/.config oder unterhalb von ~/.local/share landen. So liegen zum Beispiel die Konfiguration und Logdateien des Echtzeitstrategiespiels 0. A.D. im Ordner ~/.config/0ad, während Spielstände, Modifikationen und Screenshots unter ~/.local/share/0ad zu finden sind. Die über Steam installierte Farming-Rollenspiel-Simulation Stardew Valley speichert wiederum ihre Spielstände und Starteinstellungen unter ~/.config/StardewValley, während das Spiel selbst unter ~/.local/share/Steam/steamapps/common/Stardew Valley residiert. Wie üblich, liegt das zugehörige Startskript im Programmverzeichnis, also ebenfalls hier.

Variablen für benutzerspezifische Daten sind beispielsweise XDG_DATA_HOME und XDG_CACHE_HOME. Ersteres wird unter anderem für Spielstände, „Historien“ oder Favoriten der Benutzer verwendet. Falls eine Variable nicht gesetzt wurde, kommt der Standardwert zum Einsatz. XDG_CONFIG_HOME zeigt dann auf ~/.config, XDG_DATA_HOME auf ~/.local/share im Home-Verzeichnis. Dort können Sie nachsehen, wenn der Spieleordner nirgendwo direkt im Home-Verzeichnis aufzufinden ist.

Das in der Variablen XDG_CACHE_HOME hinterlegte Verzeichnis wird vor allem zum Zwischenspeichern von Daten verwendet, deren Verlust verschmerzbar ist. Dort finden Sie beispielsweise Bilder oder Profilbilder von Chat-Programmen. Wurde die Variable nicht gesetzt, wird .cache im Home-Verzeichnis verwendet.

Fehlende Bibliotheken

Fehlen benötigte Bibliotheken, startet ein Spiel unter Umständen gar nicht erst. Ist die Ursache unklar, sollte man das Spiel oder Steam von einem Terminalfenster aus starten. Im besten Fall liefert das weitere Informationen und aussagekräftige Fehlermeldungen. Um den Steam-Client zu starten, tippen Sie in der Konsole das Kommando steam. Auch über Steam installierte Spiele lassen sich direkt starten, dazu müssen Sie zunächst herausfinden, wo die ausführbare Datei oder das zugehörige Startskript liegt (siehe oben).

Beim Start eines Spiels auf der Kommandozeile liefern Fehlermeldungen wie „error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory“ praktische Hinweise. In diesem Beispiel benötigt das Spiel Funktionen aus der Bibliothek SDL 2, die es in der Datei libSDL2-2.0.so.0 sucht, sie aber nicht findet. Finden Sie anhand der Fehlermeldung keine Lösung, können Sie sie auch einfach in eine Suchmaschine kopieren, um passende Beiträge in Foren aufzuspüren.

Ein gutes Beispiel ist OpenRCT2. Der Klassiker Rollercoaster Tycoon 2 lässt sich mit der Reimplementation der originalen Engine und den Original-Spieledaten von Steam, GOG oder der Original-Disk unter Linux spielen. Unter OpenSuse 42.2 fehlt dann aber beispielsweise eine Bibliothek. Das dient im Folgenden als Beispiel. Unter anderen Distributionen oder Open-Suse-Ausgaben können andere Bibliotheken oder Versionen von diesen fehlen. Auch Ubuntu macht da keine Ausnahme. Das Verfahren bleibt bei allen im Kern gleich, Sie verwenden dann aber den Paketmanager der jeweiligen Distribution.

An der Konsole gibt das System mehr Informationen aus.

Das Spiel muss nach dem Download nur entpackt und mit der ausführbaren Datei gestartet werden. Klappt das nicht, öffnen Sie ein Terminal-Fenster, wechseln ins Spielverzeichnis und starten das Spiel mit dem Kommando ./openrct2.

Wer mit Kommandozeilentools nicht allzu vertraut ist, kann leichter in der grafischen Paketverwaltung – hier Yast – nach einem passenden Paket suchen.

Eine Fehlermeldung verrät, dass zum Spielstart die Datei libSDL2-2.0.so.0 benötigt, aber nicht gefunden wurde. Im einfachsten Fall ist die fehlende Bibliothek nur nicht installiert. Suchen Sie in der Software-Verwaltung nach einem passenden Paket und installieren es, unter OpenSuse zum Beispiel mit

sudo zypper in libSDL-2_0-0

Meist fehlt mehr als eine Bibliothek. Das Kommando ldd gefolgt vom Pfad zur ausführbaren Datei verrät, welche Bibliotheken ein Programm braucht und weist darauf hin, wenn diese fehlen. Achten Sie darauf, dabei kein Startskript (mit der Endung „.sh“) als Parameter anzugeben, denn ldd funktioniert nur mit ausführbaren Binärdateien.

Manche Spiele sind 32-Bit-Programme und brauchen passende 32-Bit-Bibliotheken. ldd verweist dann auf Dateien in Ordnern, die im Namen „i386“ tragen. Installieren Sie in diesem Fall die gewünschte Bibliothek als 32-Bit-Version. Unter OpenSuse suchen Sie in der Paketverwaltung einfach nach einem passenden Paket mit der Endung „-32bit“. Unter Ubuntu fügen Sie mit

sudo dpkg --add-architecture 386

zunächst die 32-Bit-Architektur zur Paketverwaltung hinzu. Erst dann kann diese Infos zu Paketen liefern und eventuelle Abhängigkeiten auflösen. Anschließend installieren Sie die 32-Bit-Fassung eines Pakets mit:

sudo apt-get install paket:i386

Dieser Befehl zeigt nur das an, was dem Programm noch fehlt.

Die lange Ausgabe von ldd lässt sich mit dem Kommando grep nach dem Ausdruck „not found“ durchsuchen, sodass nur noch fehlende Bibliotheken aufgelistet werden. Diese müssen Sie dann wie beschrieben nachrüsten.

Linken nach Zahlen

libzip ist installiert, aber mit libzip.so.2 in einer zu alten Version.

Will das Spiel nach der Installation aller nötigen Bibliotheken noch nicht starten, sollten Sie die Versionsnummer genauer betrachten. Einigen Programmen ist die Version egal, sie nennen als Abhängigkeit nur den Dateinamen, zum Beispiel libzip.so. Manche Funktionen bringt eine Bibliothek erst ab einer bestimmten Version mit. Welche benötigt wird, lässt sich häufig den Fehlermeldungen entnehmen.

Ist die gesuchte Version in der Paketverwaltung verfügbar, installieren Sie sie einfach. OpenRCT2 verlangt beispielsweise die libzip.so.4, die unter Ubuntu 17.04 in den Repositories liegt. Auf dem OpenSuse-System ist aber nur libzip.so.2 installiert. Als Lösung können Sie versuchen, einen symbolischen Link mit dem Namen libzip.so.4 anzulegen, der auf die vorhandene libzip.so.2 zeigt. Werden keine Funktionen benötigt, die nur die Version 4 beherrscht, kann das für den Start des Spiels ausreichen. Bedenken Sie auch hier, dass der Link systemweit gilt; daher sollten Sie besser die Umgebungsvariable LD_LIBRARY_PATH nur für das Spiel setzen. Dazu gleich mehr.

Bibliotheken teilen

Der Linux-Kernel kann die Speicherbereiche gemeinsam genutzter Bibliotheken wiederverwenden, sodass eine Bibliothek nur einmal Platz im RAM beansprucht, egal wie viele Programme sie nutzen. Solche Bibliotheken werden auch „shared libraries“ oder „shared objects“ (daher die Dateiendung „.so“) genannt.

Spiele liefern oft eigene Bibliotheken mit und greifen dennoch auf eine Vielzahl vorinstallierter Dateien zurück. Sich auf einen im Vorfeld bekannten Satz an Programmbibliotheken verlassen zu können, macht den Entwicklern die Arbeit und das Testen deutlich einfacher. Aus diesem Grund nennen Entwickler oft nur wenige, wenn nicht sogar nur Ubuntu und SteamOS als unterstützte Plattformen. Setzt ein Spiel eine neuere oder angepasste Version einer Bibliothek voraus, als die Distributionen sie bereithalten, liefern sie sie mit den Spielen aus. Mitunter verheddern diese sich dann aber mit den Bibliotheksversionen des Betriebssystems oder denen, die Steam mitliefert.

In welchen Verzeichnissen Linux nach Bibliotheken sucht, legt die Datei /etc/ld.so.conf fest. Den Pfad zu einzelnen Bibliotheken für ein bestimmtes Spiel sollte man hier aber nicht hinterlegen. Das nächste Spiel soll schließlich auch wieder mit seinem eigenen Satz an Bibliotheken arbeiten. Stattdessen setzen Sie die Umgebungsvariable LD_LIBRARY_PATH, die nur zum Aufruf des Spiels gebraucht wird:

LD_LIBRARY_PATH=/home/benutzer/.steam:

./steam/steamapps/common/meinspiel

Passen Sie den Pfad zum Spiel an. Oftmals legen Steam-Spiele ein Startskript im Spielverzeichnis unter /home/benutzer/.steam/steam/steamapps/common/meinspiel ab. Dann sollte man die Zeile besser hier einfügen. Bei Fehlern kann es allerdings passieren, dass das Spiel nicht mehr startet. In diesem Fall kann der Steam-Client die Dateien wiederherstellen. Dazu öffnen Sie mit einem Rechtsklick auf das Spiel im Kontextmenü „Eigenschaften“ und klicken im Reiter „Lokale Dateien“ auf „Dateien auf Fehler überprüfen“. Ein weiterer Nachteil dieser Lösung: Ein Update des Spiels überschreibt die Datei womöglich. Wenn Sie die Variable stattdessen in den Steam-Startoptionen setzen, überlebt die Einstellung auch ein Update.

Startoptionen für Steam

Im Steam-Client lassen sich zusätzliche Startparameter hinterlegen.

Steam-Spielen können Sie zusätzliche Startparameter mitgeben, um Schwierigkeiten zu umgehen. Um solche Startoptionen zu ergänzen, klicken Sie in der Steam-Bibliothek mit der rechten Maustaste auf das Spiel und wählen „Eigenschaften“. Ein Klick auf „Startoptionen festlegen“ öffnet ein Eingabefeld. Damit das Spiel später startet, muss der Eintrag außer den zusätzlichen Optionen stets %command% enthalten.

Praktisch ist diese Möglichkeit zum Beispiel bei Rocket League unter OpenSuse und Fedora: Das Spiel findet die Verschlüsselungszertifikate nicht an der dort fest hinterlegten Stelle auf der Festplatte. Bemerkbar macht sich der Fehler dadurch, dass man keine Verbindung zu Multiplayer-Servern aufbauen kann. In vielen Fällen reicht es, den Suchpfad für die Zertifikate über folgende Startoption zu ergänzen:

SSL_CERT_DIR="/etc/ssl/certs" :

.%command%

Rocket League erwartet die Dateien jedoch trotzdem unter /etc/ssl/certs/ca-certificates.crt. Daher müssen Sie dort einen symbolischen Link anlegen:

sudo ln -s /etc/ssl/ca-bundle.pem :

./etc/ssl/certs/ca-certificates.crt

Unterstützt ein Spiel eigene Befehle, wie es bei Spielen auf Basis der Unity-Engine üblich ist, stehen diese hinter %command%:

%command% --fullscreen

Die hier hinterlegten Befehle werden bei jedem Start des jeweiligen Spiels ausgeführt.

Steam und große Platten

Liegen Steam-Spiele auf einer Festplatte mit mehr als 1 TByte Speicherplatz und dem Dateisystem XFS, kann es sein, dass sie nicht starten oder sich sofort wieder beenden. Startet man das Spiel an der Konsole, so zeigen sich „Segfaults“ oder Skript-Fehler, fehlende Dateien und andere Merkwürdigkeiten. Hat das Spiel in einer früheren Version bereits funktioniert, könnte Bug 1685 aus Valves Github-Bugtracker die Ursache sein (siehe ct.de/yajp). Davon betroffen sind zum Beispiel „Civilization V“, einige Source-Engine-Spiele wie „Counter Strike Source“, „Portal 2“, „Left 4 Dead 2“, „Team Fortress 2“ oder auch Titel von Paradox Interactive wie „Crusader Kings 2“ oder „Europa Universalis 4“.

Die Größe der Inodes, auf denen die Daten auf der Festplatte gespeichert sind, benötigen 64 Bit auf Dateisystemen mit mehr als 1 TByte. In Kombination mit XFS kommt es da zu Schwierigkeiten. Meist löst sich das Problem, wenn Sie das Spiel erneut auf einem anderen Dateisystem wie Ext4 oder Btrfs installieren (nicht kopieren). Andere Abhilfe ist bisher leider nicht bekannt.

Zum Kasten: Hersteller in die Pflicht nehmen

Regionaleinstellungen bei Unity-Spielen

Unity ist eine sehr beliebte Game-Engine. Sie ermöglicht den Entwicklern einen leichten Entstieg, bietet Unterstützung für verschiedene Plattformen, wie Windows, macOS, Linux, iOS, Android und mehr. Mit Unity wurden Titel wie Kerbal Space Program, Firewatch, Cities: Skylines, 7 Days To Die, Rimworld und viele andere entwickelt. Bei einigen in C# geschriebenen Unity-Spielen treten immer wieder Probleme mit den Sprach- und Regionaleinstellungen (locales) auf, die auch Formatierungen für das System umfassen. Vergessen Entwickler zum Beispiel, das Zahlenformat zu definieren, kann es zu Fehlern oder sogar Abstürzen kommen.

Die Lösung für das Problem ist einfach: Ergänzen Sie folgende Zeile in den Steam-Startoptionen des Spiels:

LC_ALL=C %command%

Falscher Monitor bei Unity-Spielen

Einige Unity-Spiele bieten keine Optionen zur Wahl des Monitors bei Multimonitor-Setups. Mit hoher Wahrscheinlichkeit wird dann stets der falsche Monitor ausgewählt, da die Entwickler folgende Einstellung in der Konfigurationsdatei setzen:

<pref name="UnitySelectMonitor" :

.type="int">-1</pref>

Die Angabe von „-1“ sorgt dafür, dass das Spiel auf einem nicht-primären Monitor startet. Meist liegen die Konfigurationsdateien von Unity-Spielen unter ~/.config/unity3d/Unternehmensname/Spielename/prefs. Die Weltraum-Simulation Kerbal Space Program legt ihre Konfiguration beispielsweise unter ~/.config/unity3d/Squad/Kerbal Space Program/prefs/ ab.

Wenn Sie in der Konfiguration des Spiels den Wert von „-1“ auf „0“ ändern, startet das Spiel künftig auf dem primären Monitor. Allerdings unterstützen manche Unity-Spiele diesen Parameter nicht und starten trotzdem auf dem anderen Monitor.

Von Feral Interactive portierte Spiele bringen in der Regel einen eigenen Launcher mit, in dem Sie vor dem Start des Spiels Einstellungen wie die Auflösung und den gewünschten Monitor ändern können.

Feral-Launcher

Linux-Spiele, die von Feral Interactive auf Linux portiert wurden, bringen in der Regel einen „Feral-Launcher“ mit, der einige praktische Funktionen bereithält. Unter anderem lassen sich damit schon außerhalb des Spiels Anzeigeeinstellungen vornehmen und zusätzliche Startparameter angeben. Einige Versionen übernehmen auch die Verwaltung sogenannter „Mods“, also Erweiterungen für das eigentliche Spiel. Unterstützt das Spiel bereits die neue Grafikschnittstelle Vulkan, so kann sie hier bereits aktiviert werden – passende Grafiktreiber vorausgesetzt.

Klappt der Start des Spiels nicht, weil der Launcher nicht starten will, können zusätzliche Startoptionen in der Steam-Bibliothek helfen: Tragen Sie hier folgende Parameter ein

LANG=C %command%

und starten Sie dann das Spiel. Zeigt sich daraufhin der Feral-Launcher, können Sie dessen automatischen Start deaktivieren, indem Sie den Haken vor „Diesen Dialog immer anzeigen“ wegnehmen und den Launcher wieder schließen. Das Spiel sollte dann ohne Probleme starten.

Um die Änderung rückgängig zu machen, drücken Sie beim Start des Spiels die Strg-Taste. Dann startet der Feral-Launcher und das Aktivieren der Option „Diesen Dialog immer anzeigen“ stellt das alte Verhalten wieder her. (lmd@ct.de)