SDK de servidor de juegos (GSDK) y ciclo de vida del proceso del servidor de juegos
El ciclo de vida del servidor de juegos en PlayFab Multiplayer Servers (MPS) está estrechamente ligado a los métodos del GSDK que llama el servidor de juegos, así como al estado del proceso del servidor de juegos.Para obtener más información sobre la integración del servidor de juegos con el GSDK, consulte la documentación aquí.
Estados de un servidor de juegos
Estos son los estados principales de un servidor de juegos en MPS:- Initializing: el servidor de juegos pasa a este estado cuando llama al método Start() del GSDK. En este estado, el servidor de juegos está empezando a cargar los recursos necesarios. En este estado, el GSDK empieza a enviar latidos a MPS.
- StandingBy: el servidor de juegos pasa a este estado cuando llama al método ReadyForPlayers() del GSDK. Este método debe llamarse cuando se hayan cargado todos los recursos necesarios del juego. En esencia, este estado indica a MPS que el servidor de juegos está listo para asignarse, de modo que los jugadores puedan conectarse a él.
- Active: el servidor de juegos pasa a este estado cuando se asigna mediante la llamada API RequestMultiplayerServer. Este estado implica que los jugadores pueden conectarse al servidor de juegos y disfrutar del juego. El hecho de que el servidor de juegos esté activo significa que no se retirará durante posibles reducciones de escala de la compilación (es decir, si se reduce el número de servidores en espera).
- Terminating: este es el estado al que pasa el servidor de juegos cuando se llama a la API ShutDownMultiplayerServer. Este estado implica que el servidor de juegos se está apagando y no estará disponible para que los jugadores se conecten.
- quitar el contenedor o proceso que ejecuta este servidor de juegos
- recopilar y cargar los registros del juego para que estén listos para su archivado (más información)
- crear un contenedor o proceso nuevo en su lugar para reemplazar al que se terminó
Un servidor de juegos nunca puede volver al estado StandingBy cuando está en el estado Active. Una vez que el estado del juego se establece en Active, la única manera de obtener un nuevo servidor de juegos en estado StandingBy es que el proceso del servidor de juegos se cierre.
Duración máxima del servidor
Las máquinas virtuales que hospedan los servidores de MPS tienen una duración máxima de 10 días, por lo que la duración de un servidor está limitada por esa duración. Se garantiza que la duración de un servidor sea de al menos 23 horas; MPS no asignará servidores en una máquina virtual a la que le queden menos de 23 horas. El GSDK desencadenará el evento OnMaintenanceScheduled 23 horas antes de que la máquina virtual se termine de forma forzosa, para que los servidores que se ejecuten en ella puedan apagarse correctamente a tiempo. Si un servidor sigue ejecutándose en la máquina virtual cuando esta alcanza su duración máxima de 10 días, el servidor se terminará de forma forzosa y no se cargará ningún registro. Para asegurarse de que el servidor no se termine de forma forzosa, asegúrese de que sus sesiones duren siempre menos de 23 horas o use el evento OnMaintenanceScheduled del GSDK para apagar correctamente el servidor y migrar a los jugadores a otro antes de la fecha límite.Terminación de un proceso de servidor de juegos
Cuando finaliza la sesión de juego, debe terminar correctamente el proceso del servidor de juegos para poder obtener un servidor de juegos nuevo. Si el proceso del servidor de juegos se bloquea, MPS creará un proceso de servidor de juegos nuevo para reemplazar al que se bloqueó. En caso de que el servidor de juegos se quede atascado o congelado, siempre puede llamar a la API ShutDownMultiplayerServer para terminar manualmente el proceso del servidor de juegos. Esta API solo debe llamarse cuando el proceso del servidor de juegos no puede terminar por sí mismo. Cuando llame a esta API, verá que el servidor de juegos pasa a los estados “Terminating” y “Terminated”. Además, el sistema reemplazará después de un período de tiempo a cualquier servidor que quede atascado en los estados terminating o terminated.Hay una llamada de método en el GSDK que, si se usa, marcará el servidor de juegos como Unhealthy. Por el momento, MPS la ignora, pero esto puede cambiar en el futuro. Si esta característica es fundamental para usted, deje una nota en el repositorio del GSDK aquí.
