Partager via


Développement de Marble Maze : un jeu pour plateforme Windows universelle (UWP) créé en C++ pour DirectX

Cette rubrique décrit comment utiliser DirectX et C++ pour créer un jeu pour plateforme Windows universelle (UWP) en 3D. Le jeu, appelé Marble Maze, inclut plusieurs facteurs de forme tels que les tablettes, les PC de bureau traditionnels et les ordinateurs portables.

Remarque

Pour télécharger le code source Marble Maze, consultez l’exemple sur GitHub.

Important

Marble Maze illustre des modèles de conception que nous considérons comme les meilleures pratiques pour créer des jeux UWP. Vous pouvez adapter la plupart des détails de l’implémentation pour répondre à vos propres pratiques et aux exigences uniques du jeu que vous développez. N’hésitez pas à utiliser d’autres techniques ou bibliothèques lorsque celles-ci répondent mieux à vos besoins. (Toutefois, vérifiez toujours que votre code passe le Kit de certification des applications Windows). Lorsque nous estimons que l’implémentation utilisée est indispensable à la réussite du développement de jeux, nous l’indiquons dans cette documentation.

Présentation de Marble Maze

Nous avons sélectionné Marble Maze car il est relativement simple, mais il permet malgré tout de découvrir l’éventail des fonctionnalités présentes dans la plupart des jeux. Il montre comment utiliser les graphismes, la gestion des entrées et l’audio. Il illustre également les mécanismes de jeux tels que les règles et les objectifs.

Marble Maze s’inspire du jeu de labyrinthe de table qui se compose généralement d’une boîte à trous et d’une bille en acier ou en verre. L’objectif de Marble Maze est le même que celui de la version de table : incliner le labyrinthe pour guider la bille de l’entrée vers la sortie du labyrinthe le plus rapidement possible, sans faire tomber la bille dans l’un des trous. Marble Maze ajoute le concept des points de contrôle. Si la marbre tombe dans un trou, le jeu est redémarré à l’emplacement du dernier point de contrôle passé par la bille.

Marble Maze offre à l’utilisateur plusieurs moyens d’interagir avec le tableau de jeu. Si vous disposez d’un périphérique à interaction tactile ou à accéléromètre, vous pouvez utiliser ces appareils pour déplacer le tableau de jeu. Vous pouvez également utiliser une manette ou une souris pour contrôler l’action de jeu.

capture d’écran du jeu de labyrinthe de marbre.

Prérequis

  • Windows 10 Creators Update
  • Microsoft Visual Studio 2017
  • Connaissances de la programmation C++
  • Connaissance de la terminologie DirectX et DirectX
  • Connaissances de base de COM (Component Object Model)

Qui doit lire ce document ?

Si la création de jeux 3D ou d’autres applications très gourmandes en graphismes de Windows 10 vous intéresse, vous êtes au bon endroit. Nous espérons que vous utiliserez les principes et pratiques décrits par cette documentation pour créer votre propre jeu UWP. Une expérience ou un intérêt prononcé pour la programmation C++ vous permettra de tirer le meilleur parti de cette documentation. Si DirectX ne vous est pas familier, vous pouvez quand même en tirer parti si vous connaissez des environnements de programmation graphique 3D de même type.

Le document Procédure pas à pas : créer un jeu UWP simple avec DirectX présente un autre exemple qui implémente un jeu de tir en 3D de base en utilisant DirectX et C++.

Éléments traités dans cette documentation

Cette documentation explique comment :

  • Utiliser l’API Windows Runtime et DirectX pour créer un jeu UWP.
  • Utiliser Direct3D et Direct2D pour utiliser du contenu visuel tel que des modèles, des textures, des nuanceurs de vertex et de pixels, ainsi que des superpositions 2D.
  • Intégrer des mécanismes d’entrée tels que les fonctions tactiles, l’accéléromètre et la manette de jeu.
  • Utiliser XAudio2 pour incorporer de la musique et des effets sonores.

Éléments non traités dans cette documentation

Cette documentation n’aborde pas les aspects suivants du développement d’un jeu. Ces aspects sont suivis de ressources supplémentaires qui les abordent.

  • Principes de conception de jeux 3D.
  • Principes de base de la programmation C++ ou DirectX.
  • Comment concevoir des ressources telles que des textures, des modèles ou du son.
  • Comment résoudre des problèmes liés au comportement ou au niveau de performance de votre application.
  • Comment préparer votre jeu pour une utilisation dans d’autres régions du monde.
  • Comment certifier et publier votre jeu dans le Windows Store.

Marble Maze utilise également la bibliothèque DirectXMath pour utiliser la géométrie 3D et exécuter des calculs de physique, tels que les collisions. DirectXMath n’est pas décrit en détail dans cette section. Pour obtenir des détails sur l’utilisation par Marble Maze de DirectXMath, voir le code source.

Bien que Marble Maze fournisse de nombreux composants réutilisables, il ne s’agit pas d’une infrastructure de développement de jeux complète. Si nous estimons qu’un composant de Marble Maze est réutilisable dans votre jeu, nous le précisons dans la documentation.

Étapes suivantes

Nous vous recommandons de commencer par les Principes de base de Marble Maze pour en savoir plus sur la structure de Marble Maze et obtenir des instructions de codage et de style appliquées par le code source de Marble Maze. Le tableau suivant présente les documents de cette section afin que vous puissiez vous y reporter plus facilement.

Contenu de cette section

Titre Description
Principes de base de l’exemple Marble Maze Fournit une vue d’ensemble de la structure de jeu et de certaines instructions de code et de style suivies par le code source.
Structure de l’application Marble Maze Décrit la structure du code de l’application Marble Maze, ainsi que les différences entre la structure d’une application pour UWP en DirectX et celle d’une application de bureau classique.
Ajout de contenu visuel dans l’exemple Marble Maze Décrit certaines des pratiques clés à garder à l’esprit lorsque vous utilisez Direct3D et Direct2D. Décrit également comment Marble Maze applique ces pratiques pour du contenu visuel.
Ajout de données d’entrée et d’interactivité dans l’exemple Marble Maze Décrit comment Marble Maze utilise les entrées de l’accéléromètre, tactiles et de manette de jeu pour permettre aux utilisateurs de naviguer dans les menus et d’interagir avec le tableau de jeu. Décrit également certaines des meilleures pratiques à ne pas oublier lorsque vous travaillez avec des entrées.
Ajout d’audio dans l’exemple Marble Maze Décrit comment fonctionne Marble Maze avec des données audio pour ajouter de la musique et des effets sonores à l’expérience de jeu.