Linux-games: zo los je problemen op

Alieke van Sommeren
0

Er zijn inmiddels duizenden games voor Linux. Maar ze werken niet allemaal probleemloos op alle systemen. Vaak zijn er maar een paar ingrepen nodig om een spel eindelijk aan de praat te krijgen. In dit artikel lees je waarop je moet letten, als het met Linux-games niet lukt.

De meeste Linux-games zijn net zo makkelijk te installeren en te starten als de Windows-versies. Maar hoewel er van veel games ondertussen ook een Linux-versie uitgebracht wordt, krijgt deze niet altijd dezelfde aandacht van de ontwikkelaars als zijn Windows-tegenhanger. Dan kan het wel eens gebeuren dat een spel niet wil starten, er grafische fouten optreden of voortdurende crashes het plezier vergallen.

Veel mensen gaan dan gewoon achterover zitten en hopen gelaten dat de ontwikkelaars met een patch op de proppen komen die het probleem verhelpt. Als je daar niet op wilt wachten, kun je veel problemen met speciale opstartopties, het installeren van ontbrekende bibliotheken of iets dergelijks ook zelf oplossen, met hier en daar wat hulp.

Een voorbeeld waarbij vindingrijke gamers snel met een oplossing in de Steamfora kwamen is het volgende. Bij de release van Firewatch had de fabrikant er niet aan gedacht dat bij Linux de bestandssystemen onderscheid maken tussen hoofdletters en kleine letters. Het probleem was door het hernoemen van de betreffende bestanden en directory’s eenvoudig zelf op te lossen. Je hoefde dus niet op de patch van de producent te wachten.

Linux-games

De juiste distributie voor Linux-games kiezen

Welke Linux-distributie het meest geschikt is voor gamen onder Linux, is een onderwerp van discussie onder Linux-gebruikers. In principe kun je met elke distributie gamen. Maar Steam en de meeste ontwikkelaars ondersteunen Ubuntu en Valves eigen SteamOS, gebaseerd op Debian Testing. Voor Linux-games kun je het best een redelijk moderne distributie gebruiken, want daarmee krijg je de nieuwste onderdelen en drivers. Zo kun je op voorhand al veel problemen omzeilen.

De grafische drivers van Nvidia ondersteunen bijvoorbeeld pas vanaf driverversie 381.26 de nieuwe grafische interface Vulkan. Deze versie is voor Ubuntu in een repository te vinden, zodat hij makkelijk te installeren is. Maar dat geldt alleen voor nieuwere Ubuntu-versies. Ubuntu 16.04 is nieuw genoeg, maar ouder moet hij niet zijn. Met de nieuwste Ubuntu-versie ben je meestal het beste af.

De verschillen bestaan hoofdzakelijk in de versienummers van bibliotheken en programma’s. Als bibliotheken niet in de gewenste versie beschikbaar zijn of helemaal ontbreken, starten games vaak niet op. Kunnen ontbrekende pakketten niet vanuit de standaard repository’s geïnstalleerd worden of functioneren de hieronder genoemde tips niet? Dan kun je vreemde repository’s aankoppelen, die andere programma- of driverversies beschikbaar stellen. Maar pas op, het installeren van software uit vreemde bronnen kan de stabiliteit van je systeem in gevaar brengen of zelfs malware binnenhalen. Daarom kun je beter alleen software installeren uit bronnen waarvan je de aanbieders vertrouwt.

Gebruik de optimale grafische driver

Net als onder Windows bepalen de prestaties van de grafische hardware en de bijbehorende drivers ook onder Linux hoe goed of slecht games draaien. Actuele distributies installeren de juiste grafische drivers automatisch. Bij systemen met Nvidia GeForce- of heel nieuwe grafische chips moet je vaak zelf de handen uit de mouwen steken. Welke grafische driver de juiste is voor je pc, hangt af van factoren als distributie, grafische chip en het betreffende spel. Meer over dit onderwerp lees je in c’t 1-2/2015, p.132. Om te achterhalen welke grafische hardware er in je computer zit en welke OpenGL-driver er gebruikt wordt, kun je de commandlinetool glxinfo gebruiken:

glxinfo | grep OpenGL

Bij Nvidia GeForce-chips zal dan de naam ‘Nouveau’ in verband met de driver opduiken. Deze wordt door de meeste distributies automatisch voor Nvidia-chips geïnstalleerd. Maar deze haalt maar een fractie van de potentiële prestaties uit de grafische chips. Voor Linux-games moet je dus vrijwel altijd de propriëtaire driver van Nvidia installeren. Daarbij kun je het beste de voorkeur geven aan de pakketten van je distributie en niet aan de driver-installer van de website van Nvidia. Want deze laatste vereist meer gevorderde kennis en laat zich niet zo goed in het systeem integreren.

Met de voor de distributie geschikte pakketten verloopt de installatie daarentegen netjes en vlot. Onder Ubuntu open je daarvoor het onderdeel ‘Additional Drivers’ via de dash. Daarin kies je op het gelijknamige tabblad de nieuwste driverversie, die in de beschrijving ‘-updates’ bevat. Na een klik op ‘Apply Changes’, een of twee minuten wachttijd en een reboot is de driver klaar voor gebruik.

Ook in andere distributies vind je via zoekmachines snel manieren om de driver te installeren. Om een nieuwere driver te gebruiken dan door je Ubuntu-versie wordt aangeboden, kun je een extra pakketbron van de Ubuntu-community toevoegen en zo zelf de driver updaten. Met de volgende commando’s voeg je de repository toe en vernieuw je de pakketlijst, zodat het systeem de nieuwe pakketten ook kent.

sudo add-apt-repository ppa:graphics-drivers/ppa 

sudo apt-get update

Vervolgens update je de driver naar de nieuwste versie, op het moment van schrijven is de naam van het pakket nvidia- 381:

sudo apt install nvidia-381

Het beste kun je daarna het systeem opnieuw opstarten om de nieuwe driver in gebruik te nemen. Wordt bij de uitvoer van glxinfo Intel genoemd, dan gebruikt je systeem de gpu van je Intel-processor via de opensource driverfamilie ‘intel’. Deze werkt behoorlijk goed, alternatieve drivers zijn er niet. Enkele nieuwe OpenGL-commando’s waarmee Linux-games de 3D-functies van de grafische chip gebruiken, vereisen echter nieuwe, de afgelopen maanden pas uitgebrachte driverversies.

Hetzelfde geldt voor nieuwe processors, die door de drivers van de distributie nog niet ondersteund worden. De Intel-drivers zijn echter nauw met kernonderdelen van de distributies verweven en daardoor niet zo makkelijk te updaten. In dit geval is het overstappen naar een nieuwere distributie vaak de simpelste manier om aan nieuwere drivers te komen. Bij Radeon-chips van AMD ligt de situatie gecompliceerder.

Moderne chips en Linux-games

De meeste moderne grafische chips worden door de standaard geïnstalleerde driverfamilies ‘radeon’ en ‘amdgpu’ goed ondersteund. In de uitvoer van glxinfo komen deze aanduidingen vaak niet voor, want hun OpenGL-driver heet ‘radeonsi’. Ook de grafische chips van de huidige Radeon Rx-series 400 en 500 worden door deze opensource drivers goed ondersteund – maar alleen bij de nieuwste distributies. Zoals bij de Intel-drivers is het erg ingewikkeld om nieuwere versies van de drivers handmatig te installeren.

Naast de opensource en door AMD zelf ondersteunde drivers, stelt het bedrijf ook een propriëtaire driverfamilie onder de naam ‘amdgpu pro’ beschikbaar. Er zijn nog maar weinig Linux-games die daarmee sneller en beter draaien, meestal kun je het beste kiezen voor de opensource drivers. De propriëtaire drivers ondersteunen maar een handjevol distributies – en Ubuntu 16.04 is daarvan de enige voor desktoppc’s.

Ook hierbij is de installatie bij lange na niet zo simpel als van de Nvidia-drivers. Op niet ondersteunde distributies werkt de driver vaak helemaal niet of alleen met trucjes. Om een lang verhaal kort te maken: gebruik bij Radeon-kaarten zoveel mogelijk de nieuwste distributies. Want met hun opensource drivers heb je een goede kans dat gewoon alles goed gaat. Zo niet, dan is vermoedelijk Ubuntu 16.04 met AMD’s propriëtaire driverpakketten de beste keus.

Nog een opmerking over AMD: gameontwikkelaars geven af en toe aan dat ze alleen grafische kaarten van Nvidia ondersteunen. Desondanks werken de games toch vaak met kaarten van AMD. Game-uitgever Feral Interactive, die al titels als Dirt Rally, Hitman, Deus Ex: Mankind Divided en Tomb Raider naar Linux geport heeft, werkt mee aan een verbeterde driverondersteuning van de opensource driver voor AMD. Het bedrijf biedt zelfs zijn hele gamecollectie aan als stimulans voor ijverige Mesa-ontwikkelaars.

eON-ports

Met de eON-techniek van Virtual Programming kun je Windows-games met zo min mogelijk moeite en zonder dat je de te porten software zelf hoeft aan te raken, naar platforms als Mac of Linux overzetten. Bij deze wijzen van porten kan de gameproducent zich helemaal op de ontwikkeling van zijn product concentreren. Op het eind wordt met eON een laag over het kant-en-klare product gelegd. Deze laag onderschept de system-calls van het spel naar het besturingssysteem om toegang te krijgen tot de grafische kaart, het geheugen of andere systeemonderdelen en zet ze om naar de juiste Linux-equivalenten.

Met eON zijn prima ports tot stand gekomen, zoals die van Bioshock Infinite. Aan de andere kant was de performance van The Witcher 2 aanvankelijk niet goed. Als een spel met eON naar Linux geport is, wordt in de Steam-store Virtual Programming als ontwikkelaar van de Linux-versie genoemd. De volgende tips staan niet op de officiële helppagina’s. Aangezien er niet veel over de eON-techniek bekend is, werken ze wellicht niet in elke situatie.

eON: trage muis

In enkele Linux-games die met eON geport zijn, zoals Overlord of Overlord: Rising Hell, gedraagt de muis zich erg traag. De beweging van de muispijl verschijnt met een merkbare latentie op het beeldscherm. Muiskliks hebben bijna een volle seconde nodig om in het spel aan te komen. De oorzaak van het probleem is een te hoog ingestelde mouse-polling in de kernel. Deze wordt meestal automatisch geconfigureerd. De voor eON te hoge instelling – meestal een waarde van meer dan 125 Hz – zorgt bij enkele eON-ports voor de genoemde symptomen. Maar de Linux-kernel biedt interfaces om de mouse-polling aan te passen. Daarvoor heb je wel rootrechten nodig. De instelling geldt systeembreed en niet alleen voor eON-toepassingen.

Om te controleren op welke waarde de mousepolling ingesteld is, open je een terminalvenster en typ je:

cat /sys/module/usbhid/parameters/mousepoll

Het resultaat van dit commando moet een enkel getal zijn. Welke waarde voor welke pollingfrequentie staat zie je in de tabel ‘Mouse-polling’. Om de waarde aan te passen maak je in de directory /etc/ modprobe.d/ het bestand 99-custom.conf aan. De naam maakt niet uit, alle bestanden met de extensie ‘.conf’ worden gelezen, tenzij je distributie hier zijn eigen gang gaat. In dit bestand zet je de volgende regel:

options usbhid mousepoll=8

Om met de waarde te experimenteren en de juiste te ontdekken, vervang je het getal 8 aan de hand van de tabel links. Het probleem treedt blijkbaar op bij pollingrates van meer dan 125 Hz. Het nieuwe configuratiebestand zorgt ervoor dat de instelling bij de volgende keer opstarten geladen wordt. Om de waarde zonder reboot meteen aan te passen, laad je de kernelmodule opnieuw met het volgende commando als rootgebruiker:

modprobe -r usbhid && modprobe usbhid

Hiermee wordt de hele usb-hub opnieuw opgestart, muis en toetsenbord kunnen daarom even uitvallen. Bij het testen van het betreffende eON-spel kun je dan ontdekken of de instelling de gewenste uitwerking heeft.

eON: meerdere monitoren

Als je meerdere monitoren gebruikt, starten sommige Linux-games niet altijd op de juiste monitor op. De launchers van sommige Linux-ports hebben een optie om de monitor te selecteren, maar bij de eON-ports moet je het anders doen. Je moet dat dan aanpassen in de Gamesbibliotheek van Steam. Klik met de rechter muisknop op het spel en ga in het menu naar ‘Properties’. Via de knop ‘Set Launch Options’ kun je het spel dan instrueren om op de juiste monitor te starten. De regel

%command% --eon_force_display=0

zorgt dan dat het spel op de primaire monitor draait, omdat de telling op de ICT-manier bij 0 begint. Welke monitor de primaire is, kun je achterhalen met het commando

xrandr --current

Pas het cijfer in het bovengenoemde voorbeeld aan de juiste monitor aan.

Gamebestanden zoeken

Met het aanpassen van opstartscripts en configuratiebestanden kun je onder andere problemen bij het opstarten van een spel of launcher omzeilen. Maar dan moet je ze wel eerst kunnen vinden, want iedere gamefabrikant bepaalt zelf waar de bestanden terechtkomen. En niet alleen onder Windows zijn de scores, instellingen en scripts over meerdere mappen verdeeld. Veel Linux-games zetten hun data simpelweg in een map in de home-directory. Deze heeft de naam van het spel en is in het gunstigste geval ook nog met een punt voor de naam verborgen, bijvoorbeeld Minecraft.

Er zijn maar weinig uitgevers die zich houden aan de XDG Base Directory Specification. Deze bepaalt waar zulke directory’s moeten staan om de home-directory niet dicht te laten slibben. Precies gezegd bepaalt de specificatie bij welke variabele een programma naar het gewenste pad moet vragen. Heeft de gebruiker dit zelf niet gedefinieerd, dan gebruikt het programma de standaardwaarde – voor configuratiebestanden is dat de directory .config in de home-directory.

Als je je configuratiebestanden niet in de home-directory, maar ergens anders wilt verzamelen, moet je in het bestand /etc/environment met administratorrechten de volgende regel toevoegen:

XDG_CONFIG_HOME = /mnt/config

In ons voorbeeld zet dan elk programma dat de XDG Base Directory ondersteunt zijn configuratie voortaan in /mnt/config neer. Voorbeeldige ontwikkelaars zorgen ervoor dat de configuratie en scores niet direct in de home-directory, maar zoals de bedoeling is in de subdirectory ~/.config of in ~/.local/share terechtkomen. Zo staan bijvoorbeeld de configuratie- en logbestanden van het realtime strategiespel 0 A.D. in de directory ~/.config/0ad, terwijl de scores in ~/.local/share/0ad te vinden zijn.

Glxinfo laat behalve de ingebouwde grafische hardware ook zien welke versie van welke driver in gebruik is.

De via Steam geïnstalleerde boerderijsimulator-rpg Stardew Valley slaat de scores en opstartinstellingen op in ~/.config/ StardewValley, terwijl het spel zelf in ~/.local/share/Steam/steamapps/common/Stardew Valley staat. Zoals gebruikelijk staat het bijbehorende opstartscript ook in de directory van het spel. Variabelen voor gebruikerspecifieke gegevens zijn bijvoorbeeld XDG_DATA_ HOME en XDG_CACHE_HOME. De eerste is onder andere voor scores, ‘spelhistorie’ of favorieten van de gebruikers bedoeld.

Terug naar standaard

Als een variabele niet gedefinieerd is, wordt de standaardwaarde gebruikt. XDG_CONFIG_ HOME verwijst dan naar ~/.config, XDG_DATA_HOME naar ~/.local/share in de home-directory. Daar kun je kijken als de gamedirectory niet direct in de homedirectory te vinden is. De in de variabele XDG_CACHE_ HOME opgeslagen directory wordt vooral voor het bufferen van data gebruikt, waarvan het verlies geen ramp is. Daar vind je bijvoorbeeld foto’s of profielfoto’s van chatprogramma’s. Is deze variabele niet gedefinieerd, dan wordt .cache in de home-directory gebruikt.

Veel gameproducenten maken voor hun spel in de home-directory nieuwe directory’s aan.

Ontbrekende bibliotheken

Ontbreken er belangrijke bibliotheken, dan kan het gebeuren dat een spel niet eens opstart. Is de oorzaak niet duidelijk, dan kun je Linux-games of Steam vanuit een terminalvenster starten. In het gunstigste geval levert dat extra informatie op en foutmeldingen waar je wat mee kunt. Om de Steam-client te starten typ je in de console het commando steam. Ook games die via Steam zijn geïnstalleerd kun je rechtstreeks starten. Daarvoor moet je eerst uitvinden waar het uitvoerbare bestand of waar het bijbehorende opstartscript staat.

Starten van Linux-games op de commandline levert bruikbare foutmeldingen op zoals ‘error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory’. In dit voorbeeld heeft het spel functies nodig uit de bibliotheek SDL 2, die het in het bestand libSDL2-2.0.so.0 zoekt, maar niet kan vinden.

Kun je aan de hand van de foutmelding geen oplossing vinden, dan kun je de melding altijd nog in een zoekmachine kopiëren om forumposts te vinden die daarover gaan. Een mooi voorbeeld is OpenRCT2. Het klassieke spel Rollercoaster Tycoon 2 laat zich met de herimplementatie van de originele engine en de originele gamedata van Steam, GOG of de originele schijf gewoon onder Linux spelen. Onder openSuse 42.2 ontbreekt dan echter bijvoorbeeld een bibliotheek. Dit dient hieronder als voorbeeld.

Bibliotheken zoeken

Bij andere distributies of openSuse-versies kunnen andere bibliotheken of versies hiervan ontbreken. Ook Ubuntu vormt hierop geen uitzondering. De handelswijze is bij allemaal in principe hetzelfde. Je gebruikt alleen de package-manager van de betreffende distributie. Het spel hoeft na het downloaden alleen uitgepakt en met het uitvoerbare bestand gestart te worden. Lukt dat niet, open dan een terminal, ga naar de directory van OpenRCT2 en start het spel met het commando ./openrct2. Een foutmelding verraadt dat voor het starten van het spel het bestand libSDL2- 2.0.so.0 nodig is, maar niet gevonden wordt.

In het eenvoudigste geval is de ontbrekende bibliotheek gewoonweg niet geïnstalleerd. Zoek in de softwaremanager naar een geschikt pakket en installeer het. Bij openSuse doe je dat bijvoorbeeld met

sudo zypper in libSDL-2_0-0

Meestal ontbreekt er meer dan één bibliotheek. Het commando ldd gevolgd door het pad naar het uitvoerbare bestand verraadt welke bibliotheken een programma nodig heeft en laat zien welke er ontbreken. Let erop dat je geen startscript (met de extensie .sh) als parameter meegeeft, want ldd werkt alleen met uitvoerbare binaire bestanden.

Op de console geeft het systeem meer informatie.

Veel Linux-games zijn 32-bit programma’s en hebben overeenkomstige 32-bit bibliotheken nodig. ldd verwijst dan naar bestanden in directory’s die in hun naam ‘i386’ hebben staan. Installeer in dit geval de gewenste bibliotheek als 32-bit versie. Onder openSuse zoek je in het pakketbeheer gewoon naar een pakket waarvan de naam eindigt op ‘-32bit’. Onder Ubuntu moet je met

sudo dpkg --add-architecture i386

de 32-bit architectuur eerst nog aan het pakketbeheer toevoegen. Pas daarna kan het informatie over 32-bit pakketten leveren en eventuele afhankelijkheden oplossen. Vervolgens installeer je de 32-bit versie van een pakket met

sudo apt-get install pakket:i386

De lange uitvoer van ldd kun je met het commando grep op de expressie ‘not found’ doorzoeken, zodat alleen de ontbrekende bibliotheken worden getoond. Deze moet je dan zoals boven beschreven installeren.

Linken naar getallen

Als het spel na het installeren van alle benodigde bibliotheken nog niet wil starten, moet je eens goed kijken naar de versienummers. Bij sommige programma’s maakt het versienummer niet uit. Zij noemen als afhankelijkheid alleen de bestandsnaam, bijvoorbeeld libzip.so. Sommige functies zitten pas vanaf een bepaald versienummer in een bibliotheek. Welke versie je nodig hebt, kun je vaak in de foutmeldingen zien. Is de gezochte versie in het pakketbeheer beschikbaar, dan kun je die gewoon installeren.

OpenRCT2 heeft bijvoorbeeld libzip. so.4 nodig, die onder Ubuntu 17.04 in de repository’s staat. Op het openSuse-systeem is alleen libzip.so.2 geïnstalleerd. Als oplossing kun je proberen een symbolische link met de naam libzip.so.4 te maken, die naar de aanwezige libzip.so.2 verwijst. Als er geen functies gevraagd worden die alleen in versie 4 aanwezig zijn, dan kan dat genoeg zijn om het spel te starten. Denk er wel aan dat ook hier de link voor het hele systeem geldt. Daarom kun je de omgevingsvariabele LD_ LIBRARY_PATH beter alleen voor het spel instellen. Daarover straks meer.

Bibliotheken delen

De Linux-kernel kan de geheugengebieden van gezamenlijk gebruikte bibliotheken recyclen, zodat een bibliotheek maar een keer ruimte in het RAM in beslag neemt, ongeacht hoeveel programma’s hiervan gebruik maken. Zulke bibliotheken worden ook ‘shared libraries’ of ‘shared objects’ (vandaar de extensie .so) genoemd. Linux-games brengen vaak eigen bibliotheken mee, maar grijpen vaak toch nog terug op een groot aantal voorgeïnstalleerde bestanden. Voor de ontwikkelaars maakt het het werk en het testen een stuk eenvoudiger als ze van begin af aan kunnen vertrouwen op een vaste set programmabibliotheken.

Om deze reden noemen ontwikkelaars van Linux-games vaak maar een paar ondersteunde platforms, als het al niet alleen Ubuntu en SteamOS zijn. Heeft een spel een aangepaste of nieuwere versie van een bibliotheek nodig dan de distributies hebben, dan leveren ze die met de spellen mee. Af en toe levert dat echter problemen op met de bibliotheekversies van het besturingssysteem of van Steam. In het bestand /etc/ld.so.conf staat in welke directory’s Linux naar bibliotheken zoekt.

Dit commando laat alleen zien wat er voor het progamma nog ontbreekt.

Maar je moet het pad naar afzonderlijke bibliotheken voor een bepaald spel hier niet inzetten. Het volgende spel moet ten slotte ook weer met zijn eigen set bibliotheken kunnen werken. In plaats daarvan kun je de omgevingsvariabele LD_LIBRARY_PATH instellen. Deze is alleen bij het opstarten van het spel nodig:

LD_LIBRARY_PATH=/home/gebruiker/— .steam/steam/steamapps/common/mijnspel

Pas het pad naar het spel aan. Vaak zetten Steam-games een startscript in de gamedirectory in /home/gebruiker/.steam/ steam/steamapps/common/mijnspel. Dan kun je de bovenstaande regel beter hieraan toevoegen. Bij bestandsfouten kan het gebeuren dat het spel niet meer wil starten. In dat geval kan de Steam-client de bestanden weer herstellen. Open dan met een rechtermuisklik op het spel het snelmenu en kies ‘Eigenschappen / Lokale bestanden / Integriteit van spelcache controleren’. Een nadeel van deze oplossing is dat een update van het spel het startbestand wellicht zal overschrijven. Maar als je de variabele in plaats daarvan in de Steam-startopties zet, overleeft de instelling ook een update.

Startopties voor Steam in Linux

Aan Steam-games kun je extra parameters meegeven om moeilijkheden te omzeilen. Om zulke startopties toe te voegen, klik je in de Steam-bibliotheek met de rechter muisknop op het spel en kies je ‘Eigenschappen / Startopties instellen’. Je krijgt dan een invoerveld. Om te zorgen dat het spel later nog opstart, moet de toevoeging behalve de extra opties steeds %command% bevatten. Deze optie is handig bij bijvoorbeeld Rocket League onder openSuse en Fedora. Het spel kan de versleutelingscertificaten niet vinden op de daarvoor vast ingestelde plaats op de harde schijf. De fout treedt aan het licht omdat je geen verbinding met multiplayerservers kunt opbouwen.

In veel gevallen is het voldoende om het zoekpad voor de certificaten via de onderstaande startoptie aan te vullen:

SSL_CERT_DIR="/etc/ssl/certs" %command%

Rocket League verwacht de bestanden desondanks toch onder /etc/ssl/certs/cacertificates. crt. Daarom moet je daar een symbolische link aanmaken:

sudo ln -s /etc/ssl/ca-bundle.pem /etc/ssl/certs/ca-certificates.crt

Ondersteunt een spel eigen commando’s zoals dat bij games op basis van de Unityengine gebruikelijk is, dan staan deze achter %command%:

%command% --fullscreen

De hier geplaatste commando’s worden bij elke start van het betreffende spel uitgevoerd.

In de Steam-client kun je extra startopties toevoegen.

Steam en grote schijven

Als Steam-games op een harde schijf staan met een capaciteit van meer dan 1 TB en het bestandssysteem XFS, dan kan het zijn dat ze niet willen starten of meteen weer afsluiten. Start je het spel vanaf de console, dan krijg je te maken met ‘segfaults’ of script-errors, ontbrekende bestanden en andere vreemde zaken. Heeft het spel in een eerdere versie wel gedraaid, dan zou bug 1685 uit Valves Github-bugtracker de schuldige kunnen zijn.

Linux-games die daardoor getroffen zijn, zijn bijvoorbeeld Civilization V, enkele Source Engine-games zoals Counter Strike Source, Portal 2, Left 4 Dead 2 en Team Fortress 2, maar ook titels van Paradox Interactive zoals Crusader Kings 2 en Europa Universalis 4. De grootte van de inodes waarop de gegevens op de harde schijf opgeslagen zijn, vereisen 64 bit op bestandssystemen met meer dan 1 TB. In combinatie met XFS loop je dan tegen problemen aan. Meestal ben je van het probleem verlost als je het spel opnieuw installeert (niet kopieert) op een ander bestandssysteem zoals Ext4 of Btrfs. Een andere oplossing is tot nu toe helaas niet bekend.

Regionale instellingen bij Unity-games

Unity is een erg populaire game-engine. Hiermee hebben de ontwikkelaars een laagdrempelige instap en ondersteuning voor verschillende platforms, zoals Windows, macOS, Linux, iOS, Android etc. Met Unity zijn titels als Kerbal Space Program, Firewatch, Cities: Skylines, 7 Days To Die, Rimworld en nog veel meer ontwikkeld. Bij enkele in C# geschreven Unity-games treden steeds weer problemen op met de spraak- en regionale instellingen (locales) die ook voor het systeem gelden. Vergeten ontwikkelaars bijvoorbeeld het getalformaat te definiëren, dan kan dat tot fouten of zelfs crashes leiden. De oplossing voor het probleem is simpel. Voeg de volgende regel aan de Steam launch options van het spel toe:

LC_ALL=C %command%

Verkeerde monitor bij Unity-games

Enkele Unity-games bieden geen opties voor de keuze van de monitor bij multimonitor-set-ups. Met grote waarschijnlijkheid wordt dan steeds de verkeerde monitor gekozen, omdat de ontwikkelaars de volgende instelling in het configuratiebestand zetten:

<pref name="UnitySelectMonitor" type="int">-1</pref>

De waarde -1 zorgt ervoor dat het spel op een niet-primaire monitor start. Meestal staan de configuratiebestanden van Unitygames in ~/.config/unity3d/bedrijfsnaam/ game-naam/prefs. De ruimtesimulatie Kerbal Space Program zet zijn configuratie bijvoorbeeld in ~/.config/unity3d/Squad/ Kerbal Space Program/prefs/ .

Wanneer je in de configuratie van het spel de waarde van -1 in 0 verandert, start het spel voortaan op de primaire monitor. Maar veel Unity-games ondersteunen deze instelling niet en starten gewoon toch op de andere monitor.

Feral-launcher

Linux-games die door Feral Interactive naar Linux geport zijn, bevatten in de regel een Feral-launcher, die een paar handige functies heeft. Onder andere kun je daarmee al voordat het spel start grafische instellingen aanpassen en extra startopties meegeven. Enkele versies nemen ook het beheer over van zogenaamde mods. Dit zijn uitbreidingen op het eigenlijke spel.

Games die door Feral Interactiv geport zijn, hebben meestal een eigen launcher. Daarin kun je voor het starten van het spel instellingen zoals de resolutie en de gewenste monitor aanpassen.

Als het spel de nieuwe grafische interface Vulkan al ondersteunt, dan kun je dat hier activeren – als je de juiste driver hebt tenminste. Als het spel niet wil starten omdat de launcher niet wil starten, dan kunnen extra startopties in de Steam-bibliotheek helpen. Voeg hier de volgende parameter toe

LANG=C %command%

en start vervolgens het spel. Verschijnt dan de Feral-launcher, dan kun je het automatisch opstarten ervan uitzetten door het vinkje voor ‘Always show this dialog’ te verwijderen en de launcher weer te sluiten. Het spel moet dan zonder problemen starten. Om deze instelling weer ongedaan te maken, druk je bij het starten van het spel op de Ctrl-toets. Dan start de Feral-launcher en kun je met het activeren van de optie ‘Always show this dialog’ de autostart weer herstellen.

(Bernd Ritter, Kevin Rohland, Jan Mulder, c’t magazine 12-2017)

 

Meer over

Gaming

Deel dit artikel

Alieke van Sommeren
Alieke van SommerenTypen geleerd op een 8086 met DOS 5.0 en al vroeg zelf aan het pc-(ver)bouwen geslagen. Speelt graag pc-games, houdt van gadgets en klikt ook wat rond op een MacBook.

Lees ook

Chat GPT 4 gebruiken: dit is het verschil tussen GPT-3 & GPT-4

De lancering van GPT-4 heeft de intelligentie van ChatGPT naar een hoger niveau gebracht maar hoe kun je effectief de nieuwe Chat GPT gebruiken en wat...

Raspberry Pi als NAS-systeem gebruiken? Dit moet je weten!

Wist je dat je een Raspberry Pi als Network Attached Storage (NAS) kunt gebruiken? Zo voldoet de Raspberry Pi 4 aan de belangrijkste eisen om dit te k...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er