Zum Hauptinhalt Zur Navigation

Game Porting Toolkit: Wie Apple Windows-Spiele auf MacOS bringen will

Wenige Stunden nach Bereitstellung der Werkzeuge laufen Diablo 4 und Cyberpunk auf MacOS. Apple zeigt, dass Ports schneller gehen könnten, als viele erwarten.
/ Sebastian Grüner
60 Kommentare News folgen (öffnet im neuen Fenster)
Apple setzt für sein Game Porting Toolkit auf Wine. (Bild: Pixabay)
Apple setzt für sein Game Porting Toolkit auf Wine. Bild: Pixabay

Auf seiner Haus- und Entwicklermesse WWDC hat Apple sein Game Porting Toolkit offiziell vorgestellt(öffnet im neuen Fenster) . Zu der Technik(öffnet im neuen Fenster) , die Apple grob als Teil seiner Grafikschnittstelle Metal einordnet, heißt es: "Mit dem Toolkit für die Spieleportierung können Sie sich monatelange Vorarbeiten sparen und schon vor dem Schreiben des Codes beurteilen, wie gut Ihr Spiel auf dem Mac laufen könnte."

Grundlage dafür sind Eigenarbeiten von Apple wie etwa ein Shader-Compiler sowie ein riesiger Wine-Fork. Direkt zum Spielen für Endnutzer gedacht ist all das aber nicht, wie sich aus der Beschreibung von Apple ergibt.

Schon in der Vorstellung hieß es, das Game Porting Toolkit diene nur zur Evaluierung und, wie der Namen schon sagt, dazu, einen nativen Port auf MacOS zu ermöglichen. Apple beschreibt einen prinzipiellen Ablauf zur Nutzung der Werkzeuge: So sollen zunächst die HLSL-Shader aus DirectX für Metal und Apples GPUs kompiliert werden. Mithilfe von Wine könnten viele Spiele dann schon vergleichsweise einfach zum Laufen gebracht werden.

Die Spieleentwickler sollen anschließend ihre genutzte Middleware wie etwa für Eingaben, Audio-Ausgaben, Dateisystemzugriffe, Netzwerk und Ähnliches schrittweise portieren können. Am Ende soll ein nativer Port stehen, der ohne Wine auskommt.

Shader-Compiler und DirectX12 dank Microsoft

Die wohl wichtigste Einzelkomponente des Game Porting Toolkit ist der Shader Compiler. Mithilfe der Shader können 3D-Effekte programmiert werden, diese sind aber plattformabhängig. Microsoft nutzt in DirectX12 dafür die Sprache HLSL. Apple setzt dagegen auf die Metal Shading Language (MSL). Die Shader von Spielen können vor Programmstart oder auch zur Laufzeit kompiliert und dann nativ auf GPUs ausgeführt werden.

Für Apple ergibt sich ein großer Open-Source-Vorteil. Denn sowohl Apples MSL-Compiler als auch der DirectX-Shader-Compiler (DXC) von Microsoft basieren auf dem Compilerbaukasten LLVM.

Hinzu kommt, dass Microsoft DXC seit Jahren als Open Source entwickelt und im vergangenen Jahr eine enge Zusammenarbeit mit der LLVM-Community angekündigt hat . Dank des modularen Aufbaus von LLVM dürfte es vergleichsweise leicht für Apple sein, DXC als Frontend zu verwenden und mit seinem Compiler-Backend für die Apple-Silicon-GPU zu verbinden.

Dass Apple tatsächlich so vorgeht, ergibt sich direkt aus den Dateien und dazugehörigen Lizenzhinweisen des Game Porting Toolkits, das neben DXC auch die DirectX-Header-Dateien, die offiziellen Spezifikationen oder DirektX-Vulkan aufführt. Darüber hinaus hat Apple die DirectX12-API direkt als Schicht auf Metal umgesetzt und stellt dies als System-Framework bereit, das entsprechende Aufrufe übersetzt.

Stark angepasste Wine-Version

Apple nennt dies in seinen öffentlichen Ankündigungen oft nur Emulationsschicht oder Ausführumgebung. Klar ist jedoch, dass es sich dabei letztlich um Wine handelt, das Windows-Spiele auf Unix-artigen Systemen ausführbar macht und seit Jahren für MacOS bereitsteht. In der Read-Me-Datei des Game Porting Toolkits nennt Apple dann auch Wine und erklärt, dass dieses per Homebrew über ein Apple-Repository installiert werden solle.

Der Code dazu findet sich auf Github(öffnet im neuen Fenster) . Die Homebrew-Anweisungen zeigen, dass Apple auf die kommerzielle Wine-Version Crossover von Codeweavers setzt und diese um mehr als 20.000 Zeilen eigenen Code erweitert. Apples Wine-Verbesserungen finden sich lediglich in einer riesigen Datei aus Diff-Anweisungen als Teil der Homebrew-Formula zur Installation.

Codeweavers zeigte sich in einem Blogpost erfreut(öffnet im neuen Fenster) , dass Apple sich für den Wine-Code des Unternehmens als Grundlage entschieden hat. Dazu heißt es aber auch: "Wir haben nicht mit Apple an diesem Tool gearbeitet, aber wir würden uns freuen, mit allen Spieleentwicklern zusammenzuarbeiten, die das Game Porting Toolkit ausprobieren und das enorme Potenzial von Wine erkennen." Ein klarer Seitenhieb gegen die nicht Community-orientierte Open-Source-Entwicklung von Apple.

Sichtbar wird die fehlende Zusammenarbeit an der Umsetzung von DirectX12 für MacOS, an der Codeweavers ebenfalls arbeitet(öffnet im neuen Fenster) . Der Wine-Sponsor setzt aber auf die Übersetzungsschicht MoltenVK, wodurch Vulkan als Schicht zwischen DirectX12 und Metal dient, während Apple einen direkten Weg geht.

Diese Grundbausteine, kompilierte Shader und Wine, reichen offenbar, um schnell bekannte und aufwendig produzierte Spiele lauffähig zu machen. Apple reicht das aber nicht.

Diablo 4 und Cyberpunk bereits auf MacOS

Wie gut und ausgereift das Game Porting Toolkit von Apple schon ist, zeigt sich anhand der Fülle bereits getesteter Spiele sowie zahlreicher Bastellösungen, die schon kurz nach der Ankündigung und Verfügbarkeit kursieren. So zeigt etwa der Entwickler Isaac Marovitz(öffnet im neuen Fenster) , wie er das für seine anspruchsvolle Grafik bekannte Cyberpunk 2077 mithilfe des Game Porting Toolkits bereits ausführen kann.

Marovitz ist Entwickler der kleinen App Whisky, die ein modernes UI bereitstellt, um Wine auf MacOS auszuführen. Marovitz hat die Anwendung schnell so umgebaut, dass sie auch DirectX12 und Game Porting Toolkits als Ausführumgebung nutzen kann(öffnet im neuen Fenster) .

Darüber hinaus zeigen zahlreiche Nutzer der Mac-Gaming-Community auf Reddit weitere Spiele, die quasi direkt genutzt werden können. Dazu gehören unter anderem Diablo 4(öffnet im neuen Fenster) , Spiderman(öffnet im neuen Fenster) , Hogwarts Legacy(öffnet im neuen Fenster) oder auch The Witcher 3 mit DirectX12(öffnet im neuen Fenster) .

Anpassungen sind dafür in den allermeisten Fällen offenbar überhaupt nicht notwendig, es reicht, die Anweisungen zum Ausführen der Spiele aus dem Game Porting Toolkit zu befolgen. Apple verweist in seiner Dokumentation aber immer wieder darauf, dass die Leistung der Spiele nicht mit einem nativen Port mithalten könne.

Das lässt sich leicht nachvollziehen. Immerhin laufen die Spiele und auch Wine selbst in Rosetta 2, das x86-Befehle auf die ARM-Architektur des Apple Silicon übersetzt. Darüber hinaus drücken auch die Übersetzungsschicht von Wine und damit verbundener Mehraufwand zur Laufzeit auf die Leistung.

Middleware und Hilfe bei der Portierung

Apple erklärt deshalb mehrfach, dass die Ausführung in Wine nur der erste Schritt hin zu einem nativen Port sei. Der eigentliche Port des Codes solle dadurch vereinfacht werden. Immerhin sei ein Großteil des von den Spieleentwicklern genutzten Codes sehr wahrscheinlich schon plattformübergreifend, heißt es von Apple. Denn dieser stamme oft aus einer entsprechenden Engine.

Und selbst, wenn die Windows-Middleware über native Schnittstellen angesprochen werde, etwa über Xaudio, gebe es ganz ähnliche Abstraktionsschichten auch auf MacOS. Oft müsse dabei nicht mehr viel Portierungsaufwand geleistet werden, versichert Apple.

Das Unternehmen verweist auch auf die jahrelangen Arbeiten an seiner MacOS-Plattform für das Gaming. Dazu gehören etwa der Controller-Support oder der mit MacOS 14 alias Sonoma eingeführte Game Mode.

Darüber hinaus sollen die Portierungsarbeiten jederzeit überprüft und auch direkt kontrolliert werden können. Helfen sollen dabei zahlreiche Logging-Funktionen, die Apple bereitstellt. Besonders hilfreich soll dabei ein HUD (Head-Up-Display) sein, das bestimmte Statistiken zum Spiel wie Frameraten, Anzahl der Draw-Calls, Speicherauslastung, GPU-Last und Weiteres anzeigt.

Apple verbietet direkte Nutzung in Games

Während Valve für Linux-Systeme wie auf dem Steam Deck ganz auf Wine und Proton setzt, um Windows-Spiele auf die Plattform zu bringen, und dies auch offiziell unterstützt, schließt Apple einen ähnlichen Weg für seine MacOS-Plattform noch explizit aus. So heißt es in den Lizenzbedingungen des Game Porting Toolkits, dass dieses nur zum "Entwickeln, Testen und Evaluieren" von Videospielen auf Apple-Geräten zugelassen sei.

Eine Nutzung der Wine-Umgebung für die stabile Veröffentlichung von Spielen für MacOS ist derzeit also explizit nicht vorgesehen. So ist auch das Game Porting Toolkit bisher nur über die Entwicklerwerkzeuge von Apple erhältlich und nicht standardmäßig Teil von MacOS. Ob sich der Hersteller mit dieser strikten Haltung jedoch durchsetzen kann, muss sich noch zeigen.

Denn das hängt nicht zuletzt auch davon ab, ob sich Spieleentwickler und Publisher durch das niedrigschwellige Angebot des Toolkits für einen nativen Port ihrer Software überzeugen lassen.


Relevante Themen