Gaming auf Debian und Derivaten Teil 3: Wine und dessen Forks

  Actionschnitzel   Lesezeit: 11 Minuten  🗪 3 Kommentare Auf Mastodon ansehen

Der dritte Teil einer Serie, die sich damit befasst, wie man auf Debian/Ubuntu spielt und am besten Probleme schon im Voraus vermeidet.

gaming auf debian und derivaten teil 3: wine und dessen forks

Dass Wine kein Emulator ist, sollte weitläufig bekannt sein, außer man lebt unter einem Stein oder in einem Teil Deutschlands, in dem es kein Internet gibt. Aber das wäre wieder eine andere Geschichte. In diesem Artikel wollen wir uns Wine zwar technisch nähern, tun dies aber unter dem Aspekt des Gamings. Sich mit der Theorie zu beschäftigen, ist im Gegensatz zum Spielen eines guten Videospiels eher langweilig und dröge.

Unter Windows laufen Spiele nativ, Linux hingegen ermöglicht das im Falle von Windows-Spielen mit der Übersetzungsebene Wine. Da Benutzeroberflächen immer einfacher gestaltet werden, bekommt man sogar unter Linux nichts mehr von der technischen Abwicklung dieses Prozesses mit. Bestes Beispiel ist Steam, das direkt mit allem daherkommt, was man so braucht, sogar ohne dass Wine zuvor installiert werden muss. Das läuft so technisch einwandfrei, dass man kein großes Linux- oder IT-Know-How haben muss.

Wine

Sofern Wine korrekt installiert ist, können Windows-Programme (falls geeignet) auf Linux installiert werden. Das kann über den Befehl `wine /path/to/.exe` erfolgen oder über eine grafische Oberfläche. Eine Windows-Executable lässt sich rein theoretisch von überall aus starten. Mit Wine installierte Programme werden Windows-ähnlich unter `/home/USER/.wine` abgelegt.

Wer sich ein wenig umschauen möchte, sollte im Dateibrowser die versteckten Dateien einblenden. Alternativ könnte man im Terminal mit `cd ~/.wine/ && tree` die gesamte Ordnerstruktur aufschlüsseln lassen.

Hinweis: Die Verzeichnisstruktur ähnelt Windows. Kommt bitte nicht auf die Idee, Dateien hier einfach zu löschen. Auch wenn mancher Ordner überflüssig erscheint, so ist er doch notwendig, um Wine am Laufen zu halten.

Präfix

Lutris, Heroic, Steam oder auch Bottles funktionieren etwas anders. Diese sind allesamt Game-Launcher (Bottles ist auch für andere Windows-Anwendungen geeignet), sie arbeiten aber mit Präfixen. Hier bekommt jede Anwendung ihren eigenen Wine-Ordner. Der Vorteil ist ganz klar die saubere Trennung. Nicht selten bleiben nach einer Installation via Wine Datenreste in `.wine` zurück. Lutris, als Beispiel genommen, verschiebt bei der Deinstallation den gesamten Präfix in den Papierkorb. Steam installiert die Spiele in ein separates Verzeichnis. Die Proton-Präfixe kann man unter `~/.local/share/Steam/steamapps/compatdata` finden. Nach einer Deinstallation bleiben hier Konfigurationsdateien zurück.

Ein Wine-Präfix ist ein Verzeichnis, das von Wine verwendet wird, um eine separate Umgebung für Windows-Anwendungen zu erstellen und zu verwalten. Das Präfix enthält alle erforderlichen Dateien, Bibliotheken und Konfigurationen, die für die Ausführung von Windows-Anwendungen mit Wine erforderlich sind. Durch die Verwendung von separaten Präfixen können verschiedene Versionen von Wine und verschiedene Windows-Anwendungen isoliert voneinander betrieben werden, um Konflikte zu vermeiden und die Stabilität zu verbessern.

Mit diesem Wissen kann man zielgenaue Anpassungen vornehmen, um ein Spiel bestmöglich zu starten.

Proton und Proton-GE

Proton-GE ist eine modifizierte Version von Proton, einer Kompatibilitätsschicht, die von Valve entwickelt wurde, um Windows-Spiele auf Linux über Steam spielbar zu machen. Proton-GE wird von einem Entwickler namens GloriousEggroll gepflegt und enthält verschiedene Patches und Optimierungen, um die Leistung und Kompatibilität mit bestimmten Spielen zu verbessern. Es ist eine beliebte Wahl für Linux-Spieler, die eine verbesserte Leistung oder Kompatibilität mit bestimmten Spielen wünschen.

In einer Folge von "Destination Linux" gibt der Entwickler ein Interview und erläutert, welche Verbesserungen er mit seinem Proton-Fork vornimmt.

Die interessanteste Aussage ist jedoch, dass Valve gewisse Codecs und andere Komponenten, die wichtig für Videospiele sind, nicht paketieren und anbieten darf. Das liegt an Lizenzrechten. Proton-GE profitiert davon, dass es nicht von einem Unternehmen, sondern von einer Privatperson herausgegeben wird. Somit können die erwähnten Bibliotheken implementiert werden. Leider sind meine Kenntnisse bezüglich des US-amerikanischen Lizenzrechts etwas eingestaubt. Ich bitte daher zu entschuldigen, dass ich dies hier nicht im Detail aufschlüssele.

Proton-GE umfasst eine Vielzahl von Verbesserungen gegenüber der Standardversion von Proton. Einige der generellen Verbesserungen, die in Proton-GE enthalten sein könnten, sind:

  • Leistungsverbesserungen: Optimierungen, die darauf abzielen, die Leistung von Spielen unter Proton zu verbessern, wie etwa bessere Frameraten oder kürzere Ladezeiten.
  • Kompatibilitätsverbesserungen: Patches und Anpassungen, die die Kompatibilität mit einer breiteren Palette von Spielen erhöhen, indem sie spezifische Probleme beheben, die in der Standardversion auftreten können.
  • Aktualisierungen von Wine und DXVK: Proton-GE integriert häufig aktuellere Versionen von Wine (der Windows-API-Implementierung für Linux) und DXVK (eine Vulkan-basierte Implementierung von Direct3D), um von den neuesten Funktionen und Verbesserungen zu profitieren.
  • Fehlerkorrekturen: Behebung von bekannten Fehlern oder Problemen, die in der Standardversion von Proton auftreten können.
  • Experimentelle Funktionen: Proton-GE kann auch experimentelle oder in Entwicklung befindliche Funktionen enthalten, die möglicherweise nicht in der offiziellen Proton-Version verfügbar sind, aber bestimmte Spiele oder Hardware besser unterstützen.

In Bezug auf Proton hat sich ProtonDB hervorgetan. Hier können Nutzer ihre Spielerfahrungen, Anpassungen und die verwendeten Proton-Versionen teilen.

Wie bezieht man verschiedene Wine-Versionen?

Glücklicherweise sind wir in puncto Benutzerfreundlichkeit schon einen großen Schritt vorangekommen. Lutris bietet in der Seitenleiste unter dem Eintrag Wine die Möglichkeit, Versionen hinzuzufügen oder zu löschen. Gleiches gilt für Steam in den Einstellungen unter Kompatibilität.

Da Proton-GE als Fork nicht direkt zum Steam-Ökosystem gehört, müssen wir hier einen kleinen Umweg gehen:

Wie auf GitHub beschrieben, soll die gewünschte GE-Version entpackt und in das Verzeichnis `~/.steam/root/compatibilitytools.d` verschoben werden.

Eine weitaus effizientere und zudem globale Lösung ist das Tool Proton-Up-Qt, welches über Flathub bezogen werden kann. Es gibt euch einen guten Überblick über die Gaming-Situation eures Rechners. Über ein Dropdown-Menü könnt ihr einsehen, welche Wine-, Proton- und Proton-GE-Versionen installiert sind, sogar separat für Lutris, Steam und Heroic. Ihr könnt neue Versionen herunterladen, diese werden direkt integriert (ein Programm-Neustart ist erforderlich). Das Entfernen geht genauso leicht. Über die Listenansicht könnt ihr sogar einsehen, wie viele und welche Spiele mit welcher Version laufen.

Nach dem Herunterladen könnt ihr dann wie gewohnt in Steam oder Lutris einem oder allen Spielen das gewünschte Proton zuweisen.


Lutris: Nachschlag

Ein Punkt ist beim Schreiben des Lutris-Artikels noch entfallen, der durchaus wichtig und interessant sein könnte und außerdem thematisch besser zu Wine passt. Besitzer einer älteren Grafikkarte, zum Beispiel der Nvidia GeForce GTX 960, können trotz korrekter Einrichtung von Wine und Lutris durchaus mit dem direkten Absturz eines Spiels konfrontiert werden. Möglich ist auch, dass es gar nicht erst startet, obwohl man schon Proton-GE nutzt.

Das kann daran liegen, dass F Sync und/oder E Sync in den Lutris-Konfigurationen des Spiels aktiviert sind. Manchmal mögen Spiele auch einfach die DXVK-Optionen nicht. Eine weitere Fehlerquelle kann sein, dass das Spiel unbedingt einen virtuellen Desktop haben möchte, um darauf zu laufen. Das könnt ihr über die Wine-Einstellungen festlegen. Je nach Alter des Spiels kann es auch helfen, den Kompatibilitätsmodus z.B. auf Windows XP zu setzen.


Lesenswertes und Grundlagen des Artikels


In diesem letzten Teil ging es nicht wirklich um Debian oder Ubuntu. Da die Reihe für Anfänger gedacht ist, sollte diese Thematik aber nicht ausgelassen werden. Ohne etwas auszulassen, beinhaltet die Serie alle Schritte, die ich selbst vornehme, um zu zocken. Ausnahme ist hier die Installation von Nvidia-Treibern sowie die Performance unter Wayland und X11. Das allein hat Stoff für einen Fünfteiler.

Sollte es noch Fragen oder irgendetwas geben, das für den einen oder anderen interessant sein könnte, dann schreibt es einfach in die Kommentare. Vielleicht ergibt sich daraus noch ein vierter Teil.

Quellen

Tags

Wine, Proton, Steam, GamingOnLinux, Proton-GE

werwiewas
Geschrieben von werwiewas am 22. Mai 2024 um 18:07

Ich nutze Bottles um meine Steuersoftware Tax2024 unter Linux laufen zu lassen. Die Schrift sieht aber irgendwie komisch aus, wie aus den Neunzigern und ist schwer lesbar. Weißt du, wie man an die Schriftart tweaken kann? Hat jetzt vielleicht nicht direkt mit dem Zocken zu tun, aber die passt für mich zu "Windows-Programme unter Linux". 😜

Grinsekatze
Geschrieben von Grinsekatze am 22. Mai 2024 um 19:48

@werwiewas (mit Dank an den Autor!): Obwohl mich Spiele an sich Nüsse interessieren, fand ich die Serie ebenfalls sehr spannend.

Disclaimer: Habe schon länger kein 'wine' mehr, und ich kenne auch eventuelle Unterschiede zu 'bottles' nicht, aber das hier könnte von Interesse für Dich sein:

https://askubuntu.com/questions/86335/installing-other-fonts-on-wine https://linuxconfig.org/configuring-wine-with-winetricks

Stenley
Geschrieben von Stenley am 25. Mai 2024 um 15:03

Es wurde geschrieben, dass Proton-GE den Vorteil gegenüber Proton hat, bestimmte lizenzrechtliche Teile einbinden zu können.

Es ist jedoch auch anders herum, dass Proton einige Vorteile gegenüber Proton-GE und WINE hat. So wird bei Spielen, die Anti-Cheat-Mechanismen (wie z.B. easyAntiCheat) nutzen, statt auf die Windows-implementierung der Anti-Cheat-Software, auf die native Linux-Implementierung zurückgegriffen. Um das zu ermöglichen arbeitet Valve mit den Herstellern der Anti-Cheat Software zusammen. Dementsprechend ist dieser spezielle Code auch NICHT OpenSource, weil es sonst wieder möglich wäre, die native Linux-Anti-Cheat-Software durch etwas anderes zu ersetzen, was das AntiCheat-System ad absurdum führen würde. Daher gibt es einige Spiele, die nur mit dem von Valve herausgegebenen Proton zu spielen sind.