Technologies de jeu pour les applications UWP

Dans ce guide, vous allez découvrir les technologies disponibles pour le développement de jeux de plateforme Windows universelle (UWP).

Avantages de Windows 10 pour le développement de jeux

Grâce à l’introduction de la plateforme Windows universelle dans Windows 10, vous pourrez étendre vos titres Windows 10 sur toutes les plateformes Microsoft. Grâce à la migration gratuite depuis les versions précédentes de Windows, le nombre de clients Windows 10 ne cesse de croître. La combinaison de ces deux informations signifie que vos titres Windows 10 seront en mesure d’atteindre un nombre de clients très important via le Microsoft Store.

En outre, Windows 10 offre de nombreuses nouvelles fonctionnalités particulièrement bénéfiques pour les jeux :

  • Réduction de la pagination de la mémoire et réduction de la taille globale du système de mémoire
  • Amélioration de la gestion de la mémoire graphique, dédie activement et protège davantage de mémoire pour le jeu de premier plan

Jeux UWP avec C++ et DirectX

Les jeux en temps réel nécessitant de hautes performances devraient utiliser les API DirectX. DirectX est une collection d’API natives pour la création de jeux et d’applications multimédias nécessitant de hautes performances, comme les jeux 3D.

Environnement de développement

Pour créer des jeux pour UWP, vous devez configurer votre environnement de développement en installant Visual Studio 2015 ou une version ultérieure. Nous vous recommandons d’installer la version de Visual Studio la plus récente, ce qui vous donne accès aux dernières mises à jour de développement et de sécurité. Visual Studio vous permet de créer des applications UWP et fournit des outils pour le développement de jeux :

  • Outils Visual Studio pour la programmation de jeux DX - Visual Studio fournit des outils permettant de créer, de modifier, d’afficher un aperçu et d’exporter des ressources d’image, de modèle et de nuanceur. Il existe également des outils que vous pouvez utiliser pour convertir des ressources au moment de la génération et déboguer du code graphique DirectX. Pour plus d’informations, consultez Utiliser les outils Visual Studio pour la programmation de jeu.
  • Fonctionnalités de diagnostic graphique Visual Studio - les outils de diagnostic graphique sont désormais disponibles directement dans Windows en tant que fonctionnalité facultative. Les outils de diagnostic vous permettent de déboguer des graphismes, d’analyser les images graphiques et de surveiller l’utilisation du GPU en temps réel. Pour plus d’informations, consultez Utiliser le runtime DirectX et les fonctionnalités de diagnostic graphique Visual Studio.

Pour plus d’informations, consultez Préparer votre plateforme Windows universelle et la programmation DirectX.

Prise en main des modèles de projet de jeu DirectX

Après avoir configuré votre environnement de développement, vous pouvez utiliser l’un des modèles de projet associés à DirectX pour créer votre jeu DirectX UWP. Visual Studio 2015 propose trois modèles pour créer de nouveaux projets DirectX UWP, DirectX 11 App (Windows universel),DirectX 12 Ap (Windows universel)et DirectX 11 et XAML App (Windows universel). Pour plus d’informations, consultez Créer un projet de jeu de plateforme Windows universelle et DirectX à partir d’un modèle.

API Windows 10

Windows 10 fournit une vaste collection d’API qui sont utiles pour le développement de jeux. Il existe des API pour presque tous les aspects des jeux, notamment le graphisme 3D, le graphisme 2D, l’audio, les entrées, les ressources textuelles, les interfaces utilisateur et la mise en réseau.

Il existe de nombreuses API liées au développement de jeux, mais tous les jeux n’ont pas besoin d’utiliser toutes les API. Par exemple, certains jeux utiliseront uniquement un graphisme 3D et utiliseront uniquement Direct3D, certains jeux pourront utiliser un graphisme 2D uniquement et n’utiliser que Direct2D, et d’autres jeux pourront encore utiliser les deux. Le diagramme suivant montre les API associées au développement de jeux regroupées par type de fonctionnalité.

game platform technologies

  • Graphisme 3D - Windows 10 prend en charge deux ensembles d’API graphiques 3D, Direct3D 11 et Direct3D 12. Ces deux API offrent la possibilité de créer des graphismes 3D et 2D. Direct3D 11 et Direct3D 12 ne sont pas utilisés ensemble, mais peuvent être utilisées avec l’une des API du groupe Graphisme 2D et interfaces utilisateur. Pour plus d’informations sur l’utilisation des API graphiques dans votre jeu, consultez Graphismes 3D de base pour les jeux DirectX.

    API Description
    Direct3D 12

    Direct3D 12 introduit la nouvelle version de Direct3D, l’API graphique 3D au cœur de DirectX. Cette version de Direct3D est conçue pour être plus rapide et plus efficace que les versions précédentes de Direct3D. Le compromis fait pour obtenir la vitesse accrue de Direct3D 12 est qu’il est d’un niveau inférieur, et vous oblige à gérer vous-même vos ressources graphiques et à avoir une expérience de programmation graphique plus étendue pour obtenir cette vitesse.

    Quand utiliser

    Utilisez Direct3D 12 lorsque vous devez optimiser les performances de votre jeu et que votre jeu dépend du processeur.

    Pour plus d’informations

    Consultez la Documentation Direct3D 12.

    Direct3D 11

    Direct3D 11 est la version précédente de Direct3D et vous permet de créer des graphismes 3D à l’aide d’un niveau d’abstraction matérielle supérieur à celui de D3D 12.

    Quand utiliser

    Utilisez Direct3D 11 s’il existe du code Direct3D 11 existant, que votre jeu ne dépend pas du processeur ou si vous souhaitez bénéficier d’une gestion des ressources faite pour vous.

    Pour plus d’informations

    Consultez la Documentation Direct3D 11.

     

  • Graphismes 2D et interface utilisateur - API concernant les graphismes 2D tels que le texte et les interfaces utilisateur. Toutes les API graphiques 2D et d’interface utilisateur sont facultatives.

    API Description
    Direct2D

    Direct2D est une API graphique 2D à accélération matérielle et en mode immédiat, qui offre des hautes performances et un rendu de grande qualité pour les éléments géométriques, bitmaps et textes 2D. L’API Direct2D repose sur Direct3D et est conçue pour interagir correctement avec GDI, GDI+ et Direct3D.

    Quand utiliser

    Direct2D peut être utilisée au lieu de Direct3D pour fournir les graphismes de jeux 2D purs comme un défilement latéral ou un jeu de plateau, ou peut être utilisée avec Direct3D pour simplifier la création de graphismes 2D dans un jeu 3D, comme une interface utilisateur ou un affichage tête-haute.

    Pour plus d’informations

    Consultez la Documentation Direct2D.

    DirectWrite

    DirectWrite fournit des fonctionnalités supplémentaires pour travailler avec du texte et peut être utilisé avec Direct3D ou Direct2D pour fournir une sortie de texte pour les interfaces utilisateur, ou pour d’autres zones où du texte est requis. DirectWrite prend en charge la mesure, le dessin et le test de positionnement de texte multi-format. DirectWrite gère le texte dans toutes les langues prises en charge pour les applications globales et localisées. DirectWrite fournit également une API de rendu de glyphe de bas niveau pour les développeurs qui souhaitent effectuer leur propre disposition et leur traitement Unicode-to-glyph.

    Quand utiliser

    Pour plus d’informations

    Consultez la Documentation DirectWrite.

    DirectComposition

    DirectComposition est un composant Windows qui permet une composition bitmap hautes performances avec des transformations, des effets et des animations. Les développeurs d’applications peuvent utiliser l’API DirectComposition pour créer des interfaces utilisateur visuellement attrayantes, qui présentent des transitions animées riches et fluides d’un visuel à l’autre.

    Quand utiliser

    DirectComposition est conçue pour simplifier le processus de composition des visuels et la création de transitions animées. Si votre jeu nécessite des interfaces utilisateur complexes, vous pouvez utiliser DirectComposition pour en simplifier la création et la gestion.

    Pour plus d’informations

    Consultez la Documentation DirectComposition.

     

  • Audio - API concernant la lecture audio et l’application d’effets audio. Pour plus d’informations sur l’utilisation des API audio dans votre jeu, consultez Audio pour les jeux.

    API Description
    XAudio2

    XAudio2 est une API audio de bas niveau qui fournit une base pour le traitement et le mixage des signaux. XAudio est conçu pour être très réactive, pour les moteurs audio de jeu, tout en conservant la possibilité de créer des effets audio personnalisés et des chaînes complexes d’effets audio et de filtres.

    Quand utiliser

    Utilisez XAudio2 lorsque votre jeu doit lire des sons avec un traitement et un délai minimaux.

    Pour plus d’informations

    Consultez la Documentation XAudio2 .

    Graphiques audio

    Pour les fonctionnalités que vous pouvez implémenter avec XAudio2, vous pouvez choisir d’utiliser les API de graphique audio Windows Runtime. Pour vous aider à choisir entre les possibilités, consultez Choisir Windows Runtime AudioGraph ou XAudio2.

    Quand utiliser

    Utilisez les graphiques audio lorsque votre jeu doit lire des sons avec un traitement et un délai minimaux, mais avec une API beaucoup plus facile à utiliser que XAudio2 et l’option de prise en charge de C#.

    Pour plus d’informations

    Consultez la documentation sur les graphiques audio.

    Media Foundation

    Microsoft Media Foundation est conçu pour la lecture de fichiers multimédias et de flux, à la fois audio et vidéo, mais peut également être utilisé dans les jeux lorsque des fonctionnalités de niveau supérieur à XAudio2 sont requises et qu’un traitement supplémentaire est acceptable.

    Quand utiliser

    Media Foundation est particulièrement utile pour les scènes cinématiques ou les composants non interactifs de votre jeu. Media Foundation est également utile pour décoder des fichiers audio devant être lus avec XAudio2.

    Pour plus d’informations

    Consultez la présentation de Microsoft Media Foundation.

     

  • Entrée - API concernant les entrées depuis le clavier, la souris, le boîtier de commande et d’autres sources d’entrée utilisateur.

    API Description
    XInput

    L’API XInput Game Controller permet aux applications de recevoir des entrées depuis les contrôleurs de jeu.

    Quand utiliser

    Si votre jeu doit prendre en charge les entrées des boîtiers de commande et que vous disposez de code XInput existant, vous pouvez continuer à utiliser XInput. XInput a été remplacé par Windows.Gaming.Input pour UWP, et si vous écrivez un nouveau code d’entrée, vous devriez utiliser Windows.Gaming.Input au lieu de XInput.

    Pour plus d’informations

    Consultez la Documentation XInput .

    Windows.Gaming.Input

    L’API Windows.Gaming.Input remplace XInput et offre les mêmes fonctionnalités que XInput, ainsi que les avantages suivants :

    • Réduction de l’utilisation des ressources
    • Latence d’appel d’API inférieure pour la récupération d’entrée
    • Possibilité d’utiliser plus de 4 boîtiers de commande à la fois
    • Possibilité d’accéder à d’autres fonctionnalités de boîtier de commande, telles que les moteurs de vibration de déclencheur
    • Possibilité d’être averti lorsque des contrôleurs se connectent/se déconnectent via un évènement au lieu d’interroger
    • Possibilité d’attribuer une entrée à un utilisateur spécifique (Windows.System.User)

    Quand utiliser

    Si votre jeu doit prendre en charge les entrées des boîtiers de commande et n’utilise pas de code XInput existant, ou si vous avez besoin de l’un des avantages listés ci-dessus, vous devriez utiliser Windows.Gaming.Input.

    Pour plus d’informations

    Consultez la Documentation Windows.Gaming.Input.

    Windows.UI.Core.CoreWindow

    La classe Windows.UI.Core.CoreWindow fournit des évènements pour le suivi des pressions et des mouvements de pointeur, ainsi que les évènements des touches bas et haut.

    Quand utiliser

    Utilisez les évènements Windows.UI.Core.CoreWindows lorsque vous devez suivre les pressions de souris ou de touches dans votre jeu.

    Pour plus d’informations

    Pour plus d’informations sur l’utilisation de la souris ou du clavier dans votre jeu, consultez les Contrôles Move-look pour les jeux.

     

  • Math - API concernant la simplification des opérations mathématiques couramment utilisées.

    API Description
    DirectXMath

    L’API DirectXMath fournit des types et des fonctions C++ compatibles SIMD pour les opérations mathématiques linéaires communes dans les jeux.

    Quand utiliser

    L’utilisation de DirectXMath est facultative et simplifie les opérations mathématiques courantes.

    Pour plus d’informations

    Consultez la Documentation DirectXMath.

     

  • Mise en réseau : API concernant la communication avec d’autres ordinateurs et appareils via Internet ou des réseaux privés.

    API Description
    Windows.Networking.Sockets

    L’espace de noms Windows.Networking.Sockets fournit des sockets TCP et UDP qui permettent une communication réseau fiable ou non fiable.

    Quand utiliser

    Utilisez Windows.Networking.Sockets si votre jeu doit communiquer avec d’autres ordinateurs ou appareils sur le réseau.

    Pour plus d’informations

    Consultez Travailler avec la mise en réseau dans votre jeu.

    Windows.Web.HTTP

    L’espace de noms Windows.Web.HTTP fournit une connexion fiable aux serveurs HTTP qui peuvent être utilisés pour accéder à un site web.

    Quand utiliser

    Utilisez Windows.Web.HTTP lorsque votre jeu doit accéder à un site web pour récupérer ou stocker des informations.

    Pour plus d’informations

    Consultez Travailler avec la mise en réseau dans votre jeu.

     

  • Utilitaires de prise en charge : bibliothèques qui s’appuient sur les API Windows 10.

    Bibliothèque Description
    Kit d’outils DirectX

    Le kit d’outils DirectX (DirectXTK) est une collection de cours d’assistance pour l’écriture de code DirectX 11.x en C++.

    Quand utiliser

    Utilisez le kit d’outils DirectX si vous êtes un développeur C++ à la recherche d’un remplacement moderne du code utilitaire D3DX hérité ou si vous êtes un développeur XNA Game Studio qui passe à C++natif.

    Pour plus d’informations

    Consultez la page projet du kit d’outils DirectX. https://github.com/Microsoft/DirectXTK

    Win2D

    Win2D est une API Windows Runtime facile à utiliser pour le rendu de graphismes 2D en mode immédiat.

    Quand utiliser

    Utilisez Win2D si vous êtes développeur C++ et souhaitez utiliser un wrapper WinRT plus facile à utiliser pour Direct2D et DirectWrite, ou si vous êtes un développeur C# qui souhaite utiliser Direct2D et DirectWrite.

    Pour plus d’informations

    Consultez la page projet Win2D. https://github.com/Microsoft/Win2D

Xbox Live Services

Les Programmes pour les développeurs Xbox permettent aux développeurs d’intégrer Xbox Live à leur jeu UWP et de publier sur Xbox One et Windows 10. Intégrez les fonctionnalités sociales Xbox Live telles que la connexion, la présence et les classements, entre autres, dans votre titre, avec un temps de développement minime. Les fonctionnalités sociales Xbox Live sont conçues pour augmenter de façon organique votre audience, en vous faisant connaître à plus de 55 millions de joueurs actifs.

Si vous souhaitez accéder à encore plus de fonctionnalités Xbox Live, à un support marketing et de développement dédié et avoir la possibilité d’être présenté dans le magasin Xbox One principal, demandez à rejoindre le programme ID@Xbox. Pour voir quelles fonctionnalités sont disponibles pour le Programme Créateurs Xbox Live et le programme ID@Xbox, consultez le Tableau des fonctionnalités.

Pour plus d’informations, consultez Ajouter Xbox Live à votre jeu.

Alternatives à l’écriture de jeux avec DirectX et UWP

Jeux UWP sans DirectX

Les jeux les plus simples, ayant des exigences minimales en matière de performances, comme les jeux de cartes ou les jeux de tableau, peuvent être écrits sans DirectX et n’ont pas nécessairement besoin d’être écrits en C++. Ces jeux peuvent utiliser n’importe quel langage pris en charge par UWP, tel que C#, Visual Basic, C++ et HTML/JavaScript. Si votre jeu n’est pas exigeant en termes de niveau de performance et de graphisme, consultez l’exemple de jeu tactile JavaScript et HTML5.

Moteurs de jeu

Comme alternative à l’écriture de votre propre moteur de jeu à l’aide des API de développement de jeux Windows, de nombreux moteurs de jeux de haute qualité qui s’appuient sur les API de développement de jeux Windows sont disponibles pour développer des jeux sur des plateformes Windows. Lorsque vous envisagez un moteur de jeu ou une bibliothèque, vous avez plusieurs options :

  • Moteur de jeu complet : un moteur de jeu complet encapsule la plupart ou l’ensemble des API Windows 10 que vous utiliseriez lors de l’écriture d’un moteur de jeu à partir de zéro, comme les graphismes, l’audio, l’entrée et la mise en réseau. Les moteurs de jeu complets peuvent également fournir des fonctionnalités logiques de jeu telles que l’intelligence artificielle et le pathfinding.
  • Moteur graphique : les moteurs graphiques encapsulent les API graphiques Windows 10, gèrent les ressources graphiques et prennent en charge une large gamme de formats de modèle et de monde.
  • Moteur audio : les moteurs audio encapsulent les API audio Windows 10, gèrent les ressources audio et fournissent un traitement audio et des effets avancés.
  • Moteur réseau : les moteurs réseau encapsulent les API de mise en réseau Windows 10 pour ajouter une prise en charge multijoueur peer-to-peer ou sur serveur à votre jeu, et peuvent inclure des fonctionnalités de mise en réseau avancées pour prendre en charge un grand nombre de joueurs.
  • Intelligence artificielle et moteur de pathfinding : les moteurs d’IA et de pathfinding fournissent une infrastructure de contrôle du comportement des agents dans votre jeu.
  • Moteurs à usage spécial : de nombreux autres moteurs existent, pour gérer presque toutes les tâches liées au développement de jeux que vous pouvez rencontrer, telles que la création de systèmes d’inventaire et d’arborescences de dialogue.

Soumettre un jeu au Microsoft Store

Une fois que vous êtes prêt à publier votre jeu, vous devez créer un compte de développeur et soumettre votre jeu au Microsoft Store.

Pour plus d’informations sur la soumission de votre jeu au Microsoft Store, consultez Soumettre et publier votre jeu.