Freigeben über


Entwickeln von Marble Maze – einem mit C++ für DirectX erstellten UWP-Spiel (Universelle Windows-Plattform)

In diesem Thema wird beschrieben, wie Sie DirectX und C++ zum Erstellen eines 3D-Spiels für die universelle Windows-Plattform (UWP) verwenden. Das Spiel namens Marble Maze umfasst mehrere Formfaktoren wie Tablets, herkömmliche Desktop-PCs und Laptop-PCs.

Hinweis

Zum Herunterladen des Marble Maze-Quellcodes siehe das Beispiel auf GitHub.

Wichtig

Marble Maze veranschaulicht Entwurfsmuster, die wir als bewährte Methoden zum Erstellen von UWP-Spielen betrachten. Sie können viele der Implementierungsdetails an Ihre eigenen Praktiken und die einzigartigen Anforderungen des Spiels anpassen, das Sie entwickeln. Sie können andere Techniken oder Bibliotheken verwenden, wenn diese Ihren Anforderungen besser entsprechen. (Stellen Sie jedoch immer sicher, dass Ihr Code das Zertifizierungskit für Windows-Apps besteht.) Wenn wir eine hier verwendete Implementierung als unerlässlich für eine erfolgreiche Spieleentwicklung betrachten, betonen wir es in dieser Dokumentation.

Einführung in Marble Maze

Wir haben uns für Marble Maze entschieden, da es sich um ein relativ einfaches Spiel handelt, das dennoch die ganze Bandbreite der Features repräsentiert, die sich in den meisten Spielen finden. Es zeigt, wie Grafiken, Eingabehandhabung und Audio verwendet werden. Außerdem werden Spielmechaniken wie Regeln und Ziele veranschaulicht.

Marble Maze ähnelt den Labyrinth-Tischspielen, deren Konstruktion meist aus einem Kasten mit Löchern und einer Stahl- oder Glasmurmel besteht. Das Ziel von Marble Maze ist das gleiche wie bei der Tischversion: Das Labyrinth muss so angekippt werden, dass die Murmel in möglichst kurzer Zeit vom Anfang zum Ende des Labyrinths gerollt wird, ohne dass sie in eines der Löcher fällt. Außerdem gibt es in Marble Maze das Konzept der Kontrollpunkte. Wenn die Murmel in ein Loch fällt, wird das Spiel an der letzten Kontrollpunktposition neu gestartet, die die Murmel passiert hat.

Marble Maze bietet dem Benutzer mehrere Möglichkeiten zur Interaktion mit dem Spielbrett. Wenn Sie über ein Gerät mit Toucheingabe oder Beschleunigungsmesser verfügen, können Sie diese Geräte verwenden, um das Spielbrett zu bewegen. Sie können auch einen Controller oder eine Maus verwenden, um das Spielgeschehen zu steuern.

Screenshot des Marble Maze-Spiels.

Voraussetzungen

  • Windows 10 Creators Update
  • Microsoft Visual Studio 2017
  • C++-Programmierkenntnisse
  • Vertrautheit mit DirectX und DirectX-Terminologie
  • Grundkenntnisse von COM

Zielgruppe dieses Artikels

Wenn Sie 3D-Spiele oder andere grafikintensive Anwendungen für Windows 10 erstellen möchten, sind Sie hier richtig. Wir hoffen, dass Sie die Prinzipien und Praktiken verwenden, die in dieser Dokumentation beschrieben werden, um Ihr eigenes UWP-Spiel zu erstellen. Ein Hintergrund in oder ein starkes Interesse an der C++- und DirectX-Programmierung hilft Ihnen dabei, diese Dokumentation optimal zu nutzen. Wenn Sie keine Erfahrung mit DirectX haben, können Sie dennoch profitieren, wenn Sie Erfahrung mit ähnlichen 3D-Grafikprogrammierumgebungen haben.

Das Dokument Walkthrough: Erstellen eines einfachen UWP-Spiels mit DirectX beschreibt ein weiteres Beispiel, das ein einfaches 3D-Shooter-Spiel unter Verwendung von DirectX und C++ implementiert.

Was diese Dokumentation umfasst

In dieser Dokumentation erfahren Sie, wie Sie:

  • Die Windows-Runtime-API und DirectX verwenden, um ein UWP-Spiel zu erstellen.
  • Direct3D und Direct2D verwenden, um mit visuellen Inhalten wie Modellen, Texturen, Vertex- und Pixelshadern sowie 2D-Überlagerungen zu arbeiten.
  • Eingabemechanismen wie Toucheingabe, Beschleunigungsmesser und Gamecontroller integrieren.
  • XAudio2 verwenden, um Musik- und Soundeffekte zu integrieren.

Was diese Dokumentation nicht behandelt

In dieser Dokumentation werden die folgenden Aspekte der Spieleentwicklung nicht behandelt. Auf diese Aspekte folgen zusätzliche Ressourcen, die sie abdecken.

  • Entwurfsprinzipien von 3D-Spielen.
  • Grundlagen der C++- oder DirectX-Programmierung.
  • Wie Sie Ressourcen wie Texturen, Modelle oder Audio entwerfen.
  • Wie Sie die Problembehandlung für Verhaltens- oder Leistungsproblemen in Ihrem Spiel durchführen.
  • Wie Sie Ihr Spiel auf die Verwendung in anderen Teilen der Welt vorbereiten.
  • Wie Sie Ihr Spiel im Microsoft Store zertifizieren und veröffentlichen.

Marble Maze verwendet auch die DirectXMath-Bibliothek, um mit 3D-Geometrie zu arbeiten und physikalische Berechnungen auszuführen, z. B. Kollisionen. DirectXMath wird in diesem Abschnitt nicht ausführlich behandelt. Weitere Einzelheiten zur Verwendung von DirectXMath in Marble Maze finden Sie im Quellcode.

Zwar bietet Marble Maze viele wiederverwendbare Komponenten, doch stellt es kein vollständiges Framework für die Spieleentwicklung dar. Wenn eine Komponente von Marble Maze als in Ihrem Spiel wiederverwendbar erachtet wird, ist dies in der vorliegenden Dokumentation entsprechend gekennzeichnet.

Nächste Schritte

Es wird empfohlen, mit den Grundlagen des Marble Maze-Beispiels zu beginnen, um sich mit der Struktur von Marble Maze und einigen Richtlinien zu Codierung und Stil im Marble Maze-Quellcode vertraut zu machen. In der folgenden Tabelle werden die Dokumente in diesem Abschnitt beschrieben, sodass Sie leichter darauf Bezug nehmen können.

In diesem Abschnitt

Titel Beschreibung
Grundlagen am Beispiel von Marble Maze Bietet eine Übersicht über die Spielstruktur und einige der Code- und Stilrichtlinien, die der Quellcode befolgt.
Marble Maze-Anwendungsstruktur Beschreibt die Strukturierung der Anwendung Marble Maze und die Unterschiede zwischen der Struktur einer UWP-DirectX-App und der einer herkömmlichen Desktopanwendung.
Hinzufügen von visuellem Inhalt zum Marble Maze-Beispiel Beschreibt einige der wichtigsten Methoden, die Sie berücksichtigen sollten, wenn Sie mit Direct3D und Direct2D arbeiten. Beschreibt außerdem, wie diese Verfahren in Marble Maze für visuelle Inhalte umgesetzt wurden.
Hinzufügen von Eingaben und Interaktivität zum Marble Maze-Beispiel Beschreibt, wie Marble Maze mit Beschleunigungsmesser-, Touch- und Gamecontrollereingaben arbeitet, damit Benutzer in Menüs navigieren und mit dem Spielbrett interagieren können. Beschreibt außerdem einige der bewährten Methoden, die Sie berücksichtigen sollten, wenn Sie mit Eingaben arbeiten.
Hinzufügen einer Audiodatei zum Marble Maze-Beispiel Beschreibt die Zusammenarbeit von Marble Maze mit Audio, um der Spielumgebung Musik und Soundeffekte hinzuzufügen.