Start Games GDK-Architektur: Game OS, GRDK und GXDK vereinheitlichen das Win32-App-Modell für Xbox, PC und Cloud

GDK-Architektur: Game OS, GRDK und GXDK vereinheitlichen das Win32-App-Modell für Xbox, PC und Cloud

0
GDK-Architektur: Game OS, GRDK und GXDK vereinheitlichen das Win32-App-Modell für Xbox, PC und Cloud
GDK-Architektur: Game OS, GRDK und GXDK vereinheitlichen das Win32-App-Modell für Xbox, PC und Cloud - Bild: Microsoft Learn (GDK Introduction)

Microsoft fasst mit dem Game Development Kit (GDK) ein einheitliches Entwicklungsmodell zusammen, das klassische Win32-Programmierung als gemeinsame Basis für Xbox-Konsolen, Windows-PCs und Game Streaming festlegt. Die GDK-Einführung auf Microsoft Learn beschreibt das Kit als Sammlung gängiger Windows-APIs samt Gaming-Diensten, Werkzeugen und Erweiterungen, die über Win32-typische C-APIs oder DirectX-orientierte C++-APIs eingebunden werden. Die Schnittstellen werfen keine Ausnahmen, sondern liefern Fehlercodes zurück, und sie greifen auf vertraute asynchrone Programmiermuster zurück.

Aufgebaut ist das Ganze als sogenannter Umbrella-SDK. Es enthält das Gaming Runtime Development Kit (GRDK) und das Gaming eXtensions Development Kit (GXDK). Das GRDK liefert Header, Bibliotheken und Werkzeuge, mit denen sich Spiele für PC und Xbox bauen lassen, die Gaming-Runtime-Funktionen wie das Paketformat MSIXVC nutzen. Das GXDK ist die GDK-Variante des früheren Xbox Development Kit (XDK) und bringt Header, Libs, das Tooling und die Visual-Studio-Integration für Xbox-Builds mit, darunter die D3D12.x-Header und die Remote-Management-Werkzeuge der xb*-Reihe.

Win32 als gemeinsame Code-Basis

Im Zentrum des Modells stehen die Core Win32 Gaming APIs, eine gemeinsame Teilmenge der Win32-Schnittstellen, die über Windows-PCs, Xbox und Xbox Game Streaming hinweg funktioniert. Dazu zählen die Win32-Datei-I/O-Funktionen CreateFile, ReadFile und WriteFile, dazu WinSock2, XInput sowie D3D12 beziehungsweise D3D12.x auf Xbox. Auf dem PC kommen diese APIs als Teil des Windows-Betriebssystems, auf der Konsole als Teil des Game OS. Ein GDK-Titel folgt damit der bekannten Win32-Struktur aus wWinMain, Nachrichtenschleife und WndProc. Der einzige strukturelle Unterschied liegt in den Aufrufen von XGameRuntimeInitialize und XGameRuntimeUninitialize sowie, auf Xbox, in den Callbacks für die Energiezustände Suspend, Constrain und Resume.

Für Xbox-Builds gelten klare Vorgaben. Entwickler kompilieren gegen die API-Partition WINAPI_FAMILY_GAMES und linken gegen die Sammelbibliothek xgameplatform.lib statt gegen die Standard-Desktop-Libs wie kernel32 oder user32, ergänzt um die Linker-Option /NODEFAULTLIB. Auf der Konsole unterstützt das GDK nur D3D12.x, D3D11.x fällt weg, während auf dem PC weiterhin D3D11 und D3D12 verfügbar bleiben. Microsoft beschreibt außerdem ein Speichermodell, bei dem Allokationen für Systemprozesse in eine separate Partition fester Größe isoliert sind. So lässt sich der für das Spiel verfügbare Speicher genau vorhersagen. Wer tiefer in die Plattform einsteigen will, findet bei XboxDev weitere technische Hintergründe.

Gaming Runtime und Verteilung über Konsole, PC und Cloud

Die Gaming Runtime bündelt die plattformübergreifenden Dienste. Dazu gehören das Paketformat MSIXVC, das Installation Management mit Streaming Install und Intelligent Delivery, Connected Storage für cloudbasierte Spielstände, Store Commerce für In-App-Käufe, Barrierefreiheitsfunktionen, Game Invites sowie eine standardisierte Spieloberfläche. Auf dem PC kommt die Gaming Runtime als eigenständiges, über den Microsoft Store wartbares Paket und besitzt eine Abhängigkeit zum Windows-10-Release 19H1. Auf Xbox ist sie Teil des Game OS und versioniert mit diesem. Die Architektur trennt dabei die in den Spielprozess geladene Client-Komponente von den Gaming Runtime Services, die in einem separaten Prozess laufen.

Die Verteilungswege unterscheiden sich nach Zielplattform. Auf dem PC bleibt die Nutzung der Gaming Runtime optional, der vollständige Desktop-Funktionsumfang inklusive Kernelmodus-Treibern für Anti-Cheat steht weiter offen. Wer einen Win32-Titel über den Microsoft Store ausliefern will, paketiert ihn jedoch mit MSIXVC und nimmt damit eine Abhängigkeit zur Runtime an. Auf Xbox laufen GDK-Spiele auf einem separaten, für Spiele optimierten Game OS, das mit dem Titel ausgeliefert wird und feste Zusagen zu CPU-, GPU- und Speicher-Ressourcen macht. MSIXVC, Connected Storage und die Anbindung an Xbox-Dienste sind dort Pflicht. GDK-Titel laufen laut Dokumentation über die aktuelle und künftige Generationen von Xbox-Konsolen hinweg.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein