Game Server SDK(GSDK) 및 게임 서버 프로세스 수명 주기
PlayFab Multiplayer Servers(MPS)의 게임 서버 수명 주기는 게임 서버가 호출하는 GSDK 메서드 및 게임 서버 프로세스의 상태와 밀접하게 연관되어 있습니다.게임 서버와 GSDK 통합에 대한 자세한 내용은 여기에서 문서를 확인하세요.
게임 서버의 상태
MPS의 게임 서버의 주요 상태는 다음과 같습니다:- Initializing: 게임 서버가 Start() GSDK 메서드를 호출할 때 이 상태로 전환됩니다. 이 상태에서 게임 서버는 필요한 자산 로딩을 시작합니다. 이 상태에서 GSDK는 MPS에 하트비트를 보내기 시작합니다.
- StandingBy: 게임 서버가 ReadyForPlayers() GSDK 메서드를 호출할 때 이 상태로 전환됩니다. 이 메서드는 필요한 모든 게임 자산이 로드된 후 호출되어야 합니다. 기본적으로 이 상태는 MPS에게 게임 서버가 할당될 준비가 되었으므로 플레이어가 연결할 수 있음을 알립니다.
- Active: 게임 서버는 RequestMultiplayerServer API 호출을 사용하여 할당될 때 이 상태로 전환됩니다. 이 상태는 플레이어가 게임 서버에 연결하여 게임을 즐길 수 있음을 의미합니다. 게임 서버가 활성 상태라는 사실은 잠재적인 Build 축소 시(즉, standingBy 수가 감소하는 경우) 종료되지 않음을 의미합니다.
- Terminating: ShutDownMultiplayerServer API가 호출되었을 때 게임 서버가 전환되는 상태입니다. 이 상태는 게임 서버가 종료 중이며 플레이어가 연결할 수 없음을 의미합니다.
- 이 게임 서버를 실행 중인 컨테이너/프로세스를 제거
- 게임 로그를 수집 및 업로드하여 아카이브를 위한 준비(자세한 정보)
- 종료된 것을 대체하기 위해 새 컨테이너/프로세스를 생성
게임 서버는 Active 상태일 때 StandingBy 상태로 다시 전환할 수 없습니다. 게임 상태가 Active로 설정되면 StandingBy 상태의 새 게임 서버를 얻을 수 있는 유일한 방법은 게임 서버 프로세스가 종료되는 것입니다.
최대 서버 수명
MPS 서버를 호스팅하는 가상 머신의 최대 수명은 10일이므로 서버의 수명은 해당 수명에 의해 제한됩니다. 서버의 수명은 최소 23시간이 보장됩니다. MPS는 남은 시간이 23시간 미만인 VM에는 서버를 할당하지 않습니다. GSDK는 VM이 강제 종료되기 23시간 전에 OnMaintenanceScheduled 이벤트를 발생시켜 VM에서 실행 중인 서버가 제 시간에 정상적으로 종료될 수 있도록 합니다. VM이 최대 수명인 10일에 도달했을 때 서버가 여전히 VM에서 실행 중이면, 서버가 강제 종료되며 로그가 업로드되지 않습니다. 서버가 강제로 종료되지 않도록 하려면 세션이 항상 23시간 미만이 되도록 하거나, GSDK의 OnMaintenanceScheduled 이벤트를 사용하여 서버를 정상적으로 종료하고 마감 기한 전에 플레이어를 다른 서버로 마이그레이션하세요.게임 서버 프로세스 종료
게임 세션이 끝나면 새 게임 서버를 얻을 수 있도록 게임 서버 프로세스를 정상적으로 종료해야 합니다. 게임 서버 프로세스가 충돌하면 MPS가 충돌한 것을 대체할 새 게임 서버 프로세스를 생성합니다. 게임 서버가 멈추거나 정지된 경우 언제든지 ShutDownMultiplayerServer API를 호출하여 게임 서버 프로세스를 수동으로 종료할 수 있습니다. 이 API는 게임 서버 프로세스가 스스로 종료할 수 없을 때만 호출해야 합니다. 이 API를 호출하면 게임 서버가 “Terminating” 및 “Terminated” 상태로 전환되는 것을 볼 수 있습니다. 또한 terminating 또는 terminated 상태에 갇힌 모든 서버는 일정 시간이 지나면 시스템에 의해 교체됩니다.사용될 경우 게임 서버를 Unhealthy로 표시하는 GSDK 메서드 호출이 있습니다. 현재는 MPS에서 무시되지만, 향후 변경될 수 있습니다. 이 기능이 중요한 경우 GSDK 리포지토리에 남겨주세요.
