本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用 Spot 執行個體建立 Amazon GameLift 佇列
- 簡介
-
本教學說明如何為部署在低成本 Spot 機群上的遊戲設定遊戲工作階段置放。Spot 機群需要額外步驟,以維持玩家的持續遊戲伺服器可用性。
- 目標對象
-
本教學課程適用於想要使用 Spot 機群託管自訂遊戲伺服器或即時伺服器的遊戲開發人員。
- 您將學到的內容
-
-
定義遊戲工作階段佇列服務的玩家群組。
-
建置機群基礎設施以支援遊戲工作階段佇列的範圍。
-
為每個機群指派別名,以抽象機群 ID。
-
建立佇列、新增機群,並排定 Amazon GameLift 放置遊戲工作階段的優先順序。
-
新增播放器延遲政策,以協助將延遲問題降至最低。
-
- 必要條件
-
在建立遊戲工作階段置放的機群和佇列之前,請完成下列任務:
步驟 1:定義佇列的範圍
在本教學課程中,我們會為具有一個遊戲伺服器建置變異的遊戲設計佇列。推出時,我們會在兩個位置推出遊戲:亞太區域 (首爾) 和亞太區域 (新加坡)。由於這些位置彼此靠近,延遲對我們的玩家來說不是問題。
在此範例中,有一個播放器區段,這表示我們建立一個佇列。未來,當我們在北美發行遊戲時,我們可以建立第二個佇列,該佇列適用於北美玩家。
如需詳細資訊,請參閱定義佇列的範圍。
步驟 2:建立 Spot 機群基礎設施
在位置 和 中建立機群,並使用遊戲伺服器建置或符合您在 中定義範圍的指令碼步驟 1:定義佇列的範圍。
在本教學課程中,我們會建立一個兩個位置基礎設施,在每個位置至少有一個 Spot 機群和一個隨需機群。每個機群都會部署相同的遊戲伺服器建置。此外,我們預期在首爾位置的玩家流量會更重,因此我們在那裡新增了更多 Spot 機群。
下圖顯示 Spot 機群基礎設施範例,其中 3 個機群位於 ap-northeast-2 (首爾) 位置,而 2 個機群位於 ap-southeast-1 (新加坡) 位置。兩個機群中的所有執行個體都使用 build MBG_prod_V1。ap-northeast-2 中的機群包含下列機群組態:執行個體類型為 c5.large 的機群 1234_spot_1、執行個體類型為 c5.xlarge 的機群 1234_spot_2,以及執行個體類型為 c5.large 的機群 1234_ondemand。ap-southeast-1 中的機群包含下列機群組態:具有 c5.large 執行個體類型的機群 1234_spot_1,以及具有 c5.large 執行個體類型的機群 1234_ondemand。
步驟 3:為每個機群指派別名
為基礎設施中的每個機群建立新的別名。別名抽象機群身分,讓機群定期更換更有效率。如需建立別名的詳細資訊,請參閱 建立 Amazon GameLift 別名。
我們的機群基礎設施有五個機群,因此我們使用路由策略建立五個別名。我們需要在亞太區域 (首爾) 位置使用三個別名,在亞太區域 (新加坡) 位置使用兩個別名。
下圖顯示步驟 2 中所述的 Spot 機群基礎設施,並將別名新增至每個機群。Fleet 1234_spot_1 具有別名 MBG_spot_1,Fleet 1234_spot_2 具有別名 MBG_spot_2,而 fleet 1234_ondemand 具有別名 MBG_ondemand。
如需詳細資訊,請參閱建置多位置佇列。
步驟 4:建立具有目的地的佇列
建立遊戲工作階段佇列並新增機群目的地。如需建立佇列的詳細資訊,請參閱 建立遊戲工作階段佇列。
建立佇列時:
-
將預設逾時設定為 10 分鐘。稍後,您可以測試佇列逾時如何影響玩家進入遊戲的等待時間。
-
暫時略過播放器延遲政策的區段。我們將在下一個步驟中說明這一點。
-
排定佇列中的機群優先順序。使用 Spot 機群時,我們建議採用下列其中一種方法:
-
如果您的基礎設施在第二個位置使用機群的主要位置進行備份,請先依位置排定機群的優先順序,然後依機群類型排列。
-
如果您的基礎設施平均使用多個位置,請根據機群類型排定機群的優先順序,將 Spot 機群置於佇列頂端。
-
在此教學課程中,我們會使用名稱 建立新的佇列MBG_spot_queue
,並新增所有五個機群的別名。然後,我們會先按位置排定置放的優先順序,再按機群類型排定置放的優先順序。
根據此組態,此佇列一律會嘗試將新的遊戲工作階段放入首爾的 Spot 機群。當這些機群已滿時,佇列會使用首爾隨需機群上的可用容量作為備份。如果全部三個首爾機群都無法使用,Amazon 會將遊戲工作階段 GameLift 放置在新加坡機群。
下圖顯示逾時為 300 秒並排定目的地優先順序的佇列。目的地的順序如下:ap-northeast-2 中的 1234_spot_1、ap-northeast-2 中的 1234_spot_2、ap-northeast-2 中的 1234_ondemand、ap-southeast-1 中的 1234_spot_1,以及 ap-southeast-1 中的 1234_ondemand。
步驟 5:將延遲限制新增至佇列
我們的遊戲在遊戲工作階段置放請求中包含延遲資訊。我們也具有玩家派對功能,可為一組玩家建立遊戲工作階段。我們可以讓玩家等待更長的時間,才能進入具有理想遊戲體驗的遊戲。我們的遊戲測試顯示下列觀察:
-
50 毫秒以下的延遲是理想的。
-
遊戲在延遲超過 250 毫秒時無法播放。
-
大約一分鐘後,玩家變得不耐煩。
對於我們的佇列,在 300 秒逾時的情況下,我們會新增政策陳述式來限制允許的延遲。政策陳述式會逐漸允許高達 250 毫秒延遲的較大延遲值。
透過此政策,我們的佇列會在第一分鐘尋找具有理想延遲 (低於 50 毫秒) 的位置,然後放寬限制。佇列不會放置播放器延遲為 250 毫秒或更高的位置。
下圖顯示步驟 4 的佇列,並已新增播放器延遲政策。播放器延遲政策狀態、強制執行 60 秒的 50ms 限制、強制執行 30 秒的 125ms 限制,以及強制執行 250ms 限制,直到逾時為止。
Summary
恭喜您!以下是您完成的事項:
-
您的遊戲工作階段佇列範圍適用於玩家群體的區段。
-
您的佇列會有效使用 Spot 機群,並在發生 Spot 中斷時具有彈性。
-
您的佇列會優先考慮機群,以獲得最佳玩家體驗。
-
佇列具有延遲限制,可保護玩家免受不良遊戲體驗的影響。
您現在可以使用佇列,為其服務的玩家放置遊戲工作階段。為這些玩家提出遊戲工作階段置放請求時,請在請求中參考此遊戲工作階段佇列名稱。如需提出遊戲工作階段置放請求的詳細資訊,請參閱 建立遊戲工作階段或 為即時伺服器整合遊戲用戶端。
後續步驟: