Wie aus dem Nichts hat Valve die frohe Kunde überbracht: Mit der verbesserten Version von ‚Steam Play‘ lassen sich nun auch einige Windows-only-Games unter Linux spielen. Wie das funktioniert und ob das ein Grund zum Feiern ist, erläutern wir in unserem Artikel.

(Windows-) Spiele unter Linux, der Stand bisher

Mit über 3000 Spielen mit Linux-Support gibt es mittlerweile auch für Spieler unter Linux genug Auswahl bei der Suche nach einem passenden Spiel. Dennoch gibt es immer wieder Windows Spiele, die man zwar gerne spielen wollen würde, die aber keine native Linux-Version anbieten.

Zwar gibt es dank Projekte wie Wine die Möglichkeit auch Windows-Programme auf POSIX-konforme Betriebssysteme wie Linux oder macOS laufen lassen zu können, dennoch benötigt dieser Ansatz je nach Anwendung häufig viel mühselige Bastelei um die gewünschte Software benutzen zu können. Oft fehlen so benötigte DLLs, es müssen Bibliotheken nachinstalliert werden oder eine Anti-Cheat-Software versperrt uns den Weg komplett, da diese Schutzmaßnahme unter Wine einfach nicht laufen will. Zudem verlieren wir bei der Übersetzung immer ein wenig an Performance, was sich beispielsweise in geringeren Frameraten widerspiegelt. Trotz den Problemen gibt es einige Spiele welche sehr gut bis perfekt in der Kompatibilitätsschicht Wine laufen können, wie etwa Starcraft 2, zu sehen an einem entsprechenden Platin- oder Gold-Raking in der Wine AppDB.

Die Wine Application Database, oder kurz AppDB, ist eine öffentliche Liste für die Kompatibilität von verschiedenen Programmen unter Wine. Nutzer können ihre Erfahrungen mit Applikation X unter Wine teilen und gegebenenfalls auf Fehler hinweisen. Die AppDB ist für Linux-Spieler häufig ein guter Anhaltspunkt, da man so sehen kann, ob jemand bereits mit dem gewünschten Spiel Erfolg mit Wine hatte, oder ob man sich die Arbeit aufgrund eines Kopierschutzes wie Denuvo sparen kann.

DXVK – performanteres Wine dank Vulkan

Neben Wine gibt es außerdem noch das DXVK-Projekt, das grafiklastige Anwendungen die unter Wine laufen noch performanter machen soll. Hierfür werden anders als bei der normalen Ausführung von Wine Direct3D Aufrufe nicht etwa auf OpenGL-Aufrufe, sondern auf Vulkan-Aufrufe übersetzt. Vulkan ist eine aktuelle plattformübergreifende Grafik-Schnittstelle und soll die allmählich nicht mehr ganz frische Schnittstelle OpenGL ablösen. Das liegt vor allem daran, dass OpenGL noch aus einer Zeit kommt, wo es noch keine Multikernprozessoren gab. Vulkan hingegen kommt mit deutlich besserer Lastverteilung auf verschiedenen Threads bzw. Kerne daher und ermöglicht somit bessere Performance.

Unter anderem ist es so mit DXVK mittlerweile möglich, auch das Grafikwunder Witcher 3 mit guter Framerate (bei entsprechender Hardware) unter Linux spielen zu können.

Einfaches Installieren und Konfigurieren mit Lutris

Zuletzt wurde das Installieren von Windows-only-Spielen unter Linux dank dem Tool Lutris noch attraktiver, da hier Benutzer ihre Installations- und Konfigurationsroutine für Wine und DXVK zu einem Windows-Spiel veröffentlichen können. Andere Spieler können dann einfach Spiele aus einer großen Bibliothek wie etwa auch bei Steam auswählen und komfortabel mit wenigen Klicks installieren. Das macht, vor allem für weniger erfahrene Linux-Spieler, oder einfach Anwender, die nicht die Lust oder Zeit haben, sich mit Wine oder DXVK auseinanderzusetzen, es möglich, auch unter Linux nicht auf Windows-only-Spielen verzichten zu müssen.

Das große ‚Steam Play‘ Update

Steam Play, so nennt Valve angebotene Spiele mit Cross-Plattform-Support, hat nun ein großes Update erhalten, genannt Proton. Mit der Softwarelösung Proton ist nun auch unter Steam möglich, Windows-only-Spiele einfach unter Linux spielen zu können. Dabei geht das Tool Proton sogar noch weiter und enthält neben Wine und Teilen von DXVK zusätzlich eine Vielzahl eigener Verbesserungen, unter anderem natürlich für die Integration mit der eigenen Plattform Steam, aber auch in Hinsicht der Performance wie etwa der esync-Performance-Patch für Wine. Unter anderem hat Valve dafür mit den Entwicklern von CodeWeavers (Wine) und DXVK zusammengearbeitet.

Die folgenden Punkte listet Valve als Verbesserungen von Proton im Vergleich zum unveränderten Wine:

  • Windows-Spiele ohne eigene Linux-Version können nun im Steam-Client für Linux installiert und gestartet werden, inklusive nativer Steamworks- und OpenVR-Unterstützung.
  • Implementierungen von DirectX 11 und 12 basieren jetzt auf Vulkan, was die Kompatibilität von Spielen erhöht und Leistungseinbußen reduziert.
  • Verbesserte Vollbildunterstützung: Spiele werden im Vollbildmodus nun nahtlos an den gewünschte Bildschirm angepasst, ohne dass die native Monitorauflösung geändert oder eine virtuelle Anzeige geschaffen werden muss.
  • Bessere Unterstützung von Controllern: Spiele erkennen jetzt automatisch alle von Steam unterstützten Controller. Es dürften sogar mehr Modelle reibungslos funktionieren, als das Spiel in der Originalversion unterstützen würde.
  • Deutlich erhöhte Leistung von Spielen mit Multithreading im Vergleich zur Vanilla-Version von Wine.

Unter anderem wird, wie von vielen vermutet, DXVK von Valve finanziert, was sich beispielsweise durch das systematische Schließen von Themen bezüglich Spenden und anderen Themen durch den Entwickler bemerkbar gemacht hat. Valve profitiert natürlich von weiteren Entwicklungen bei der Übersetzungen von Direct3D- zu Vulkan-Aufrufen, wie sie in der aktuellen Ankündigung erklären.

Was konkret bringt mir Proton?

Proton bringt aktuell (in Steam) nur Linux-Spielern was, die gerne Windows-only-Spiele auch unter Linux spielen möchten. Zum aktuellen Zeitpunkt unterstützt Steam Play nur eine handvoll Spiele wie etwa Mount & Blade, das aktuelle Doom, Payday: The Heist und Tropico 4, sowie VR Titel wie Doom VFR oder Google VR, mehr soll aber bald folgen.

Aktuell sind dies alles Spiele, die bereits unter Wine ggf. zusätzlich mit DXVK schon nahezu perfekt liefen. Der große Vorteil jedoch hier ist, das die Spiele alle mit einem Klick unter Steam direkt aus der Bibliothek installiert werden können. Nicht einmal unschöne Windows-Fenster, wie etwa bei der manuellen Installation mit Wine, ploppen auf, alles läuft automatisiert und rund ab – so soll das sein.

Wir haben’s ausprobiert

Wir haben das neue Steam Play mit Proton bereits für die beiden Spiele Tropico 4 und Payday 1 ausprobiert. Bei Payday: The Heist lief alles butterweich und ohne Probleme. Dafür gab es bei Tropico 4 einige Probleme mit der Tastatur, so konnten wir die Sicht nicht mit den Pfeiltasten ändern oder mussten uns mit einer englischen Tastatureinstellung abärgern. Ganz perfekt ist es also noch nicht, dennoch ein großer Schritt.

Ganz Experimentierfreudige – ja ich meine euch, die schon seit Jahren mit unterschiedlichsten Wine-Konfigurationen herum tüfteln – dürfen Proton auch für noch nicht unterstützte Spiele nutzen. Das soll laut Heise auch schon ganz gut funktionieren, so war das Redaktionsteam in der Lage das beliebte Survival-Spiel Raft spielen zu können, was leider keinen Linux-Support mehr besitzt.

Kann ich jetzt alles Spielen?

Wer jetzt aber denkt, man könne ohne Probleme jedes Windows Spiel unter Linux zum Laufen kriegen, der irrt. Zwar ist Proton schon eine Glanzleistung, dennoch sollte man keine Wunder erwarten. Wer Spiele findet, die bereits laut Wine AppDB gut laufen sollen, der hat relativ hohe Chancen, dass diese auch unter Linux laufen, wenn auch natürlich immer mit einem mal höheren und mal geringeren Performanceverlust. Hingegen Spiele, welche nicht einmal in der AppDB zu finden sind oder ein ganz schlechtes Ranking besitzen, werden mit hoher Wahrscheinlichkeit auch nicht mit Proton laufen, sofern nicht Valve diese offiziell unterstützt.

Als Pendant zur AppDB von Wine gibt es kürzlich nun auch die Website spcr, welche uns wie die AppDB ermöglicht nach Spielen zu suchen und eine Art Bewertung zur Funktionsweise zu erhalten. Dabei begrenzt sich spcr aber natürlich nicht auf die Verwendung von Wine, sondern bezieht sich auf alle in Proton über Steam Play verwendeten Technologien.

Unser Zufallsexperiment

Wir haben in unserem Test einfach mal ein beliebiges Steam-Spiel wie etwa Phantom Trigger genommen und es unter Linux mit Steam Play (für nicht unterstützte Spiele) installiert. Das Spiel lies sich zwar überraschender Weise starten, spielen konnten wir es aufgrund Fehler bei der Darstellung und der Steuerung dennoch nicht.

Hingegen das Spiel Virginia, was laut Wine AppDB auch sehr gut laufen soll – zumindest die GOG Version – lief auch bei uns problemlos. Es scheint außerdem so, als könnte Proton fehlende Pakete automatisch erkennen. Zumindest erklären wir uns so, dass für Virginia automatisch 4 Windows-Bibliotheken nachinstalliert wurden.

Eine Bitte an die Spiele-Entwickler

Ein wenig Kritik müssen wir dennoch üben. Zwar ist die aktuell noch in der Beta steckende ‚Steam Play‘ Version mit Proton schon eine geniale Lösung, die uns in der Zukunft sicher einige Windows-Titel auch unter Linux bescheren sollte, dennoch löst dies nur teilweise das Problem mit den Spielen unter Linux. Es ist mehr ein Workaround für unter anderem (alte) Spiele, die keine Linuxversion mehr sehen werden. Dennoch sollten Entwickler sich nicht drauf ausruhen und ihre Spiele deshalb nicht für Linux portieren, weil „das ja mit diesem Steam Play dann auch unter Linux geht“. Native Lösungen sind immer besser, Systeme wie Proton oder Wine sollten nur im Notfall benutzt werden. Vor allem bei kleineren Indie-Entwicklern kann ich beispielsweise verstehen, wenn das nötige Geld für eine Linuxversion einfach fehlt. Hierbei kann ich mich gerne damit noch anfreunden.

Auch ist es toll, dass Steam alle ihre fertigen Entwicklungen Open-Source auf der Plattform GitHub veröffentlicht. Man sollte aber dennoch nicht vergessen, dass Steam mit der Steam-Play-Integration natürlich ein weiterer Schritt ist, Benutzer an das eigene Eco-System zu binden.

Wie kann ich jetzt auch Proton nutzen?

Am einfachsten, und für die meisten Benutzer auch am sinnvollsten ist es, Proton über Steam zu benutzen. Nachdem Proton aktuell noch in der Beta ist, muss dafür der Steam-Beta-Client-Gruppe auf Steam beigetreten werden, damit man dann Zugriff auf den Beta Build des Steam Clients erhält.

Anforderungen für Proton

Dennoch sollte davor zumindest ein grober Blick auf die offizielle Ankündigung von Valve geworfen werden. Unter anderem werden in der Mitteilung einige Fragen beantworten, sowie die Anforderungen für Proton erwähnt.

Kurz gesagt: man benötigt mindestens die proprietären NVIDIA Treiber der Version 396.51 oder die Mesa-Treiber der Version 18.2.0 um alles problemlos nutzen zu können. Außerdem sollte die Menge an möglicher File-Deskriptoren erhöht werden, um den esync Performance-Patch für Wine nutzen zu können.

Sofern

ulimit -Hn

eine geringe Zahl wie etwa 4096 auspuckt, sollte man die Datei /etc/security/limits.conf editieren und folgende Zeile hinzufügen:

* hard nofile 1048576

Wer systemd nutzt (Standard bei Ubuntu/Mint wie auch SteamOS), der könnte das Problem haben, dass systemd diese Einstellung wieder überschreibt. Lösen lässt sich dies durch hinzufügen folgender Zeile in die Dateien /etc/systemd/system.conf und /etc/systemd/user.conf:

DefaultLimitNOFILE=1048576

Danach bestenfalls den PC neu starten und ihr seid bereit für Proton. Mehr Informationen zu esync gibt es in README dazu.

Ein letztes Wort zu macOS

Zwar wird macOS aktuell von der Steam-Funktionalität noch nicht unterstützt, dennoch ist mittel- bis langfristig zu erwarten, dass auch macOS diese Funktionalität bekommen sollte, sofern das Projekt unter Linux Früchte trägt. Wir vermuten dies vor allem deshalb, weil Valve auch Arbeit in das MoltenVK-Projekt gesteckt hat und dieses auch in das Repo von Proton hinzugefügt bzw. verlinkt hat.

MoltenVK macht ähnliche Dinge wie DXVK, jedoch mit dem großen Unterschied dass hier Vulkan-Aufrufe auf Apple’s Grafik-Schnittstelle Metal übersetzt werden. Dies ist vor allem nötig, da Apple sich von OpenGL abgewandt und ihre eigene Grafik-Schnittstelle (Metal) entwickelt hat, vermutlich weil ihnen der Wechsel von OpenGL zu einem neuen Standard zu lange gedauert hat.

4 KOMMENTARE

  1. Also DOOM habe ich damit schon durchgespielt. Easy, ist ja ein Vulkan-Spiel. Im Moment bin ich mit Prey beschäftigt (gab’s damals zu meinem MoBo dazu) und habe in ca. 20 Stunden Spielzeit noch keinen einzigen Crash erlebt. Abgesehen davon läuft es mit DXVK angenehm flüssig, auch mit höchsten Details. Kurz angetestet habe ich noch Dishonored 2 (eher hakelig, aber noch nicht mit 3.16 getestet), Fallout 4 (läuft gut soweit ich das beurteilen konnte) und Skyrim SE (analog zu Fallout 4).

    Es gab Zeiten, da hätte ich im Traum nicht daran gedacht, solche Titel ohne Probleme spielen zu können.

  2. Vulkan…
    Der Fluch, wenn man eine Hybrid-Karte hat. Oder weiß einer von euch, wie ich meine Nvidia GeForce 555m mit Vulkan zum Laufen bekomme? (Antergos)

    • Meinst du mit Hybrid-Karte sowohl eine Intel als auch eine Nvidia? Vulkan ist dabei nämlich auch problemlos möglich.
      Ich nutze dafür unter Antergos einfach Antergos-Prime (https://github.com/Antergos/antergos-prime), dass erlaubt komplettes De/Aktivieren einer Grafikkarte und ermöglicht dadurch vollen Zugriff auf die gewünschte GPU und kein durchreichen wie etwa mit primusrun etc.

      Mehr Infos findest du dazu btw in meinem GitHub-Repo (das ist im Grunde das was im Antergos Repo ist inkl. einer detaillierten Anleitung): https://github.com/konstantingoretzki/AntergosPrime
      Ich hatte selbst mit Antergos und der Suche nach einer Alternative zu Tools wie unter Ubuntu zum GPU switchen lange zu kämpfen. Hab dann nach langer Suche ein tolles Skript gefunden, welches ich nur minimal angepasst habe. Beachte aber, dass das Skript aktuell nur in Verbindung mit SDDM ootb läuft, mehr Infos im Repo.

      Problem bei dir ist wahrscheinlich eher, dass die 550M laut Nvidia keinen Vulkan Support hat 🙁
      https://developer.nvidia.com/vulkan-driver – Zumindest finde ich deine GPU nicht in der Liste.

      Grüße
      Konstantin

HINTERLASSE EINE ANTWORT

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.