Skip to main content

Game Server SDK(GSDK) 및 게임 서버 프로세스 수명 주기

PlayFab Multiplayer Servers(MPS)의 게임 서버 수명 주기는 게임 서버가 호출하는 GSDK 메서드 및 게임 서버 프로세스의 상태와 밀접하게 연관되어 있습니다.
게임 서버와 GSDK 통합에 대한 자세한 내용은 여기에서 문서를 확인하세요.
최소한, ReadyForPlayers GSDK 메서드만 호출하여도 게임 서버가 GSDK를 통합하고 MPS에서 훌륭하게 실행될 수 있습니다. 그러나 게임 서버 프로세스가 시작될 때 Start도 호출하여 MPS가 게임 서버가 초기화 중임을 인식하도록 하는 것이 좋습니다. 게임 서버가 시작되는 데 시간이 걸리는 경우 Start를 호출하는 것이 중요한데, 게임 서버가 시작될 때 MPS가 적시에 하트비트를 받지 못하면 서버를 종료하기 때문입니다.

게임 서버의 상태

MPS의 게임 서버의 주요 상태는 다음과 같습니다:
  • Initializing: 게임 서버가 Start() GSDK 메서드를 호출할 때 이 상태로 전환됩니다. 이 상태에서 게임 서버는 필요한 자산 로딩을 시작합니다. 이 상태에서 GSDK는 MPS에 하트비트를 보내기 시작합니다.
  • StandingBy: 게임 서버가 ReadyForPlayers() GSDK 메서드를 호출할 때 이 상태로 전환됩니다. 이 메서드는 필요한 모든 게임 자산이 로드된 후 호출되어야 합니다. 기본적으로 이 상태는 MPS에게 게임 서버가 할당될 준비가 되었으므로 플레이어가 연결할 수 있음을 알립니다.
  • Active: 게임 서버는 RequestMultiplayerServer API 호출을 사용하여 할당될 때 이 상태로 전환됩니다. 이 상태는 플레이어가 게임 서버에 연결하여 게임을 즐길 수 있음을 의미합니다. 게임 서버가 활성 상태라는 사실은 잠재적인 Build 축소 시(즉, standingBy 수가 감소하는 경우) 종료되지 않음을 의미합니다.
  • Terminating: ShutDownMultiplayerServer API가 호출되었을 때 게임 서버가 전환되는 상태입니다. 이 상태는 게임 서버가 종료 중이며 플레이어가 연결할 수 없음을 의미합니다.
게임 서버 프로세스는 정상적으로 또는 충돌을 통해 종료될 수 있습니다. 이는 어느 상태에서든 발생할 수 있습니다. MPS는 다음을 수행합니다:
  • 이 게임 서버를 실행 중인 컨테이너/프로세스를 제거
  • 게임 로그를 수집 및 업로드하여 아카이브를 위한 준비(자세한 정보)
  • 종료된 것을 대체하기 위해 새 컨테이너/프로세스를 생성
게임 서버는 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 리포지토리에 남겨주세요.

게임 서버와 GSDK 통합 확인

MPS에는 게임 서버의 GSDK 통합을 테스트하기 위한 개발자 도구가 있습니다. 이 도구는 LocalMultiplayerAgent라고 하며, 여기에서 다운로드하고 자세한 내용은 여기에서 문서를 확인할 수 있습니다.

GSDK 샘플

인기 있는 게임 엔진과의 통합을 보여주는 GSDK 샘플을 확인하려면 MpsSamples 리포지토리를 확인할 수 있습니다.
마지막 수정일 2026년 8월 25일