Original-URL des Artikels: https://www.golem.de/news/steam-play-und-proton-wie-valve-windows-spiele-auf-linux-bringen-will-1812-138309.html    Veröffentlicht: 19.12.2018 09:08    Kurz-URL: https://glm.io/138309

Steam Play und Proton

Wie Valve Windows-Spiele auf Linux bringen will

Seit 2010 können Linux-Nutzer über Steam Spiele für ihr Betriebssystem kaufen. Insbesondere viele große Blockbuster-Titel fehlen jedoch bisher. Steam-Betreiber Valve möchte das mit einer neuen Technik namens Proton ändern. Wir erklären, wie das geht.

Mit der Technik Proton für den Steam-Client können Windows-Spiele unter Linux einfach ausgeführt werden, das verspricht zumindest Hersteller Valve. Dieses Vorgehen hat den Vorteil, dass die Entwickler ihre Spiele nicht zeitaufwendig auf das freie Betriebssystem portieren müssen und Linux-Spieler auf einen Schlag in den Genuss von unzähligen weiteren Spielen gelangen können. Proton ist so in den Steam-Client integriert, dass Spieler dort nur das gewünschte Spiel aussuchen und starten müssen. Was im ersten Moment für viele Linux-Nutzer überraschend klingt, basiert auf einem simplen und ausgefallenen Trick: Hinter Proton steckt nichts anderes als eine modifizierte Fassung von Wine.

Wine als Zwischenschicht

Das Wine-Projekt entwickelt bereits seit den 1990er Jahren emsig eine Software, die unter Linux eine Laufzeitumgebung für Windows-Programme bereitstellt. Sie gaukelt Windows-Programmen vor, sie würden auf dem proprietären Betriebssystem laufen. Dazu fängt Wine die vom Spiel aufgerufenen Windows-Funktionen ab und übersetzt sie in passende Linux-Pendants. Möchte beispielsweise die Windows-Anwendung eine Datei auf Laufwerk C: öffnen, liefert Wine die passende Datei aus dem Heimatverzeichnis zurück. Wine ist damit explizit kein Emulator, was sich auch im Namen widerspiegelt: Das Akronym steht für "Wine Is Not an Emulator".

Durch die Arbeitsweise laufen Windows-Programme unter Wine idealerweise fast so schnell wie unter Windows selbst. Dies ermöglicht auch den Start von aufwendigen und ressourcenfressenden Spielen. Seit einiger Zeit unterstützt Wine auch die DirectX-Schnittstelle, so dass auch viele große Windows-Spiele unter Wine laufen. Dies nutzt auch Valve aus: Möchte ein Steam-Nutzer unter Linux ein Windows-Spiel aufrufen, startet der Steam-Client das Spiel einfach mit Wine. Um die Konfiguration oder spezielle Einstellungen muss sich der Spieler nicht weiter kümmern.

Veredelter Wein

Valve hat Wine allerdings an einigen wichtigen Stellen modifiziert und nennt das Ergebnis Proton. Unter anderem unterstützt Proton Steamworks OpenVR, es ermöglicht folglich auch die Nutzung von VR-Spielen. In den Vollbildmodus geschaltete Spiele passen sich zudem automatisch an die native Monitorauflösung an. Des Weiteren bindet Proton automatisch alle von Steam unterstützten Controller ein. Da Proton zwischen Spiel und Betriebssystem vermittelt, verstehen sich einige Spiele sogar mit mehr Controller-Modellen, als eigentlich vom Entwickler vorgesehen. Abschließend hat Valve noch die Leistung optimiert. Vor allem Spiele, die Multithreading nutzen, sollen deutlich flotter laufen als mit der normalen Wine-Version.

Die derzeit aktuelle Proton-Version basiert noch auf Wine 3.16, aktuell sind die Wine-Entwickler allerdings schon bei Version 3.21. In beiden Fällen handelt es sich um eine Entwicklerversion von Wine. Sie bietet aktuellere Funktionen als die aktuell stabile Version 3.0.4, kann aber auch noch Fehler enthalten. Proton ist zudem in Zusammenarbeit mit Codeweavers entstanden, die eine kommerzielle Fassung von Wine vertreiben und das Wine-Projekt maßgeblich unterstützen. Auch Valve reicht seine Änderungen an die Wine-Entwickler zurück.

Wichtiger als die benutzerfreundliche Wine-Integration ist jedoch die Unterstützung für die Windows-Grafikschnittstellen, die ja vor allem für das Spiele-Erlebnis ausschlagend sind.

Grafik auf Vulkan-Basis

Da die DirectX-Schnittstelle nur unter Windows existiert, muss Wine sämtliche DirectX-Aufrufe auf eine andere Schnittstelle übersetzen. Standardmäßig nutzt Wine dazu OpenGL, was jedoch abhängig von den jeweiligen Spielen zu leichten bis sehr starken Leistungseinbußen führte. Ändern wollen dies die Entwickler von DXVK. Wie die Buchstabenkombination leicht andeutet, handelt es sich dabei um einen Layer für Wine, der Direct3D-Aufrufe der Versionen 10 und 11 auf die Vulkan-Schnittstelle übersetzt. Letztgenannte arbeitet deutlich flotter, womit wiederum Spiele fast die gleiche Geschwindigkeit wie unter Windows erreichen sollen. Aus diesem Grund nutzt auch Proton DXVK.

Proton stellt an das Linux-System einige spezifische Anforderungen. Dies betrifft in erster Linie die Grafikkartentreiber. Besitzer einer Nvidia-Karte müssen die proprietären Treiber ab Version 396.54 installiert haben. Wer einen Grafikchip von AMD oder Intel verbaut hat, benötigt Mesa ab Version 18.2 und mindestens LLVM 7. Bei älteren Versionen der genannten Softwarekomponenten laufen Spieler Gefahr, dass sich DirectX-11-Spiele aufhängen. In jedem Fall muss Python in Version 3 installiert sein.

Über SteamVR lassen sich auch VR-Spiele via Proton spielen. Dazu sind teilweise weitere Voraussetzungen zu erfüllen, die eine eigene Seite auflistet. So müssen auf AMD-Systemen mindestens Mesa 17.3 mit Vulkan-Unterstützung und der Linux-Kernel 4.13 laufen. Die Entwickler von DXVK empfehlen darüber hinaus aktuellere Versionen der genutzten Grafiktreiber.

Einfach zu testen

Um Proton auszuprobieren, genügt die Installation des aktuellen Steam-Clients, der auf die aktuelle Beta-Version des Clients aktualisiert werden muss. Dazu wechselt man über die Einstellungen zum Abschnitt Account und klickt dort neben Betateilnahme auf Ändern. Im Fenster stellt man Steam Beta Update ein, bestätigt mit OK und startet den Client einmal neu. Anschließend kann man in den Einstellungen im Abschnitt Steam Play Proton auswählen, indem man einen Haken vor Enable Steam Play for all Titles setzt. Nach der Bestätigung mit OK muss man den Client neu starten.

Es genügt jetzt, in der eigenen Bibliothek ein Spiel zu starten, für das kein nativer Linux-Port bereitsteht. Eine erste kurze Liste mit 27 offiziell laufenden Spielen liefert Valve in seiner Ankündigung von Proton. Dazu zählen unter anderem Bejeweled 2 Deluxe, Doom (auch in der Version von 2016), Final Fantasy VI, Into The Breach, Mount & Blade, Star Wars: Battlefront 2, Tekken 7 und Tropico 4.

Neben diesen offiziell unterstützten Spielen laufen auch noch viele weitere. Alle funktionierenden Spiele versucht die Seite ProtonDB zu katalogisieren. Dabei handelt es sich um ein inoffizielles Community-Projekt, das allerdings auch eventuelle Probleme und mögliche Workarounds nennt. Als Platinum gekennzeichnete Spiele arbeiten reibungslos mit Proton zusammen, bei Gold- und Silber-Spielen hakt es an der ein oder anderen Stelle. Wine-Nutzer sollten dieses Konzept aus der App-DB von Wine kennen, an der sich dieser Aufbau offensichtlich orientiert.

Probleme bereiten vor allem jene Spiele, die einen aufwendigen Kopierschutz oder Anti-Cheat-Verfahren einsetzen. Letzteres ist teilweise direkt auf die Verwendung von DXVK zurückzuführen, das prinzipbedingt einige der DirectX-DLL-Dateien ersetzt. Vor allem verschiedene Multiplayer-Spiele erkennen modifizierte DirectX-Bibliotheken, werten dies als Manipulationsversuch und verweigern deshalb den Start.

Von Tests einzelner Spiele oder gar Benchmarks sehen wir derzeit noch ab, da wir davon ausgehen, dass die ProtonDB wesentlich umfangreicher und damit hilfreicher für Nutzer ist, als wir dies in einem Artikel ausführen könnten.

Quelloffene Zukunft

Proton liegt derzeit erst in einer Beta-Version vor. Der Steam-Client bringt verschiedene Proton-Versionen mit, zwischen denen man in den Steam-Play-Einstellungen wechseln kann. Dass Proton bereits recht gute Ergebnisse liefert, ist in erster Linie der langjährigen Arbeit der Wine-Entwickler zu verdanken. Proton erschließt jedoch Linux-Spielern mit einem Mausklick zahlreiche bekannte Spiele.

Bisher ist das natürlich nur auf die Verwendung mit Steam beschränkt, so dass Titel wie Battlefield 5 damit nicht verfügbar sind. Die Vorgehensweise von Proton, also die Verknüpfung von Wine und DXVK, zeigt Nutzern aber auf, wie andere Spiele außerhalb das Steam-Universums mit verfügbaren Mitteln auch unter Linux genutzt werden können. Außerdem sind Proton selbst und alle von Valve dazu entwickelten Komponenten Open Source, so dass die Technik leicht von einer Community angepasst werden kann, sofern Bedarf dafür besteht.  (tsh)


Verwandte Artikel:
Jugene berechnet Masse von Kernbausteinen   
(03.12.2008, https://glm.io/63920 )
PC-Spieleshop: Discord will Provision auf 10 Prozent senken   
(17.12.2018, https://glm.io/138287 )
Freier Windows-Nachbau: ReactOS 0.4.9 baut sich selbst   
(24.07.2018, https://glm.io/135653 )
Steam Play: Valve macht mehr Spiele für Linux kompatibel   
(22.08.2018, https://glm.io/136136 )
Onlinespiele: Epic Games baut Cross-Play-Komplettlösung für Entwickler   
(13.12.2018, https://glm.io/138225 )

© 1997–2019 Golem.de, https://www.golem.de/