教學課程:設定 Spot 執行個體的遊戲工作階段佇列 - Amazon GameLift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:設定 Spot 執行個體的遊戲工作階段佇列

簡介

本教學課程說明如何針對低成本 Spot 叢集上部署的遊戲設定遊戲工作階段配置。競價型艦隊需要額外的步驟來維持玩家持續的遊戲伺服器可用性。

目標對象

本教程適用於希望使用 Spot 艦隊託管自定義遊戲服務器或實時服務器的遊戲開發人員。

您將學到什麼
  • 定義您的遊戲工作階段佇列服務的玩家群組。

  • 建立艦隊基礎結構以支援遊戲工作階段佇列的範圍。

  • 為每個叢集指派別名以抽象叢集 ID。

  • 建立佇列、新增叢集,並排定 Amazon GameLift 放置遊戲工作階段的位置優先順序。

  • 新增玩家延遲政策,協助將延遲問題降到最低。

先決條件

在建立遊戲工作階段放置的叢集和佇列之前,請先完成下列工作:

步驟 1:定義佇列的範圍

在本教學課程中,我們會為具有一個遊戲伺服器組建變化的遊戲設計佇列。遊戲發行時,我們將在兩個地點推出:亞太區域 (首爾) 和亞太區域 (新加坡)。由於這些位置彼此很接近,因此延遲對我們的玩家來說並不是問題。

在這個例子中,有一個玩家段,這意味著我們創建一個隊列。未來,當我們在北美發行遊戲時,我們可以建立第二個隊列,以北美玩家為範圍。

如需詳細資訊,請參閱定義佇列的範圍

步驟 2:建立競價型叢集基礎架構

使用符合您在中定義範圍的遊戲伺服器組建或指令碼,在步驟 1:定義佇列的範圍位置建立車隊。

在本教學中,我們建立了兩個位置基礎結構,每個位置至少包含一個 Spot 叢集和一個隨需叢集。每個艦隊都會部署相同的遊戲伺服器組建。此外,我們預計首爾地區的玩家流量會更重,因此我們在那裡增加了更多 Spot 車隊。

下圖顯示 Spot 叢集基礎架構範例,在 ap-Northest-2 (首爾) 位置有 3 個車隊,在 ap-Spot-東南 -1 (新加坡) 位置有 2 個車隊。兩個叢集中的所有執行個體都使用組建 MBG_prod_v1。AP-North-2 中的叢集包含下列叢集組態:執行個體類型為 c5.large 的叢集 1234_spot_1、執行個體類型為 c5.xlarge 的叢集 1234_spot_2,以及執行個體類型為 c5.large 的叢集 1234_ondemand。AP 東南 -1 中的叢集包含下列叢集組態:執行個體類型為 c5.large 的叢集 1234_spot_1,以及執行個體類型為 c5.large 的叢集 1234_ondemand。

Spot 叢集基礎架構在亞太區域 (首爾) 和亞太區域 (新加坡) 設有據點,混合了隨需執行個體和 Spot 執行個體。

步驟 3:為每個叢集指派別名

為基礎結構中的每個叢集建立新的別名。別名抽象車隊身份,使定期更換車隊更換效率。如需建立別名的詳細資訊,請參閱在 Amazon GameLift 叢集中新增別名

我們的車隊基礎設施有五個車隊,因此我們使用路由策略創建五個別名。我們在亞太區域 (首爾) 地點需要三個別名,在亞太區域 (新加坡) 地點需要兩個別名。

下圖顯示步驟二中所述的競價型叢集基礎結構,並在每個叢集中新增了別名。叢集 1234_1 具有別名 MBG 點 _1,叢集 1234_SPOT 2 具有別名 MBG 點 _2,而叢集 1234 按需求具有別名 MBG。

步驟 2 中所述的 Spot 叢集基礎架構範例,其別名指向每個叢集。

如需詳細資訊,請參閱建立多位置佇列

步驟 4:建立包含目的地的佇列

建立遊戲工作階段佇列並新增您的艦隊目的地。如需建立佇列的詳細資訊,請參閱建立遊戲工作階段佇列

建立佇列時:

  • 將預設逾時設定為 10 分鐘。稍後,您可以測試佇列逾時如何影響玩家進入遊戲的等待時間。

  • 現在跳過有關玩家延遲政策的部分。我們將在下一步中介紹此內容。

  • 排定佇列中的艦隊優先順序。使用 Spot 叢集時,我們建議採用下列其中一種方法:

    • 如果您的基礎架構使用的是主要位置,且叢集位於第二個位置進行備份,請先依據位置排定叢集的優先順序,然後依機群類型排定

    • 如果您的基礎架構同樣使用多個位置,請依叢集類型排定叢集的優先順序,並將 Spot 叢集置於佇列的頂端。

在本教程中,我們創建一個名稱的新隊列MBG_spot_queue,並添加所有五個艦隊的別名。然後,我們首先按位置排定位置的優先順序,然後按車隊類型排序

根據此配置,此隊列總是嘗試將新的遊戲會話放入首爾的 Spot 艦隊中。當這些艦隊已滿時,佇列會使用首爾隨需叢集上的可用容量作為備份。如果三支首爾艦隊都無法使用,亞馬遜將在新加坡艦隊上GameLift放置遊戲會議。

下圖顯示逾時 300 秒和已排定優先順序目的地的佇列。目的地的順序如下:在東北-2 中的 1234_spot_1,在 AP-東北 -2 中為 1234_spot_2,在 AP-東北-2 中的 1234 點 _ 點 1,在 AP-東南 1 中為 1234 點 _ 點 1,以及在 AP-東南 1 的需求為 1234。

具有多個 Spot 叢集和隨需備份叢集的 Spot 佇列範例。

步驟 5:將延遲限制新增至佇列

我們的遊戲會在遊戲會話放置請求中包含延遲信息。我們還有一個玩家派對功能,可以為一群玩家創建遊戲會話。我們可以讓玩家等待更長時間才能進入具有理想遊戲體驗的遊戲。我們的遊戲測試顯示了以下觀察結果:

  • 低於 50 毫秒的延遲是理想的。

  • 遊戲在延遲超過 250 毫秒的情況下無法遊玩。

  • 玩家會在大約一分鐘內變得不耐煩。

對於我們的佇列,我們會在 300 秒的逾時時間內新增政策陳述式,以限制允許的延遲。原則陳述式會逐漸允許較大的延遲值,最多可達 250 毫秒。

透過此原則,我們的佇列會在第一分鐘尋找具有理想延遲 (低於 50 毫秒) 的放置位置,然後放寬限制。在玩家延遲為 250 毫秒或更高的情況下,佇列不會放置位置。

下圖顯示步驟 4 中新增了玩家延遲政策的佇列。播放器延遲政策狀態,強制執行 60 毫秒的 50 毫秒限制,在 30 秒強制執行 125 毫秒限制,並強制執行 250 毫秒限制,直到超時。

步驟四中新增了玩家延遲政策的範例佇列。播放器延遲政策狀態,強制執行 60 毫秒的 50 毫秒限制,在 30 秒強制執行 125 毫秒限制,並強制執行 250 毫秒限制,直到超時。

總結

恭喜您!以下是您完成的事情:

  • 您有一個遊戲工作階段佇列的範圍是您的玩家人口。

  • 您的佇列有效地使用 Spot 叢集,並且在 Spot 中斷發生時具有彈性。

  • 您的隊列會優先考慮艦隊,以獲得頂級玩家體驗。

  • 隊列有延遲限制,以保護玩家免受不良遊戲體驗的影響。

您現在可以使用佇列為其服務的玩家安排遊戲階段。向這些玩家提出遊戲工作階段放置要求時,請在請求中參考此遊戲工作階段佇列名稱。如需提出遊戲工作階段放置要求的詳細資訊,請參閱建立遊戲階段、或為即時伺服器整合遊戲用戶端

接下來的步驟: