Passer au contenu principal
Cette rubrique décrit l’API de haut niveau permettant d’ajouter des fonctionnalités multijoueurs en gérant les sessions, le matchmaking et les invitations de jeu. L’API fournit un modèle de programmation basé sur les états et un modèle basé sur les événements. Les services XBOX offrent une prise en charge étendue pour ajouter des fonctionnalités multijoueurs à vos titres, afin que votre jeu puisse connecter des membres XBOX du monde entier. Cela comprend des scénarios de matchmaking élaborés, la possibilité pour un joueur de rejoindre la partie en cours d’un ami, et bien plus encore. L’implémentation du multijoueur des services XBOX en utilisant directement les API multijoueurs peut être une tâche complexe. Elle nécessite un important travail de conception et de test pour vérifier que vous suivez les pratiques exemplaires et respectez les exigences de certification. Multiplayer Manager facilite l’ajout de fonctionnalités multijoueurs à votre jeu en gérant les sessions et le matchmaking, et en fournissant un modèle de programmation basé sur les états et un modèle basé sur les événements. Multiplayer Manager est un ensemble d’API. Elles sont conçues pour faciliter l’implémentation de scénarios multijoueurs pour les jeux des services XBOX dotés de conceptions multijoueurs hébergées par un pair. Multiplayer Manager fournit une API centrée sur des scénarios multijoueurs courants, comme jouer à des parties multijoueurs avec des amis, gérer les invitations de jeu, gérer l’accès aux parties en cours, le matchmaking, et bien plus encore. Multiplayer Manager prend en charge plusieurs utilisateurs locaux. Il facilite également l’intégration de votre titre au Multiplayer Session Directory (MPSD) si vous utilisez un service de matchmaking tiers. Bon nombre de ces scénarios peuvent être réalisés en quelques appels d’API seulement.

Fonctionnalités clés

Les principales fonctionnalités de l’API Multiplayer Manager sont les suivantes.
  • Gestion simplifiée des sessions et du matchmaking des services XBOX
  • Modèle de programmation basé sur les états et sur les événements
  • Respect des pratiques exemplaires des services XBOX et conformité aux XR multijoueurs
  • Implémentation des organigrammes du Multijoueur 2015
Voici des informations importantes sur la conception de l’API Multiplayer Manager.
Pour réussir la certification, votre jeu doit tout de même implémenter les événements requis pour le multijoueur en ligne.

Vue d’ensemble

Multiplayer Manager s’articule autour des concepts clés suivants.
  • Session de salon : session persistante utilisée pour gérer les utilisateurs locaux de l’appareil et les amis invités qui souhaitent jouer ensemble. Le groupe peut jouer au jeu; par exemple, sur plusieurs manches, cartes et niveaux. La session de salon suit ce groupe d’amis principal (y compris les joueurs locaux de l’appareil). En général, ce groupe se forme pendant que l’hôte parcourt les menus et discute avec les membres du groupe pour choisir le mode de jeu auquel ils souhaitent jouer.
  • Session de jeu : suit les joueurs qui jouent à une instance spécifique du jeu. Par exemple, une course, une carte ou un niveau. Vous pouvez créer une session de jeu au moyen de XblMultiplayerManagerJoinGameFromLobby, qui inclut les membres de la session de salon. Lorsqu’un membre accepte une invitation, il est ajouté au salon et à la session de jeu (s’il reste de la place). D’autres joueurs peuvent être ajoutés à la session de jeu si le matchmaking est activé, mais ces joueurs supplémentaires ne sont pas ajoutés à la session de salon. Cela signifie qu’à la fin de la partie, les joueurs de la session de salon restent ensemble, contrairement aux joueurs supplémentaires issus du matchmaking.
  • XblMultiplayerManagerMember : représente un utilisateur individuel connecté sur un appareil local ou distant.
  • XblMultiplayerManagerDoWork : garantit le maintien de mises à jour correctes de l’état du jeu entre le titre et le service Multijoueur des services XBOX. Pour garantir des performances optimales, XblMultiplayerManagerDoWork doit être appelée fréquemment, par exemple une fois par trame. XblMultiplayerManagerDoWork vous fournit un tableau d’événements de rappel XblMultiplayerEvent que le jeu doit gérer.

Machine à états

L’appel de XblMultiplayerManagerDoWork est nécessaire pour garantir que votre état reste à jour. Pour que Multiplayer Manager puisse effectuer son travail, vous devez appeler régulièrement la méthode XblMultiplayerManagerDoWork. Le moyen le plus fiable consiste à l’appeler au moins une fois par trame. XblMultiplayerManagerDoWork retourne rapidement lorsqu’elle n’a aucun travail à effectuer; il n’y a donc pas lieu de craindre de l’appeler trop souvent.

Threads

Aucun des objets retournés par l’API Multiplayer Manager ne doit être considéré comme thread-safe. L’API vous laisse toutefois le contrôle de la synchronisation des threads si vous l’appelez depuis plusieurs threads. La bibliothèque dispose d’une protection interne contre les accès multithread. Vous devez toutefois implémenter votre propre verrouillage si un thread doit accéder à des valeurs; par exemple, parcourir la liste des membres alors qu’un autre thread est susceptible d’appeler XblMultiplayerManagerDoWork.

Mise à jour du modèle basé sur les états

Multiplayer Manager gère un modèle basé sur les états qui met à jour les sessions en arrière-plan lorsque des joueurs rejoignent ou quittent la partie, ou lorsque des sessions sont mises à jour. Pour éviter les problèmes de synchronisation entre le thread de l’interface utilisateur et le thread de votre jeu, Multiplayer Manager ne met pas à jour l’état des sessions visible par l’application tant que vous n’appelez pas la méthode XblMultiplayerManagerDoWork. Traditionnellement, vous receviez des notifications d’événements, comme des modifications de session, sur un thread d’arrière-plan, puis vous deviez les synchroniser avec un thread d’interface utilisateur pour afficher ces modifications. Avec Multiplayer Manager, ce travail en coulisses est effectué à votre place. Vous pouvez appeler XblMultiplayerManagerDoWork sur votre thread principal au moment de votre choix pour obtenir le dernier instantané de l’état que Multiplayer Manager met en mémoire tampon pour vous en coulisses.

Événements et notifications

Multiplayer Manager définit un ensemble d’événements importants (voir XblMultiplayerEvent) et en informe le titre au moyen de la méthode XblMultiplayerManagerDoWork lorsqu’ils se produisent. Par exemple, les événements comprennent l’arrivée ou le départ de joueurs distants, la modification des propriétés des membres ou le changement d’état de la session. Toutes les API Multiplayer Manager sont asynchrones. La méthode XblMultiplayerManagerDoWork retourne une liste d’événements lorsque ces opérations asynchrones sont terminées. Votre titre doit gérer ces événements de manière appropriée en fonction de votre situation. Pour plus de détails, consultez la documentation de la classe XblMultiplayerEvent. Chaque XblMultiplayerEvent retourné inclut un EventArgsHandle, que vous devez utiliser pour obtenir les args appropriés au type d’événement. Par exemple, si le XblMultiplayerEventType est MemberJoined, vous pouvez appeler XblMultiplayerEventArgsMembersCount et XblMultiplayerEventArgsMembers. L’exemple suivant illustre l’utilisation de XblMultiplayerManagerDoWork pour gérer les événements.

API C plat

Pour plus d’informations, consultez les rubriques suivantes :

Scénarios

Cette section couvre des scénarios courants et les API que vous appelleriez dans chacun d’eux. Elle fournit également des informations sur ce que fait Multiplayer Manager en coulisses. Pour une vue d’ensemble de haut niveau de l’API, consultez Vue d’ensemble de l’API Multiplayer Manager.

Ce que Multiplayer Manager ne fait pas

Multiplayer Manager facilite grandement l’implémentation des scénarios multijoueurs et vous dispense de gérer certaines données. Toutefois, Multiplayer Manager ne gère pas les éléments suivants :
  • Les jeux sur serveur en ligne persistants, comme les jeux en ligne massivement multijoueurs (MMO) ou d’autres types de jeux nécessitant de grandes sessions (plus de 100 joueurs dans une session)
  • La gestion des sessions de serveur à serveur
  • La limitation des appels au MPSD afin de respecter la limitation du débit granulaire
  • Le mélange des API du service Multijoueur et des API Multiplayer Manager
Multiplayer Manager n’est limité à aucune technologie réseau spécifique et doit fonctionner avec n’importe quelle couche de communication réseau.

Ressources

Pour un exemple fonctionnel de l’API, consultez l’exemple NetRumble. Pour la documentation de l’API, consultez multiplayer_manager_c. Vous pouvez également consulter le fichier d’en-tête multiplayer_manager_c.h. Si vous avez des questions, des commentaires ou des problèmes d’utilisation de Multiplayer Manager, communiquez avec votre gestionnaire de compte développeur (DAM) ou publiez un fil de soutien sur les forums à l’adresse https://forums.xboxlive.com.
Dernière modification le 8 octobre 2026