Freigeben über


Spieletechnologien für UWP-Apps

In diesem Leitfaden erfahren Sie mehr über die Technologien, die für die Entwicklung von UWP-Spielen (Universelle Windows-Plattform) verfügbar sind.

Vorteile von Windows 10 für die Spieleentwicklung

Mit der Einführung von UWP in Windows 10 können Ihre Windows 10-Titel auf allen Microsoft-Plattformen laufen. Mit der kostenlosen Migration von früheren Versionen von Windows gibt es eine stetig steigende Anzahl von Windows 10-Clients. Die Kombination dieser beiden Dinge bedeutet, dass Ihre Windows 10-Titel eine riesige Anzahl von Kunden über den Microsoft Store erreichen können.

Darüber hinaus bietet Windows 10 viele neue Features, die besonders für Spiele von Vorteil sind:

  • Verringerte Speicherauslagerung und reduzierte Gesamtgröße des Arbeitsspeichersystems
  • Verbesserte Grafikspeicherverwaltung ordnet aktiv mehr Arbeitsspeicher für das Vordergrundspiel zu und schützt sie

UWP-Spiele mit C++ und DirectX

Echtzeitspiele, die eine hohe Leistung erfordern, sollten die DirectX-APIs verwenden. DirectX ist eine Sammlung systemeigener APIs zum Erstellen von Spielen und Multimediaanwendungen, die eine hohe Leistung erfordern, z. B. 3D-Spiele.

Entwicklungsumgebung

Um Spiele für UWP zu erstellen, müssen Sie Ihre Entwicklungsumgebung einrichten, indem Sie Visual Studio 2015 oder höher installieren. Es wird empfohlen, die neueste Version von Visual Studio zu installieren, sodass Sie auf die neuesten Entwicklungs- und Sicherheitsupdates zugreifen können. Mit Visual Studio können Sie UWP-Apps erstellen und Tools für die Spieleentwicklung bieten:

  • Visual Studio-Tools für die DX-Spieleprogrammierung – Visual Studio bietet Tools zum Erstellen, Bearbeiten, Anzeigen und Exportieren von Bild-, Modell- und Shaderressourcen. Es gibt auch Tools, mit denen Sie Ressourcen zur Erstellungszeit konvertieren und DirectX-Grafikcode debuggen können. Weitere Informationen finden Sie unter Verwenden von Visual Studio-Tools für die Spieleprogrammierung.
  • Visual Studio-Grafikdiagnosefeatures – Grafikdiagnosetools stehen jetzt in Windows als optionales Feature zur Verfügung. Mit den Diagnosetools können Sie Grafikdebugging, Grafikframeanalyse und GPU-Verwendung in Echtzeit überwachen. Weitere Informationen finden Sie unter Verwenden der DirectX-Laufzeit und der Visual Studio-Grafikdiagnosefeatures.

Weitere Informationen finden Sie unter Vorbereiten der Universellen Windows-Plattform und der DirectX-Programmierung.

Erste Schritte mit DirectX-Spielprojektvorlagen

Nach Einrichtung Ihrer Entwicklungsumgebung können Sie eine verwandte DirectX-Projektvorlage zum Erstellen Ihres DirectX-Spiels für UWP verwenden. Visual Studio 2015 verfügt über drei Vorlagen zum Erstellen neuer UWP-DirectX-Projekte, DirectX 11-App (Universelle Windows-App), DirectX 12-App (Universelle Windows-App) und DirectX 11- und XAML-App (Universelle Windows-App). Weitere Informationen finden Sie unter Erstellen einer Universellen Windows-Plattform- und DirectX-Spieleprojekts aus einer Vorlage.

Windows 10-APIs

Windows 10 bietet eine umfangreiche Sammlung von APIs, die für die Spieleentwicklung nützlich sind. Es gibt APIs für fast alle Aspekte von Spielen, einschließlich 3D-Grafiken, 2D-Grafiken, Audio, Eingabe, Textressourcen, Benutzeroberfläche und Netzwerk.

Es gibt viele APIs im Zusammenhang mit der Spieleentwicklung, aber nicht alle Spiele müssen alle APIs verwenden. Einige Spiele verwenden beispielsweise nur 3D-Grafiken und verwenden nur Direct3D, andere Spiele verwenden möglicherweise nur 2D-Grafiken und verwenden nur Direct2D, und wiederum andere Spiele verwenden möglicherweise beide. Das folgende Diagramm zeigt die nach Funktionalitätstyp gruppierten APIs für die Spieleentwicklung.

Technologien für Spieleplattform

  • 3D-Grafiken – Windows 10 unterstützt zwei 3D-Grafik-API-Sätze, Direct3D 11 und Direct3D 12. Beide APIs bieten die Möglichkeit, 3D- und 2D-Grafiken zu erstellen. Direct3D 11 und Direct3D 12 werden nicht zusammen verwendet, können aber auch mit einer der APIs in der 2D-Grafik- und Benutzeroberflächengruppe verwendet werden. Weitere Informationen zur Verwendung der Grafik-APIs in Ihrem Spiel finden Sie unter Grundlegende 3D-Grafiken für DirectX-Spiele.

    API Beschreibung
    Direct3D 12

    Direct3D 12 führt die nächste Version von Direct3D ein, die 3D-Grafik-API im Herzen von DirectX. Diese Version von Direct3D ist so konzipiert, dass sie schneller und effizienter als frühere Versionen von Direct3D ist. Der Kompromiss für die erhöhte Geschwindigkeit von Direct3D 12 besteht darin, dass sie eine niedrigere Ebene hat und Sie ihre Grafikressourcen selbst verwalten und eine umfangreichere Grafikprogrammiererfahrung haben müssen, um die höhere Geschwindigkeit zu erzielen.

    Geeignet in folgender Situation

    Verwenden Sie Direct3D 12, wenn Sie die Leistung Ihres Spiels maximieren müssen und Ihr Spiel CPU-gebunden ist.

    Weitere Informationen

    Weitere Informationen finden Sie in der Direct3d 12-Dokumentation.

    Direct3D 11

    Direct3D 11 ist die Vorgängerversion von Direct3D und ermöglicht es Ihnen, 3D-Grafiken mit einer höheren Ebene der Hardwareabstraktion als D3D 12 zu erstellen.

    Geeignet in folgender Situation

    Verwenden Sie Direct3D 11, wenn Sie über vorhandenen Direct3D 11-Code verfügen, ihr Spiel nicht CPU-gebunden ist, oder Sie möchten, dass Ressourcen für Sie verwaltet werden.

    Weitere Informationen

    Weitere Informationen finden Sie in der Direct3D 11-Dokumentation.

     

  • 2D-Grafiken und Benutzeroberflächen - APIs für 2D-Grafiken wie Text und Benutzeroberflächen. Alle 2D-Grafiken und UI-APIs sind optional.

    API Beschreibung
    Direct2D

    Direct2D ist eine hardwarebeschleunigte 2D-Grafik-API mit unmittelbarem Modus, die das Rendern mit hoher Leistung und in hoher Qualität für 2D-Geometrie, Bitmaps und Text bereitstellt. Die Direct2D-API basiert auf Direct3D und ist darauf ausgelegt, mit GDI, GDI+ und Direct3D gut zu arbeiten.

    Geeignet in folgender Situation

    Direct2D kann anstelle von Direct3D verwendet werden, um Grafiken für reine 2D-Spiele wie einen Side-Scroller oder ein Brettspiel bereitzustellen oder mit Direct3D zur Vereinfachung der Erstellung von 2D-Grafiken in einem 3D-Spiel, z. B. einer Benutzeroberfläche oder einem Head-up-Display, zu verwenden.

    Weitere Informationen

    Weitere Informationen finden Sie in der Direct2D-Dokumentation.

    DirectWrite

    DirectWrite bietet zusätzliche Funktionen für das Arbeiten mit Text und kann mit Direct3D oder Direct2D verwendet werden, um Textausgabe für Benutzeroberflächen oder andere Bereiche bereitzustellen, in denen Text erforderlich ist. DirectWrite unterstützt das Messen, Zeichnen und Treffertests von mehrformatigem Text. DirectWrite behandelt Text in allen unterstützten Sprachen für globale und lokalisierte Anwendungen. DirectWrite bietet auch eine Glyphenrendering-API auf niedriger Ebene für Entwickler, die ihre eigene Layout- und Unicode-zu-Glyphenverarbeitung durchführen möchten.

    Geeignet in folgender Situation

    Weitere Informationen

    Weitere Informationen finden Sie in der DirectWrite-Dokumentation.

    DirectComposition

    DirectComposition ist eine Windows-Komponente, die eine leistungsstarke Bitmapkomposition mit Transformationen, Effekten und Animationen ermöglicht. Anwendungsentwickler können die DirectComposition-API verwenden, um visuell ansprechende Benutzeroberflächen zu erstellen, die umfangreiche und dynamisch animierte Übergänge von einem visuellen Element zu einem anderen bieten.

    Geeignet in folgender Situation

    DirectComposition wurde entwickelt, um den Prozess des Verfassens visueller Elemente und das Erstellen animierter Übergänge zu vereinfachen. Wenn für Ihr Spiel komplexe Benutzeroberflächen erforderlich sind, können Sie DirectComposition verwenden, um die Erstellung und Verwaltung der Benutzeroberfläche zu vereinfachen.

    Weitere Informationen

    Weitere Informationen finden Sie in der DirectComposition-Dokumentation.

     

  • Audio – APIs zum Wiedergeben von Audio und Anwenden von Audioeffekten. Informationen zur Verwendung der Audio-APIs in Ihrem Spiel finden Sie unter Audio für Spiele.

    API Beschreibung
    XAudio2

    XAudio2 ist eine Low-Level-Audio-API, die eine Grundlage für die Signalverarbeitung und -mischung bietet. XAudio ist so konzipiert, dass sie für Spieleaudiomodule sehr reaktionsfähig ist und gleichzeitig benutzerdefinierte Audioeffekte und komplexe Ketten von Audioeffekten und Filtern erstellen kann.

    Geeignet in folgender Situation

    Verwenden Sie XAudio2, wenn Ihr Spiel Töne mit minimalem Aufwand und Verzögerung wiedergeben muss.

    Weitere Informationen

    Weitere Informationen finden Sie in der XAudio2-Dokumentation.

    Audiodiagramme

    Für Funktionen, die Sie mit XAudio2 implementieren können, können Sie stattdessen die Windows-Runtime-Audiodiagramm-APIs verwenden. Informationen zur Entscheidung zwischen den beiden Alternativen finden Sie unter Auswählen von Windows-Runtime-AudioGraph oder XAudio2.

    Geeignet in folgender Situation

    Verwenden Sie Audiodiagramme, wenn Ihr Spiel Sounds mit minimalem Aufwand und Verzögerung wiedergeben muss, aber mit einer deutlich einfacheren API als XAudio2 und mit der Möglichkeit der C#-Unterstützung.

    Weitere Informationen

    Weitere Informationen finden Sie in der Dokumentation zu Audiodiagrammen.

    Media Foundation

    Microsoft Media Foundation wurde für die Wiedergabe von Mediendateien und -streams entwickelt, sowohl Audio als auch Video, kann aber auch in Spielen verwendet werden, wenn eine höhere Funktionalität als XAudio2 erforderlich ist und ein zusätzlicher Aufwand akzeptabel ist.

    Geeignet in folgender Situation

    Die Media Foundation ist besonders nützlich für filmische Szenen oder nicht interaktive Komponenten Ihres Spiels. Die Media Foundation eignet sich auch zum Decodieren von Audiodateien für die Wiedergabe mit XAudio2.

    Weitere Informationen

    Weitere Informationen finden Sie in der Übersicht über Microsoft Media Foundation.

     

  • Eingabe – APIs zur Eingabe von Tastatur, Maus, Gamepad und anderen Benutzereingabequellen.

    API Beschreibung
    XInput

    Die XInput Game Controller-API ermöglicht Anwendungen das Empfangen von Eingaben von Gamecontrollern.

    Geeignet in folgender Situation

    Wenn Ihr Spiel Gamepadeingaben unterstützen muss und Sie über vorhandenen XInput-Code verfügen, können Sie weiterhin XInput verwenden. XInput wurde durch Windows.Gaming.Input für UWP ersetzt, und wenn Sie neuen Eingabecode schreiben, sollten Sie Windows.Gaming.Input anstelle von XInput verwenden.

    Weitere Informationen

    Weitere Informationen finden Sie in der XInput-Dokumentation.

    Windows.Gaming.Input

    Die Windows.Gaming.Input-API ersetzt XInput und bietet die gleichen Funktionen mit den folgenden Vorteilen gegenüber Xinput:

    • Geringere Ressourcennutzung
    • Niedrigere API-Aufruflatenz zum Abrufen von Eingaben
    • Die Möglichkeit, mit mehr als 4 Gamepads gleichzeitig zu arbeiten
    • Die Möglichkeit, auf zusätzliche Gamepadfeatures zuzugreifen, z. B. die Triggerschwingungsmotoren
    • Die Möglichkeit, benachrichtigt zu werden, wenn Controller eine Verbindung über das Ereignis herstellen oder trennen, anstatt abfragen zu müssen
    • Die Möglichkeit zum Attributieren von Eingaben für einen bestimmten Benutzer (Windows.System.User)

    Geeignet in folgender Situation

    Wenn Ihr Spiel Gamepadeingaben unterstützen muss und keinen vorhandenen XInput-Code verwendet oder Sie einen der oben aufgeführten Vorteile benötigen, sollten Sie Windows.Gaming.Input verwenden.

    Weitere Informationen

    Weitere Informationen finden Sie in der Dokumentation zu Windows.Gaming.Input.

    Windows.UI.Core.CoreWindow

    Die Windows.UI.Core.CoreWindow-Klasse stellt Ereignisse zum Nachverfolgen von Klicks und Bewegungen sowie Nach-unten- und Nach-oben-Scroll-Ereignissen bereit.

    Geeignet in folgender Situation

    Verwenden Sie Windows.UI.Core.CoreWindows-Ereignisse, wenn Sie die Maus- oder Tastendrücke in Ihrem Spiel nachverfolgen müssen.

    Weitere Informationen

    Weitere Informationen zur Verwendung der Maus oder Tastatur in Ihrem Spiel finden Sie unter Bewegungs-/Blicksteuerungen für Spiele.

     

  • Mathematik – APIs zur Vereinfachung häufig verwendeter mathematischer Vorgänge.

    API Beschreibung
    DirectXMath

    Die DirectXMath-API bietet SIMD-freundliche C++-Typen und -Funktionen für allgemeine lineare Algebra- und Grafikmathematikoperationen, die für Spiele üblich sind.

    Geeignet in folgender Situation

    Die Verwendung von DirectXMath ist optional und vereinfacht allgemeine mathematische Vorgänge.

    Weitere Informationen

    Weitere Informationen finden Sie in der DirectXMath-Dokumentation.

     

  • Netzwerk – APIs für die Kommunikation mit anderen Computern und Geräten über das Internet oder private Netzwerke.

    API Beschreibung
    Windows.Networking.Sockets

    Der Windows.Networking.Sockets-Namespace stellt TCP- und UDP-Sockets bereit, die eine zuverlässige oder unzuverlässige Netzwerkkommunikation ermöglichen.

    Geeignet in folgender Situation

    Verwenden Sie Windows.Networking.Sockets, wenn Ihr Spiel mit anderen Computern oder Geräten über das Netzwerk kommunizieren muss.

    Weitere Informationen

    Sehen Sie sich Arbeiten mit Netzwerk in Ihrem Spielan.

    Windows.Web.HTTP

    Der Windows.Web.HTTP-Namespace stellt eine zuverlässige Verbindung zu HTTP-Servern bereit, die für den Zugriff auf eine Website verwendet werden können.

    Geeignet in folgender Situation

    Verwenden Sie Windows.Web.HTTP, wenn Ihr Spiel auf eine Website zugreifen muss, um Informationen abzurufen oder zu speichern.

    Weitere Informationen

    Sehen Sie sich Arbeiten mit Netzwerken in Ihrem Spiel an.

     

  • Support-Hilfsprogramme – Bibliotheken, die auf den Windows 10-APIs basieren.

    Bibliothek Beschreibung
    DirectX-Toolkit

    Das DirectX Tool Kit (DirectXTK) ist eine Sammlung von Hilfsklassen zum Schreiben von DirectX 11.x-Code in C++.

    Geeignet in folgender Situation

    Verwenden Sie das DirectX Tool Kit, wenn Sie ein C++-Entwickler sind, der nach einem modernen Ersatz für den älteren D3DX-Hilfsprogrammcode sucht, oder wenn Sie ein XNA Game Studio-Entwickler sind, der zu systemeigenem C++ wechselt.

    Weitere Informationen

    Weitere Informationen finden Sie auf der Projektseite des DirectX Tool Kit, https://github.com/Microsoft/DirectXTK.

    Win2D

    Win2D ist eine einfach zu verwendende Windows-Runtime-API für 2D-Grafikrendering im unmittelbaren Modus.

    Geeignet in folgender Situation

    Verwenden Sie Win2D, wenn Sie C++-Entwickler sind und einen einfacheren WinRT-Wrapper für Direct2D und DirectWrite verwenden möchten, oder wenn Sie C#-Entwickler sind, der Direct2D und DirectWrite verwenden möchte.

    Weitere Informationen

    Weitere Informationen finden Sie auf der Win2D-Projektseite, https://github.com/Microsoft/Win2D.

Xbox Live-Dienste

Mit den Xbox-Entwicklerprogrammen können Entwickler Xbox Live in ihr UWP-Spiel integrieren und auf Xbox One und Windows 10 veröffentlichen. Integrieren Sie soziale Xbox Live-Funktionen wie Anmelden, Präsenzinformationen, Ranglisten und mehr in Ihre Titel mit minimaler Entwicklungszeit. Die sozialen Xbox Live-Features wurden entwickelt, damit Sie Ihre Zielgruppe organisch auf bis zu 55 Millionen aktive Spieler erweitern können.

Wenn Sie Zugriff auf noch mehr Xbox Live-Funktionen, dedizierten Marketing- und Entwicklungssupport und die Möglichkeit, im Haupt-Xbox One Store vorgestellt zu werden wollen, bewerben Sie sich für das ID@Xbox-Programm. Informationen dazu, welche Features für das Xbox Live Creators-Programm und das ID@Xbox-Programm verfügbar sind, finden Sie in der Featuretabelle.

Weitere Informationen finden Sie unter Hinzufügen von Xbox Live zu Ihrem Spiel.

Alternativen zum Schreiben von Spielen mit DirectX und UWP

UWP-Spiele ohne DirectX

Einfachere Spiele mit minimalen Leistungsanforderungen, z. B. Kartenspiele oder Brettspiele, können ohne DirectX geschrieben werden und müssen nicht unbedingt in C++ geschrieben werden. Diese Art von Spielen kann jede der von UWP unterstützten Sprachen verwenden, z. B. C#, Visual Basic, C++ und HTML/JavaScript. Wenn Leistung und intensive Grafiken für Ihr Spiel nicht erforderlich sind, schauen Sie sich das Beispiel für JavaScript- und HTML5-Fingereingabespiel an.

Game Engines

Als Alternative zum Schreiben ihrer eigenen Game Engines mithilfe der Windows-Spieleentwicklungs-APIs stehen viele hochwertige Game Engines, die auf den Windows-Spieleentwicklungs-APIs aufbauen, für die Entwicklung von Spielen auf Windows-Plattformen zur Verfügung. Wenn Sie einen Game Engine oder eine Bibliothek auswählen, haben Sie mehrere Optionen:

  • Vollständige Game Engines – Ein vollständiger Game Engine kapselt die meisten oder alle Windows 10-APIs, die Sie beim Schreiben eines Game Engines von Grund auf verwenden würden, z. B. Grafiken, Audio, Eingabe und Netzwerk. Vollständige Game Engines können auch Spiellogikfunktionen wie künstliche Intelligenz und Pfadsuche bereitstellen.
  • Grafikmodul – Grafikmodule kapseln die Windows 10-Grafik-APIs, verwalten Grafikressourcen und unterstützen eine Vielzahl von Modell- und Weltformaten.
  • Audiomodul – Audiomodule kapseln die Windows 10-Audio-APIs, verwalten Audioressourcen und bieten erweiterte Audioverarbeitung und -effekte.
  • Netzwerkmodul – Netzwerkmodule kapseln Windows 10-Netzwerk-APIs zum Hinzufügen von Peer-to-Peer- oder serverbasierter Multiplayer-Unterstützung zu Ihrem Spiel und können erweiterte Netzwerkfunktionen umfassen, um eine große Anzahl von Spielern zu unterstützen.
  • Künstliche Intelligenz und Pfadsuche-Engines – KI- und Pfadsuche-Engines bieten ein Framework zur Steuerung des Verhaltens von Agenten in Ihrem Spiel.
  • Spezielle Engines – Es gibt eine Vielzahl von zusätzlichen Engines für die Behandlung nahezu jeder spielentwicklungsbezogenen Aufgabe, die Sie möglicherweise erledigen müssen, z. B. das Erstellen von Bestandssystemen und Dialogstrukturen.

Übermitteln eines Spiels an den Microsoft Store

Sobald Sie bereit sind, Ihr Spiel zu veröffentlichen, müssen Sie ein Entwicklerkonto erstellen und Ihr Spiel an den Microsoft Store übermitteln.

Informationen zum Übermitteln Ihres Spiels an den Microsoft Store finden Sie unter Übermitteln und Veröffentlichen Ihres Spiels.