April 2020: Microsoft veröffentlicht erste dokumentierte Ausgabe des Game Development Kit

Microsoft hat im April 2020 die erste dokumentierte Ausgabe des Microsoft Game Development Kit (GDK) bereitgestellt. Die mit der Versionskennung 2004 geführte Ausgabe steht am Beginn der bis heute fortgeführten Release-Kadenz des Entwicklerpakets, das Microsoft in seinen What’s-New-Notizen monatlich nach Erscheinungsjahr und -monat versioniert. Das GDK fasst die gemeinsamen Werkzeuge, Bibliotheken, APIs und Erweiterungen zusammen, mit denen Spiele für die Microsoft-Gaming-Plattformen entwickelt werden, und richtet sich zum Erscheinungszeitpunkt an PC und an die Xbox-Konsolen.

Konzeptionell ist das GDK als Dach-SDK angelegt. Es enthält das Gaming Runtime Development Kit (GRDK) mit Headern, Bibliotheken und Werkzeugen für PC- und Xbox-Titel, die Gaming-Runtime-Funktionen wie das Paketformat MSIXVC nutzen, sowie das Gaming eXtensions Development Kit (GXDK), das die Xbox-spezifischen Bestandteile bündelt. Das GXDK tritt damit die Nachfolge des bisherigen Xbox Development Kit (XDK) an und liefert unter anderem die D3D12.x-Header und die xb*-Remote-Management-Werkzeuge sowie die zugehörige Visual-Studio-Integration für die Konsolenentwicklung. Auf diesem Fundament setzen bis heute Erweiterungen auf, etwa die auf dem Unreal Fest in Chicago vorgestellten GDK-Plug-ins.

Programmiermodell auf Win32-Basis

Das GDK setzt auf ein Programmiermodell, das auf klassischen Win32-APIs aufbaut. Die Schnittstellen liegen entweder als Flat-C-APIs im Win32-Stil oder als C++-APIs im Direct3D-Stil vor und geben Fehlercodes zurück, statt Ausnahmen zu werfen. Ein GDK-Titel folgt damit dem Aufbau eines gewöhnlichen Win32-Programms mit wWinMain, Nachrichtenschleife und Fensterprozedur. Microsoft adressiert mit diesem Ansatz Rückmeldungen aus dem Entwicklerumfeld zum vorherigen Xbox-One-ERA-Modell, dessen plattformspezifische C++-Spracherweiterungen die Portierung bestehenden Windows-Codes erschwert hatten. Auf Xbox unterstützt das GDK ausschließlich D3D12.x, während auf dem PC sowohl D3D11 als auch D3D12 nutzbar bleiben.

Zum Funktionsumfang der Gaming Runtime zählen die MSIXVC-Paketierung, das Installationsmanagement mit Streaming Install und Intelligent Delivery, der cloudgestützte Spielstand-Dienst Connected Storage, der Store-Commerce-Bereich für In-App-Käufe sowie Barrierefreiheitsfunktionen. Auf dem PC wird die Gaming Runtime als eigenständiges, über den Microsoft Store wartbares Paket ausgeliefert und setzt das Windows-10-19H1-Release voraus. Auf Xbox ist sie Bestandteil des Game OS. Hinzu kommt ein neues asynchrones Programmiermodell auf Basis von XAsyncBlock, das Callbacks, Polling und blockierende Aufrufe unterstützt und Kontrolle darüber bietet, wann und wo asynchrone Arbeit ausgeführt wird.

Werkzeugkette und Anbindung an das Windows SDK

Für die Xbox-Entwicklung greift das GDK auf die etablierte Werkzeugkette zurück, darunter die xb*-Kommandozeilenwerkzeuge, Xbox Manager, xbWatson sowie PIX für Xbox. Als Entwicklungsumgebung wird Visual Studio 2019 unterstützt. Für die PC-Seite kommen mit makepkg und wdapp Werkzeuge hinzu, die das Erzeugen und Testen von MSIXVC-Paketen ermöglichen, während die übrige Win32-Werkzeuglandschaft unverändert nutzbar bleibt. Dass sich Xbox-Titel auf diese Weise bereits auf dem PC bauen und prüfen lassen, zeigt später auch das von Microsoft veröffentlichte Godot-Beispiel für die Xbox-Entwicklung auf dem PC. Zur Speicherverwaltung auf Xbox führt Microsoft eine separate, fest dimensionierte Speicherpartition für Systemprozesse ein, sodass sich der dem Spiel zur Verfügung stehende Speicher genauer vorhersagen lässt.

Bereits mit der Folgeausgabe vom Mai 2020 verschob sich die Einbindung des Windows SDK. Die zuvor im GDK enthaltenen aktualisierten Windows-Header und -Bibliotheken wurden entfernt, da die entsprechende Funktionalität in die Windows-SDK-Version 19041 übernommen wurde. Seitdem setzt die GDK-Entwicklung die Installation des Windows-19041-SDK zusätzlich zum GDK voraus. Die April-2020-Ausgabe markiert damit den dokumentierten Ausgangspunkt einer kontinuierlichen Reihe von GDK-Releases, deren Aufbau aus GRDK und GXDK sowie das Win32-orientierte Programmiermodell in den folgenden Jahren erhalten blieben.

Weitere News

Weitere News

Kommentieren Sie den Artikel

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