> ## 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.

# Cycle de vie d'un serveur multijoueur

> Cycle de vie d'une session de serveur de jeu PlayFab Multiplayer Servers, de l'initialisation du GSDK et de ReadyForPlayers jusqu'aux états actif et arrêté, et au téléversement des journaux.

## Cycle de vie du SDK du serveur de jeu (GSDK) et du processus du serveur de jeu

Le cycle de vie des serveurs de jeu dans PlayFab Multiplayer Servers (MPS) est étroitement lié aux méthodes du [GSDK](https://github.com/PlayFab/gsdk) appelées par votre serveur de jeu ainsi qu'à l'état du processus du serveur de jeu.

<Note>
  Pour plus d'informations sur l'intégration de votre serveur de jeu au GSDK, consultez la documentation [ici](/fr-CA/services/playfab/multiplayer/servers/integrating-game-servers-with-gsdk).
</Note>

Au minimum, votre serveur de jeu peut intégrer le GSDK et fonctionner parfaitement sur MPS simplement en appelant la méthode **ReadyForPlayers** du GSDK. Toutefois, nous recommandons d'appeler également **Start** au démarrage du processus de votre serveur de jeu, afin que MPS sache que le serveur de jeu est en cours d'initialisation. L'appel de **Start** est important pour un serveur de jeu dont le démarrage prend du temps, car MPS arrête le serveur s'il ne reçoit pas de pulsations en temps voulu au démarrage du serveur de jeu.

## États d'un serveur de jeu

Voici les principaux états d'un serveur de jeu dans MPS :

* **Initializing** : le serveur de jeu passe à cet état lorsqu'il appelle la méthode **Start()** du GSDK. Dans cet état, le serveur de jeu commence à charger les actifs nécessaires et le GSDK commence à envoyer des pulsations à MPS.
* **StandingBy** : le serveur de jeu passe à cet état lorsqu'il appelle la méthode **ReadyForPlayers()** du GSDK. Cette méthode doit être appelée une fois tous les actifs de jeu nécessaires chargés. En substance, cet état signale à MPS que le serveur de jeu est prêt à être alloué afin que les joueurs puissent s'y connecter.
* **Active** : le serveur de jeu passe à cet état lorsqu'il est [alloué](/fr-CA/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools) à l'aide de l'appel d'API [RequestMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.requestmultiplayerserver). Cet état implique que les joueurs peuvent se connecter au serveur de jeu et profiter du jeu. Un serveur de jeu actif ne sera pas arrêté lors d'éventuelles réductions d'échelle de la build (par exemple, si le nombre de serveurs standingBy est diminué).
* **Terminating** : il s'agit de l'état auquel passe le serveur de jeu lorsque l'API [ShutDownMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.shutdownmultiplayerserver) est appelée. Cet état implique que le serveur de jeu est en cours d'arrêt et que les joueurs ne pourront plus s'y connecter.

Le processus du serveur de jeu peut se terminer proprement ou à la suite d'un plantage, et ce dans n'importe quel état. MPS :

* supprime le conteneur ou le processus qui exécute ce serveur de jeu
* collecte et charge les journaux du jeu afin qu'ils soient prêts pour l'archivage ([plus d'informations](/fr-CA/services/playfab/multiplayer/servers/archiving-and-retrieving-multiplayer-server-logs))
* crée un nouveau conteneur ou processus pour remplacer celui qui s'est terminé

<Note>
  Un serveur de jeu à l'état Active ne peut jamais revenir à l'état StandingBy. Une fois l'état du jeu défini sur Active, la seule façon d'obtenir un nouveau serveur de jeu à l'état StandingBy est que le processus de votre serveur de jeu se termine.
</Note>

### Durée de vie maximale d'un serveur

Les machines virtuelles qui hébergent les serveurs MPS ont une durée de vie maximale de 10 jours; la durée de vie d'un serveur est donc limitée par celle-ci. La durée de vie d'un serveur est garantie d'au moins 23 heures : MPS n'alloue pas de serveurs sur une machine virtuelle dont la durée de vie restante est inférieure à 23 heures. Le GSDK déclenche l'événement OnMaintenanceScheduled 23 heures avant l'arrêt forcé de la machine virtuelle, afin que les serveurs qui s'y exécutent puissent s'arrêter proprement à temps. Si un serveur s'exécute encore sur la machine virtuelle lorsque celle-ci atteint sa durée de vie maximale de 10 jours, le serveur est arrêté de force et aucun journal n'est téléversé. Pour éviter que votre serveur soit arrêté de force, assurez-vous que ses sessions durent toujours moins de 23 heures, ou utilisez l'événement OnMaintenanceScheduled du GSDK pour arrêter proprement le serveur et migrer les joueurs vers un autre serveur avant l'échéance.

### Arrêt d'un processus de serveur de jeu

À la fin de la session de jeu, vous devez arrêter proprement le processus du serveur de jeu afin d'obtenir un nouveau serveur de jeu. Si le processus du serveur de jeu plante, MPS crée un nouveau processus de serveur de jeu pour remplacer celui qui a planté. Si le serveur de jeu est bloqué ou figé, vous pouvez toujours appeler l'API [ShutDownMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.shutdownmultiplayerserver) pour arrêter manuellement le processus du serveur de jeu. Cette API ne doit être appelée que lorsque le processus du serveur de jeu ne peut pas s'arrêter de lui-même. Lorsque vous appelez cette API, le serveur de jeu passe aux états "Terminating" puis "Terminated". En outre, tous les serveurs bloqués à l'état Terminating ou Terminated sont remplacés par le système au bout d'un certain temps.

<Note>
  Le GSDK comporte un appel de méthode qui, s'il est utilisé, marque le serveur de jeu comme Unhealthy. Pour l'instant, MPS l'ignore, mais cela pourrait changer à l'avenir. Si cette fonctionnalité est essentielle pour vous, laissez une note dans le référentiel du GSDK [ici](https://github.com/PlayFab/gsdk/issues).
</Note>

### Vérification de l'intégration du GSDK à votre serveur de jeu

MPS offre un outil de développement permettant de tester l'intégration du GSDK aux serveurs de jeu. Cet outil s'appelle **LocalMultiplayerAgent**; vous pouvez le télécharger [ici](https://github.com/PlayFab/MpsAgent) et consulter la documentation [ici](/fr-CA/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab) pour plus d'informations.

### Exemples du GSDK

Pour consulter des exemples du GSDK illustrant l'intégration à des moteurs de jeu populaires, vous pouvez consulter le référentiel MpsSamples [ici](https://github.com/PlayFab/MpsSamples).


## Related topics

- [Exécuter un script personnalisé lors de la création d'une machine virtuelle (préversion)](/fr-CA/services/playfab/multiplayer/servers/vmstartupscript.md)
- [Pratiques exemplaires et liste de vérification du lancement](/fr-CA/services/playfab/multiplayer/servers/best-practices.md)
- [Cycle de vie d'une région de build de serveur multijoueur](/fr-CA/services/playfab/multiplayer/servers/multiplayer-build-region-lifecycle.md)
- [Cycle de vie des builds de serveur multijoueur](/fr-CA/services/playfab/multiplayer/servers/multiplayer-build-lifecycle.md)
- [Notions de base d'un serveur de jeu PlayFab](/fr-CA/services/playfab/multiplayer/servers/basics-of-a-playfab-game-server.md)
