遊戲伺服器 SDK (GSDK) 和遊戲伺服器處理序生命週期
PlayFab 多人遊戲伺服器 (MPS) 中的遊戲伺服器生命週期,與您的遊戲伺服器所呼叫的 GSDK 方法以及遊戲伺服器處理序的狀態密切相關。如需將遊戲伺服器與 GSDK 整合的詳細資訊,請查看此處的文件。
遊戲伺服器的狀態
以下是 MPS 中遊戲伺服器的主要狀態:- Initializing:遊戲伺服器呼叫 Start() GSDK 方法時會轉換為此狀態。在此狀態中,遊戲伺服器開始載入必要的資產。在此狀態中,GSDK 開始向 MPS 傳送活動訊號。
- StandingBy:遊戲伺服器呼叫 ReadyForPlayers() GSDK 方法時會轉換為此狀態。應在載入所有必要的遊戲資產後呼叫此方法。基本上,此狀態會向 MPS 表示遊戲伺服器已準備好被配置,讓玩家可以連線。
- Active:使用 RequestMultiplayerServer API 呼叫配置遊戲伺服器時,遊戲伺服器會轉換為此狀態。此狀態表示玩家可以連線至遊戲伺服器並享受遊戲。遊戲伺服器處於作用中狀態,表示在可能的組建規模縮減期間 (亦即,如果待命數目減少),它不會被關閉。
- Terminating:這是呼叫 ShutDownMultiplayerServer API 時遊戲伺服器轉換的狀態。此狀態表示遊戲伺服器正在關閉,玩家將無法連線。
- 移除執行此遊戲伺服器的容器/處理序
- 收集並上傳遊戲記錄,以便進行封存 (詳細資訊)
- 在其位置建立新的容器/處理序,以取代已終止的容器/處理序
遊戲伺服器處於 Active 狀態時,永遠無法轉換回 StandingBy 狀態。一旦遊戲狀態設定為 Active,取得處於 StandingBy 狀態之新遊戲伺服器的唯一方法,就是讓您的遊戲伺服器處理序結束。
伺服器存留期上限
裝載 MPS 伺服器的虛擬機器存留期上限為 10 天,因此伺服器的存留期受此限制。伺服器的存留期保證至少為 23 小時;MPS 不會在剩餘時間少於 23 小時的 VM 上配置伺服器。GSDK 會在 VM 被強制終止前 23 小時引發 OnMaintenanceScheduled 事件,讓 VM 上執行的任何伺服器都能及時正常關閉。如果 VM 達到 10 天的存留期上限時伺服器仍在其上執行,伺服器將被強制終止,且不會上傳任何記錄。為了確保您的伺服器不會被強制終止,請確保其工作階段一律少於 23 小時,或使用 GSDK 的 OnMaintenanceScheduled 事件,在期限之前正常關閉伺服器並將玩家移轉至另一部伺服器。終止遊戲伺服器處理序
遊戲工作階段結束時,您應正常終止遊戲伺服器處理序,以便取得新的遊戲伺服器。如果遊戲伺服器處理序損毀,MPS 會建立新的遊戲伺服器處理序來取代損毀的處理序。如果遊戲伺服器卡住或凍結,您隨時可以呼叫 ShutDownMultiplayerServer API 手動終止遊戲伺服器處理序。只有在遊戲伺服器處理序無法自行終止時,才應呼叫此 API。呼叫此 API 時,您會看到遊戲伺服器轉換為 “Terminating” 和 “Terminated” 狀態。此外,任何卡在 terminating 或 terminated 狀態的伺服器都會在一段時間後由系統取代。GSDK 上有一個方法呼叫,如果使用,會將遊戲伺服器標示為 Unhealthy。目前 MPS 會忽略它,但未來可能會變更。如果此功能對您很重要,請在此處的 GSDK 存放庫中留言。
