Passer au contenu principal
Cette rubrique explique comment un titre confirme qu’un nombre suffisant de joueurs ont rejoint une session cible et peuvent se connecter lorsqu’ils y sont mis en relation. Un groupe de joueurs est mis en relation dans une session cible par le matchmaking SmartMatch. Le titre doit prendre des mesures pour confirmer qu’un nombre suffisant de joueurs l’ont rejointe afin qu’ils puissent se connecter les uns aux autres si nécessaire. Ce processus est appelé initialisation de la session cible. Pour les jeux qui utilisent des topologies réseau pair à pair, un aspect important de l’initialisation de la session cible est la mesure et l’évaluation de la qualité de service (QoS). Les opérations associées sont les suivantes.
  • La mesure de la latence et de la bande passante entre consoles XBOX One (ou version ultérieure) ou entre consoles et serveurs
  • L’évaluation des mesures obtenues pour déterminer si la connexion réseau entre les nœuds est bonne
L’organigramme suivant illustre l’implémentation de l’initialisation de la session cible et des opérations QoS. Image d'un organigramme QoS du matchmaking illustrant l'implémentation de l'initialisation de la session cible et des opérations QoS

Initialisation gérée

Le Multiplayer Session Directory (MPSD) prend en charge une fonctionnalité appelée initialisation gérée, grâce à laquelle il coordonne le processus d’initialisation de la session cible entre les clients impliqués dans une session. Le MPSD suit automatiquement les étapes d’initialisation et les délais d’expiration associés de la session. Le MPSD évalue également la connectivité entre les clients, si nécessaire. L’initialisation gérée est représentée par l’énumération XblMultiplayerInitializationStage.
Nous vous recommandons vivement d’utiliser le matchmaking SmartMatch dans votre titre afin de tirer parti de la fonctionnalité d’initialisation gérée par le MPSD.

Épisodes et étapes de l’initialisation gérée

Une session cible fait l’objet d’une initialisation gérée chaque fois que le matchmaking ajoute de nouveaux joueurs à la session. SmartMatch ajoute les membres de session avec l’état utilisateur Reserved, ce qui signifie que chaque membre occupe une place mais n’a pas encore rejoint la session. Chaque groupe de nouveaux joueurs déclenche un nouvel épisode d’initialisation. Une fois l’initialisation terminée, chaque joueur réussit ou échoue le processus. Un joueur dont l’initialisation réussit peut jouer à l’aide de la session cible. Un joueur dont l’initialisation échoue doit être soumis de nouveau au matchmaking pour être mis en relation dans une autre session. Lorsqu’une session est soumise au matchmaking avec le paramètre preserveSession défini sur Always, les membres préexistants de la session ne font pas l’objet d’une initialisation, car le MPSD suppose qu’ils sont correctement configurés. Chaque épisode d’initialisation gérée comprend les étapes suivantes.
  • Jonction : les membres de la session s’inscrivent dans la session pour faire passer leur état utilisateur de Reserved à Active. Ils peuvent charger des données de base, comme une adresse d’appareil sécurisée.
  • Mesure : pour les topologies basées sur des pairs, les membres de la session mesurent la QoS entre eux, puis chargent les résultats dans la session.
  • Évaluation : le MPSD évalue les résultats des deux dernières étapes, puis détermine si la session ou les membres ont été initialisés avec succès.
Le code du titre agit sur la session pour faire progresser chaque joueur (et donc la session) dans les phases de jonction et de mesure. Le titre peut ensuite commencer à jouer ou revenir au matchmaking une fois que l’étape d’évaluation a réussi ou échoué.

Configuration de la session cible pour l’initialisation

Le titre peut configurer le processus d’initialisation gérée à l’aide de constantes dans la session cible en cours d’initialisation. Ces constantes sont définies sous /constants/system dans le modèle de session de version 107. Nous recommandons cette version de modèle. Vous pouvez définir les deux types de paramètres de configuration suivants.
  • Les paramètres qui configurent le processus d’initialisation gérée dans son ensemble
  • Les paramètres qui configurent les exigences de QoS
Pour des exemples de modèles de session correspondant à des scénarios de titre courants, consultez Modèles de session multijoueur et Vue d’ensemble du Multiplayer Session Directory.
Si les exigences de QoS ne sont pas définies dans la configuration d’initialisation de la session cible, l’étape de mesure de l’initialisation est ignorée.

Configuration de l’initialisation gérée dans son ensemble

Pour contrôler l’initialisation gérée dans son ensemble, définissez les champs suivants. Les champs à définir pour contrôler l’initialisation gérée font partie de l’objet /constants/system/memberInitialization.
  • joinTimeout : spécifie la durée pendant laquelle le MPSD attend que chaque membre rejoigne la session, après le début de l’épisode d’initialisation. La valeur par défaut est de 10 secondes.
  • measurementTimeout : spécifie la durée pendant laquelle le MPSD attend que chaque membre charge les résultats de mesure QoS, après le début de l’étape de mesure. La valeur par défaut est de 30 000 secondes.
  • membersNeededToStart : spécifie le nombre de membres dont l’initialisation doit réussir pour que le premier épisode d’initialisation réussisse. La valeur par défaut est 1.
Si ce seuil n’est pas atteint, l’initialisation échoue pour tous les membres.

Configuration des exigences de QoS

La QoS n’est nécessaire pendant l’initialisation que si le titre utilise une topologie pair à pair ou pair à hôte. Chaque topologie correspond à une constante propre à la topologie sous /constants/system/.

Configuration des exigences de QoS pour une topologie pair à pair

Il est rare que des titres définissent des exigences de QoS pour une topologie pair à pair. Ces paramètres sont très restrictifs et posent des problèmes aux joueurs dont la traduction d’adresses réseau (NAT) est stricte.
Vous pouvez définir les exigences de QoS d’une topologie pair à pair dans l’objet peerToPeerRequirements. Chaque client doit pouvoir se connecter à tous les autres clients. L’objet peerToPeerRequirements comporte les champs pertinents suivants.
  • latencyMaximum : spécifie la latence maximale entre deux clients quelconques
  • bandwidthMinimum : spécifie la bande passante minimale entre deux clients quelconques

Configuration des exigences de QoS pour une topologie pair à hôte

Vous pouvez définir les exigences de QoS d’une topologie pair à hôte dans l’objet peerToHostRequirements. Chaque client doit pouvoir se connecter à un hôte commun unique. Si cet objet est configuré et que l’initialisation réussit, le MPSD crée une liste initiale de clients pouvant servir d’hôtes, appelés candidats hôtes. Définissez les champs suivants.
  • latencyMaximum : spécifie la latence maximale entre chaque pair et l’hôte
  • bandwidthDownMinimum : spécifie la bande passante descendante minimale entre chaque pair et l’hôte
  • bandwidthUpMinimum : spécifie la bande passante montante minimale entre chaque pair et l’hôte
  • hostSelectionMetric : spécifie la métrique utilisée pour sélectionner l’hôte

Voir aussi

Modèles de session multijoueur Vue d’ensemble du Multiplayer Session Directory
Dernière modification le 8 octobre 2026