跳轉到主要內容

遊戲伺服器 SDK (GSDK) 和遊戲伺服器處理序生命週期

PlayFab 多人遊戲伺服器 (MPS) 中的遊戲伺服器生命週期,與您的遊戲伺服器所呼叫的 GSDK 方法以及遊戲伺服器處理序的狀態密切相關。
如需將遊戲伺服器與 GSDK 整合的詳細資訊,請查看此處的文件。
至少,您的遊戲伺服器只要呼叫 ReadyForPlayers GSDK 方法,就可以整合 GSDK 並在 MPS 上順利執行。不過,我們建議在遊戲伺服器處理序啟動時也呼叫 Start,讓 MPS 知道遊戲伺服器正在初始化。對於需要時間才能啟動的遊戲伺服器,呼叫 Start 很重要,因為如果 MPS 在遊戲伺服器啟動時未及時收到活動訊號,就會關閉伺服器。

遊戲伺服器的狀態

以下是 MPS 中遊戲伺服器的主要狀態:
  • Initializing:遊戲伺服器呼叫 Start() GSDK 方法時會轉換為此狀態。在此狀態中,遊戲伺服器開始載入必要的資產。在此狀態中,GSDK 開始向 MPS 傳送活動訊號。
  • StandingBy:遊戲伺服器呼叫 ReadyForPlayers() GSDK 方法時會轉換為此狀態。應在載入所有必要的遊戲資產後呼叫此方法。基本上,此狀態會向 MPS 表示遊戲伺服器已準備好被配置,讓玩家可以連線。
  • Active:使用 RequestMultiplayerServer API 呼叫配置遊戲伺服器時,遊戲伺服器會轉換為此狀態。此狀態表示玩家可以連線至遊戲伺服器並享受遊戲。遊戲伺服器處於作用中狀態,表示在可能的組建規模縮減期間 (亦即,如果待命數目減少),它不會被關閉。
  • Terminating:這是呼叫 ShutDownMultiplayerServer API 時遊戲伺服器轉換的狀態。此狀態表示遊戲伺服器正在關閉,玩家將無法連線。
遊戲伺服器處理序可能會正常終止,或因損毀而終止。這可能在任何狀態下發生。MPS 將會:
  • 移除執行此遊戲伺服器的容器/處理序
  • 收集並上傳遊戲記錄,以便進行封存 (詳細資訊)
  • 在其位置建立新的容器/處理序,以取代已終止的容器/處理序
遊戲伺服器處於 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 存放庫中留言。

驗證 GSDK 與遊戲伺服器的整合

MPS 有一個開發人員工具,可用來測試遊戲伺服器的 GSDK 整合。此工具稱為 LocalMultiplayerAgent,您可以在此處下載,並在此處查看文件以取得詳細資訊。

GSDK 範例

若要查看示範與熱門遊戲引擎整合的 GSDK 範例,您可以在此處查看 MpsSamples 存放庫。
最後修改於 2026年10月8日