Share via


Entwickeln von Marble Maze – ein Universelle Windows-Plattform (UWP)-Spiel, das mit C++ für DirectX erstellt wurde

In diesem Thema wird beschrieben, wie Sie DirectX und C++ verwenden, um ein UWP-Spiel (3D Universelle Windows-Plattform) zu erstellen. Das Spiel namens Marble Maze umfasst mehrere Formfaktoren wie Tablets, herkömmliche Desktop-PCs und Laptop-PCs.

Hinweis

Informationen zum Herunterladen des Marble Maze-Quellcodes finden Sie im Beispiel auf GitHub.

Wichtig

Marble Maze veranschaulicht Entwurfsmuster, die wir als bewährte Methoden für die Erstellung von UWP-Spielen betrachten. Viele der Implementierungsdetails können Sie an Ihre eigenen Vorgehensweisen und die konkreten Anforderungen des von Ihnen entwickelten Spiels anpassen. Wenn es Ihren Anforderungen besser entgegenkommt, können Sie natürlich auch andere Verfahren oder Bibliotheken verwenden. (Stellen Sie jedoch immer sicher, dass Ihr Code das Zertifizierungskit für Windows-Apps übergibt.) Wenn wir eine hier verwendete Implementierung als wesentlich für eine erfolgreiche Spieleentwicklung betrachten, betonen wir dies in dieser Dokumentation.

Einführung in Marble Maze

Wir haben Marble Maze ausgewählt, weil es relativ einfach ist, aber immer noch die Breite der Features zeigt, die in den meisten Spielen zu finden sind. Die Verwendung von Grafiken kann ebenso erläutert werden wie die Verarbeitung von Eingaben und Audiodaten. Außerdem kann die Spielmechanik gezeigt werden, etwa Regeln und Ziele.

Marble Maze ähnelt dem Tischlabyrinthspiel, das typischerweise aus einer Box besteht, die Löcher und eine Stahl- oder Glasmarmore enthält. Das Ziel von Marble Maze ist dasselbe wie die Tischversion: Das Labyrinth zu kippen, um die Murmel in möglichst kurzer Zeit vom Anfang bis zum Ende des Labyrinths zu führen, ohne die Murmel in eines der Löcher fallen zu lassen. Marble Maze fügt das Konzept der Prüfpunkte hinzu. Wenn die Murmel in ein Loch fällt, beginnt das Spiel am letzten Kontrollpunkt neu, den die Murmel passiert hat.

Marble Maze bietet einem Benutzer mehrere Möglichkeiten, mit dem Spielbrett zu interagieren. Wenn Sie über ein Gerät verfügen, das Toucheingaben oder einen Beschleunigungsmesser unterstützt, können Sie das Spielbrett mit diesen Geräten bewegen. Sie können auch einen Xbox One-Controller oder eine Maus verwenden, um das Spiel zu steuern.

Screenshot des Marble Maze-Spiels

Voraussetzungen

  • Windows 10 Creators Update
  • Microsoft Visual Studio 2017
  • Kenntnisse in der C++-Programmierung
  • Erfahrung mit DirectX und der Terminologie von DirectX
  • Grundkenntnisse in COM

Zielgruppe dieses Artikels

Wenn Sie daran interessiert sind, 3D-Spiele oder andere grafikintensive Anwendungen für Windows 10 zu erstellen, ist dies für Sie. Wir hoffen, dass Ihnen die in dieser Dokumentation skizzierten Prinzipien und praktischen Vorgehensweisen dabei helfen, eigene UWP-Spiele zu erstellen. Den größten Nutzen aus dieser Dokumentation werden Sie ziehen, wenn Sie bereits über Erfahrungen mit C++ und DirectX verfügen oder sich sehr dafür interessieren. Wenn Sie keine Erfahrung mit DirectX haben, können Sie dennoch davon profitieren, wenn Sie Erfahrung mit ähnlichen 3D-Grafikprogrammierumgebungen haben.

Das Dokument Exemplarische Vorgehensweise: Erstellen eines einfachen UWP-Spiels mit DirectX beschreibt ein weiteres Beispiel, das ein einfaches 3D-Schießspiel mithilfe von DirectX und C++ implementiert.

In dieser Dokumentation behandelte Themen

In dieser Dokumentation wird Folgendes beschrieben:

  • Erstellen eines UWP-Spiels mit der Windows-Runtime-API und DirectX
  • Verwenden Sie Direct3D und Direct2D , um mit visuellen Inhalten wie Modellen, Texturen, Vertex- und Pixelshadern und 2D-Überlagerungen zu arbeiten.
  • Integrieren Sie Eingabemechanismen wie Toucheingabe, Beschleunigungsmesser und den Xbox One-Controller.
  • Integrieren von Musik und Soundeffekten mit XAudio2

In dieser Dokumentation nicht behandelte Themen

Folgende Aspekte der Spieleentwicklung werden in dieser Dokumentation nicht behandelt. Im Anschluss an diese Aspekte folgen zusätzliche Ressourcen, in denen sie behandelt werden.

  • 3D-Spielentwurfsprinzipien.
  • Grundlagen der C++- und DirectX-Programmierung
  • Entwerfen von Ressourcen wie Texturen, Modellen oder Audio
  • Beheben von Verhaltens- oder Leistungsproblemen in Spielen
  • Vorbereiten von Spielen für andere Teile der Welt
  • So zertifizieren und veröffentlichen Sie Ihr Spiel im Microsoft Store.

Marble Maze verwendet auch die DirectXMath-Bibliothek , um mit 3D-Geometrie zu arbeiten und physikalische Berechnungen wie z. B. Kollisionen durchzuführen. DirectXMath wird in diesem Abschnitt nicht eingehend beschrieben. Ausführliche Informationen dazu, wie Marble Maze DirectXMath verwendet, finden Sie im Quellcode.

Marble Maze bietet zwar viele wiederverwendbare Komponenten, ist aber kein vollständiges Framework für die Spieleentwicklung. Wenn wir eine Marble Maze-Komponente als wiederverwendbar in Ihrem Spiel betrachten, wird dies in der Dokumentation hervorgehoben.

Nächste Schritte

Es wird empfohlen, mit den Grundlagen von Marble Maze-Beispielen zu beginnen, um mehr über die Marble Maze-Struktur und einige der Code- und Stilrichtlinien zu erfahren, die der Marble Maze-Quellcode befolgt. Die folgende Tabelle skizziert die Dokumente in diesem Abschnitt, sodass Sie einen genaueren Überblick über diese gewinnen.

In diesem Abschnitt

Titel BESCHREIBUNG
Grundlagen von Marble Maze-Beispielen Bietet einen Überblick über die Struktur des Spiels und einige Richtlinien zu Codierung und Stil im Marble Maze-Quellcode.
Marble Maze-Anwendungsstruktur Beschreibt, wie der Marble Maze-Anwendungscode strukturiert ist und wie sich die Struktur einer DirectX UWP-App von der einer herkömmlichen Desktopanwendung unterscheidet.
Hinzufügen von visuellem Inhalt zum Marble Maze-Beispiel Beschreibt einige der zentralen praktischen Verfahren, die bei der Arbeit mit Direct3D und Direct2D zu beachten sind. Außerdem wird beschrieben, wie Marble Maze diese Methoden für visuelle Inhalte anwendet.
Hinzufügen von Eingaben und Interaktivität zum Marble Maze-Beispiel Beschreibt, wie Marble Maze mit Beschleunigungsmessern, Toucheingaben und Xbox One-Controllereingaben funktioniert, damit Benutzer in Menüs navigieren und mit dem Spielbrett interagieren können. Beschreibt außerdem einige bewährte Methoden, die bei der Arbeit mit Eingaben beachtet werden sollten.
Hinzufügen von Audio zum Marble Maze-Beispiel Beschreibt, wie Marble Maze mit Audio arbeitet, um der Spielerfahrung Musik und Soundeffekte hinzuzufügen.