Lorsque vous publiez une version mise à jour d'un jeu sur Roblox, les joueurs ne sont pas immédiatement retirés des anciennes versions du jeu. Au lieu de cela, vous pouvez migrer les joueurs vers la version mise à jour en redémarrant tous vos serveurs obsolètes.
Si vous ne redémarrez pas les serveurs, les joueurs passent à la nouvelle version du jeu à mesure que les serveurs exécutant les anciennes versions se vident et s'arrêtent finalement. Cette option est non disruptive, mais votre base de joueurs pourrait jouer à différentes versions du jeu pendant une période prolongée ; si votre format de données de joueur sous-jacent change, vous devriez probablement redémarrer les serveurs.
Pour des mises à jour sensibles au temps, vous pourriez préférer déployer tôt, cacher le contenu derrière une configuration, puis changer la valeur de configuration pour publier votre nouveau contenu.
Redémarrer les serveurs
Pour redémarrer les serveurs lors de mises à jour de publication :
- Allez sur Créations et sélectionnez le jeu pour lequel vous voulez redémarrer les serveurs.
- Allez à Configurer ⟩ Gestion des serveurs.
- Sélectionnez les lieux que vous souhaitez redémarrer.
- Cliquez sur Redémarrer les serveurs.
- Dans la boîte de dialogue Confirmer le redémarrage du serveur :
- Sélectionnez une ou les deux des options de redémarrage suivantes :
- Redémarrer uniquement les serveurs avec des versions obsolètes pour éviter de redémarrer des serveurs qui exécutent la dernière version publiée du lieu.
- Différer le redémarrage du serveur pour retarder l'arrêt des serveurs et permettre aux joueurs un temps donné entre 1 et 60 minutes pour quitter le jeu par eux-mêmes au lieu d'être déconnectés temporairement. Cela est également connu sous le nom de saignement de serveur.
- Cliquez sur Redémarrer.
Après avoir redémarré les serveurs, Roblox :
- Stoppe tout matchmaking pour les serveurs désignés pour l'arrêt. Les joueurs qui rejoignent votre jeu en cliquant sur le bouton Jouer ne seront pas appariés à ces serveurs, mais ils pourront toujours les rejoindre en acceptant des invitations, en se téléportant ou en rejoignant un autre utilisateur depuis leur profil.
- Attend le temps de délai configuré, si vous avez sélectionné l'option Différer le redémarrage du serveur.
- Téléporte automatiquement les joueurs vers la version mise à jour du jeu. Tous les joueurs sur le même ancien serveur sont envoyés au même serveur de remplacement exécutant la nouvelle version.
Notifications sur les serveurs
Lorsque vous lancez un redémarrage de serveur différé, l'événement DataModel.ServerRestartScheduled se déclenche sur les serveurs concernés avec les arguments suivants :
- restartTime — Un DateTime. L'heure la plus tôt à laquelle le serveur est programmé pour s'arrêter.
- source — Cela sera toujours Enum.CloseReason.DeveloperUpdate pour vos mises à jour publiées.
- attributes — Un objet JSON optionnel que vous pouvez utiliser pour fournir des informations personnalisées sur le redémarrage, telles que la raison de la mise à jour, l'urgence, etc.
Dans vos scripts de serveur, vous pouvez vous abonner à cet événement pour fournir aux joueurs des informations sur le redémarrage à venir. Vous pourriez choisir de fournir un compte à rebours dans votre interface utilisateur, inciter les joueurs à sauvegarder leurs progrès, ou les téléporter vers des serveurs mis à jour au moment le plus opportun.
Les serveurs seront également informés lorsque Roblox doit redémarrer des serveurs pour des raisons de maintenance de l'infrastructure. Le même événement DataModel.ServerRestartScheduled se déclenche, avec source comme Enum.CloseReason.RobloxMaintenance et attributes comme un dictionnaire vide.