> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modèles de session multijoueur

> Découvrez comment les modèles de session MPSD servent de plans pour créer des sessions multijoueurs, y compris les versions de modèle et des exemples que vous pouvez copier et modifier.

<a id="top" />

Cette rubrique décrit les modèles de session multijoueur et fournit des exemples de modèles que vous pouvez copier et modifier pour vos sessions multijoueurs.

Un modèle de session multijoueur est un plan permettant de créer une session multijoueur.
Toutes les sessions doivent être créées à partir d'un modèle prédéfini.

Un modèle définit des constantes identiques pour toute session créée à partir de ce modèle.
Lorsque vous créez une session à partir d'un modèle, vous pouvez ajouter et modifier des données supplémentaires dans la session. Vous ne pouvez cependant pas modifier les constantes définies dans le modèle.

Pour plus d'informations, consultez la section Vue d'ensemble des sessions de [Rubriques avancées sur les sessions multijoueurs](/fr-CA/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-overview).

Vous pouvez obtenir auprès de Multiplayer Session Directory (MPSD) la liste des modèles de session qui s'appliquent à un identificateur de configuration de service (SCID), ainsi que le contenu de modèles de session spécifiques.

## À propos des modèles de session

Un modèle de session permettant de créer ou de modifier une session utilise le même format qu'une requête HTTP `PUT`.
La différence est que le modèle définit uniquement des constantes. Les membres, les serveurs et les propriétés ne sont pas définis.

N'importe quelle constante de session peut être définie, y compris une section personnalisée et l'ensemble des constantes système.

### Versions des modèles de session

Les modèles de session définis dans cette rubrique sont construits à l'aide de la version de contrat de modèle 107.
Lorsque vous les utilisez pour créer un nouveau modèle, assurez-vous que la version de contrat est spécifiée sur 107.

Si vous utilisez XBOX Services API (XSAPI) et observez les requêtes résultantes dans le débogueur, vous remarquerez peut-être que les requêtes utilisent la version de contrat de modèle 105.
MPSD « met à niveau » de fait ces requêtes vers la version 107 lors de l'exécution.

<Note>Vous pouvez utiliser dans la requête une version de contrat différente de celle du modèle de session.</Note>

Si nécessaire, vous pouvez faire passer un modèle de session de la version 104 ou 105 à la version 107.

[Retour en haut de cette rubrique.](#top)

## Valeurs par défaut des modèles de session

Chaque session créée à partir d'un modèle de session commence comme une copie du modèle.
Les valeurs qui ne sont pas spécifiées dans le modèle peuvent l'être lors de la création de la session.
Des valeurs par défaut sont fournies dans certains cas lorsqu'aucune autre valeur n'est définie.

L'ensemble des délais d'expiration par défaut pour la version de contrat 107 est présenté dans l'exemple suivant.

```json theme={null}
    {
      "constants": {
        "system": {
          "reservedRemovalTimeout": 30000,
          "inactiveRemovalTimeout": 0,
          "readyRemovalTimeout": 180000,
          "sessionEmptyTimeout": 0
        }
      }
    }
```

Vous pouvez forcer une valeur à rester non définie en spécifiant `null`.
Cela remplace tout paramètre par défaut et empêche la définition de la valeur lors de la création de la session.

Par exemple, pour supprimer `sessionEmptyTimeout` afin que même les sessions vides persistent indéfiniment, ajoutez ce qui suit au modèle de session.

```json theme={null}
    {
      "constants": {
        "system": {
          "sessionEmptyTimeout": null
        }
      }
    }
```

<Info>Les constantes définies au moyen d'un modèle ne peuvent pas être modifiées par des écritures dans MPSD. Pour modifier les valeurs, vous devez créer et soumettre un nouveau modèle contenant les modifications requises.</Info>

[Retour en haut de cette rubrique.](#top)

## Exemples de modèles de session

Cette section fournit des exemples de modèles de session pour divers usages et diverses topologies réseau.
Vous pouvez apporter les modifications nécessaires à un modèle approprié et le coller dans votre configuration de service.

### Session de lobby standard

Utilisez ce modèle pour créer une session de lobby pour votre jeu.

* Remplacez la valeur `maxMembersCount` par le nombre maximal de joueurs que vous souhaitez prendre en charge dans votre session de lobby.
* Si votre titre ne permet pas à des joueurs de plateformes différentes (comme une console XBOX et un PC Windows) de jouer ensemble, vous pouvez supprimer l'élément `crossPlay`.
* Vous pouvez également modifier les autres valeurs. Les valeurs suivantes constituent un bon point de départ si vous ne savez pas exactement ce dont vous avez besoin.

```json theme={null}
{
   "constants": {
        "system": {
            "version": 1,
            "maxMembersCount": 8,
            "visibility": "open",
            "capabilities": {
                "connectivity": true,
                "connectionRequiredForActiveMembers": true,
                "crossPlay": true,
                "userAuthorizationStyle": true
            },
        },
        "custom": {}
    }
}
```

### Session de jeu standard sans matchmaking

Utilisez ce modèle pour créer une session de jeu pour votre jeu si celui-ci n'inclut pas de matchmaking anonyme et ne nécessite pas plus de 100 membres.

Ce modèle n'ajoute que deux nouvelles valeurs à celles spécifiées dans le modèle de session de lobby standard.

* `constants.system.inviteProtocol : "game"`
* `constants.system.capabilities.gameplay : true`

```json theme={null}
{
   "constants": {
        "system": {
            "version": 1,
            "maxMembersCount": 8,
            "visibility": "open",
            "inviteProtocol": "game",
            "capabilities": {
                "connectivity": true,
                "connectionRequiredForActiveMembers": true,
                "gameplay" : true,
                "crossPlay": true,
                "userAuthorizationStyle": true
            }
        },
        "custom": {}
    }
}
```

### Ajouter le matchmaking à un modèle de session de jeu, avec des vérifications de qualité de service (QoS) gérées par le service Multiplayer

Pour activer le matchmaking dans votre jeu, spécifiez des valeurs pour `memberInitialization` dans votre modèle de session de jeu.

Lorsque vous créez votre hopper SmartMatch, utilisez le modèle suivant comme modèle de session cible de votre hopper.

```json theme={null}
{
   "constants": {
        "system": {
            "memberInitialization": {
               "joinTimeout": 20000,
               "measurementTimeout": 15000,
               "membersNeededToStart": 2
            }
        }
    }
}
```

### Ajouter le matchmaking à une session de jeu, avec des vérifications QoS gérées par un centre de données géré par le titre

```json theme={null}
{
   "constants": {
        "system": {
            "peerToHostRequirements": {  
                "latencyMaximum": 250,
                "bandwidthDownMinimum": 256,
                "bandwidthUpMinimum": 256,
                "hostSelectionMetric": "latency"
            },
            "memberInitialization": {
               "joinTimeout": 15000,
               "measurementTimeout": 15000,
               "membersNeededToStart": 2
            }
        },
        "custom": {}
    }
}
```

### Modèle de session de base pour une session de jeu client/serveur

Utilisez le modèle suivant pour un titre dont les clients se connectent à un serveur hébergé par un tiers au lieu d'utiliser une communication pair-à-pair.

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 12,
          "visibility": "open",
          "inviteProtocol": "game",
          "capabilities": {
            "connectionRequiredForActiveMembers": true,
            "gameplay": true,
          },
        },
        "custom": {}
      }
    }
```

### Modèle de session de lobby ou de ticket SmartMatch pour une mise en réseau entre pairs

Utilisez le modèle suivant pour créer une session de lobby ou une session de ticket SmartMatch afin d'envoyer un groupe de joueurs en matchmaking.

Ce modèle est destiné aux clients qui utilisent une topologie réseau pair-à-pair ou pair-à-hôte. Il ne configure pas de session de jeu.

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 10,
          "visibility": "open",
          "capabilities": {
            "connectionRequiredForActiveMembers": true,
          },
          "memberInitialization": {
            "membersNeededToStart": 1
          },
        },
        "custom": {}
      }
    }
```

[Retour en haut de cette rubrique.](#top)

### Modèles QoS

Si votre jeu utilise le matchmaking et évalue la QoS, vous devez ajouter des constantes au modèle de session pour indiquer à MPSD de se coordonner avec le client afin de gérer les utilisateurs qui rejoignent la session.
Cette coordination valide la qualité de l'état de connexion avant d'informer les utilisateurs que la partie est prête à commencer.

Dans le cas des jeux client/serveur, la coordination valide la qualité de la connexion avant qu'un groupe de joueurs n'entre en matchmaking.

#### Modèle de session de jeu pair-à-hôte avec QoS

Utilisez le modèle suivant pour créer une session de jeu pair-à-hôte avec QoS.

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 12,
          "visibility": "open",
          "inviteProtocol": "game",
          "capabilities": {
            "connectivity": true,
            "connectionRequiredForActiveMembers": true,
            "gameplay" : true
          },
          "memberInitialization": {
            "membersNeededToStart": 2
          },
          "peerToHostRequirements": {
            "latencyMaximum": 350,
            "bandwidthDownMinimum": 1000,
            "bandwidthUpMinimum": 1000,
            "hostSelectionMetric": "latency"
          }
        },
        "custom": { }
      }
    }
```

#### Modèle de session de jeu pair-à-pair avec QoS

Utilisez le modèle suivant pour créer une session de jeu pair-à-pair avec QoS.

```json theme={null}
    {
    "constants": {
      "system": {
        "version": 1,
        "maxMembersCount": 12,
        "visibility": "open",
        "inviteProtocol": "game",
        "capabilities": {
          "connectivity": true,
          "connectionRequiredForActiveMembers": true,
          "gameplay" : true
        },
        "memberInitialization": {
          "membersNeededToStart": 2
        },
        "peerToPeerRequirements": {
          "latencyMaximum": 250,
          "bandwidthMinimum": 10000
        }
      },
      "custom": { }
     }
    }
```

#### Modèle de session de lobby ou de matchmaking client/serveur avec QoS

Utilisez le modèle suivant pour créer une session de lobby ou une session de matchmaking à l'aide de la QoS.
Ce modèle ne doit pas être utilisé pour configurer une session de jeu.

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 12,
          "visibility": "open",
          "memberInitialization": {
            "membersNeededToStart": 1
          }
        },
        "custom": {}
      }
    }
```

#### Modèle de session pour le jeu multiplateforme entre XBOX One et Windows 10

Utilisez le modèle suivant pour activer le multijoueur multiplateforme entre XBOX One (ou version ultérieure) et Windows 10.

* La fonctionnalité facultative `crossPlay` prend en charge des interactions telles que les invitations et la jonction en cours de partie entre plateformes.

* La fonctionnalité `userAuthorizationStyle` permet l'accès à Windows 10.

```json theme={null}
    {
      "constants": {
        "system": {
          "capabilities": {
            "crossPlay": true,
            "userAuthorizationStyle": true
          },
        },
        "custom": {}
      }
    }
```


## Related topics

- [Rôles multijoueurs](/fr-CA/services/xbox-services/multiplayer/concepts/live-multiplayer-roles.md)
- [Configuration du service Multijoueur](/fr-CA/services/xbox-services/multiplayer/concepts/live-configure-the-multiplayer-service.md)
- [Rubriques avancées sur les sessions multijoueurs](/fr-CA/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details.md)
- [Tâches multijoueurs](/fr-CA/services/xbox-services/multiplayer/mpsd/how-to/live-mpsd-how-tos.md)
- [FAQ et résolution des problèmes multijoueurs](/fr-CA/services/xbox-services/multiplayer/mpsd/concepts/live-multiplayer-2015-faq.md)
