Cuando publicas una versión actualizada de un juego en Roblox, los jugadores no son eliminados de inmediato de las versiones antiguas del juego. En su lugar, puedes migrar a los jugadores a la versión actualizada reiniciando todos tus servidores obsoletos.
Si no reinicias los servidores, los jugadores transicionan a la nueva versión del juego a medida que los servidores que ejecutan versiones antiguas eventualmente se vacían y se apagan. Esta opción no es disruptiva, pero tu base de jugadores podría estar jugando diferentes versiones del juego durante un período prolongado de tiempo; si tu formato de datos de jugador subyacente cambia, probablemente deberías reiniciar los servidores.
Para actualizaciones sensibles al tiempo, podrías preferir implementar temprano, ocultar contenido detrás de un config, y luego cambiar el valor del config para lanzar tu nuevo contenido.
Reiniciar servidores
Para reiniciar servidores para actualizaciones de lanzamiento:
- Ve a Creaciones y selecciona el juego para el que deseas reiniciar los servidores.
- Ve a Configurar ⟩ Gestión de Servidores.
- Selecciona los lugares que deseas reiniciar.
- Haz clic en Reiniciar Servidores.
- En el cuadro de diálogo Confirmar Reinicio del Servidor:
- Selecciona una o ambas de las siguientes opciones de reinicio:
- Reiniciar solo servidores con versiones obsoletas para evitar reiniciar servidores que están ejecutando la última versión publicada del lugar.
- Retrasar reinicio del servidor para retrasar el apagado de los servidores y permitir a los jugadores un tiempo establecido entre 1 y 60 minutos para salir del juego por su cuenta en lugar de ser desconectados temporalmente. Esto también se conoce como desbordamiento del servidor.
- Haz clic en Reiniciar.
Después de reiniciar los servidores, Roblox:
- Detiene todo el emparejamiento con los servidores designados para apagarse. Los jugadores que se unan a tu juego haciendo clic en el botón Jugar no serán emparejados con estos servidores, pero aún pueden unirse a ellos aceptando invitaciones, teletransportándose o uniéndose a otro usuario desde su perfil.
- Espera el tiempo de retraso configurado, si seleccionaste la opción Retrasar reinicio del servidor.
- Teletransporta automáticamente a los jugadores a la versión actualizada del juego. Todos los jugadores en el mismo servidor antiguo son enviados al mismo servidor de reemplazo que ejecuta la nueva versión.
Notificaciones en servidores
Cuando lanzas un reinicio de servidor retrasado, el evento DataModel.ServerRestartScheduled se activará en los servidores afectados con los siguientes argumentos:
- restartTime — Un DateTime. El momento más temprano en que el servidor está programado para apagarse.
- source — Esto siempre será Enum.CloseReason.DeveloperUpdate para tus actualizaciones publicadas.
- attributes — Un objeto JSON opcional que puedes usar para proporcionar información personalizada sobre el reinicio, como la razón de la actualización, urgencia, etc.
En tus scripts de servidor, puedes suscribirte a este evento para proporcionar a los jugadores información sobre el próximo reinicio. Podrías optar por proporcionar un temporizador de cuenta regresiva en tu interfaz de usuario, solicitar a los jugadores que guarden su progreso, o teletransportarlos a servidores actualizados en el momento más conveniente.
Los servidores también serán notificados cuando Roblox necesite reiniciar servidores por razones de mantenimiento de infraestructura. Se activa el mismo evento DataModel.ServerRestartScheduled, con source como Enum.CloseReason.RobloxMaintenance y attributes como un diccionario vacío.