排定遊戲工作階段置放的優先順序 - Amazon GameLift

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

排定遊戲工作階段置放的優先順序

Amazon GameLift 使用演算法來判斷佇列目的地的優先順序,並判斷放置新遊戲工作階段的位置。演算法是以一組有序的條件為基礎。您可以使用預設優先順序,也可以自訂順序。您可以隨時編輯佇列的優先順序。

預設優先順序

  1. 延遲 – 如果遊戲工作階段置放請求包含玩家的位置特定延遲資料,Amazon GameLift 會計算每個位置的平均玩家延遲,並嘗試將遊戲工作階段放置在平均數最低的機群位置。

  2. 成本 – 如果請求不包含延遲資料,或多個機群具有相同的延遲,則 Amazon GameLift 會評估每個機群的託管成本。機群的託管成本會根據機群類型 (Spot 或隨需)、執行個體類型和位置而有所不同。

  3. 目的地 – 如果多個機群具有相同的延遲和成本,則 Amazon GameLift 會根據佇列組態中列出的目的地順序來排定機群的優先順序。

  4. 位置 – 對於具有多位置機群的佇列,如果所有其他條件相等,則 Amazon GameLift 會根據字母順序排定機群的位置優先順序。

自訂佇列如何排定遊戲工作階段置放的優先順序

您可以選擇自訂佇列如何排定置放條件的優先順序。佇列會將自訂優先順序套用至其收到的所有遊戲工作階段置放請求。

注意

如果您建立自訂優先順序組態,但未包含所有四個條件,Amazon GameLift 會自動依預設順序附加任何缺少的條件。

自訂佇列的優先順序組態

使用 Amazon GameLift 主控台或 AWS Command Line Interface (AWS CLI) 建立自訂優先順序組態。

Console

Amazon GameLift 主控台中,您可以在建立新佇列或更新現有佇列時自訂佇列的優先順序。選取要使用的 AWS 區域。

開啟主控台的左側導覽列,然後選擇佇列。在佇列頁面上,選取現有的佇列,然後選擇編輯

  1. 前往遊戲工作階段置放優先順序一節。拖放每個優先順序條件以建立您想要的順序。

  2. 前往 位置順序一節。新增任何您要排定優先順序的位置。當佇列具有多個位置的機群時,此清單很有用。您至少必須指定一個位置。您在此處指定的位置會優先排序,接著是佇列目的地中的所有其他位置。

  3. 選擇 Save changes (儲存變更)。

AWS CLI

使用 update-game-session-queue命令搭配 --priority-configuration選項來自訂佇列的優先順序。Amazon GameLift 會更新目前預設 AWS 區域中的佇列,或者您可以新增--region標籤來指定不同的 AWS 區域。

下列範例請求新增或更新指定佇列的優先順序組態

aws gamelift update-game-session-queue \ --name "example-queue-with-priority" --priority-configuration PriorityOrder="COST','LOCATION","DESTINATION",LocationOrder="us-east-1","us-east-2","ca-central-1","us-west-2" \

依玩家延遲排定置放的優先順序

如果您想要為玩家提供最佳的玩家體驗,並確保最低延遲,請在設定遊戲工作階段放置系統時採取下列步驟:

  • 將佇列設定為在選擇遊戲工作階段放置位置時優先考慮延遲。延遲預設為優先順序清單的頂端。您也可以自訂佇列的優先順序組態,然後選擇將延遲置於優先順序的位置。

  • 為您的佇列設定玩家延遲政策。延遲政策可讓您設定在遊戲工作階段置放中允許的延遲量硬性限制。如果 Amazon GameLift 無法在超過限制的情況下放置遊戲工作階段,放置請求將會逾時並失敗。您可以設定單一延遲政策,也可以建立一系列政策,隨著時間逐漸放寬延遲限制。透過一系列政策,您可以指定極低的初始延遲限制,並且在短暫延遲後仍可容納延遲較高的玩家。如需建立延遲政策的詳細資訊,請參閱建立玩家延遲政策

  • 提出遊戲工作階段置放請求時 (請參閱 StartGameSessionPlacement),請包含每個玩家的延遲資料。玩家延遲資料包含可能放置遊戲工作階段的每個可能位置的值。例如,對於將遊戲工作階段放置在 AWS 區域 us-east-2 和 ca-central-1 中的佇列,延遲資料看起來可能會如下所示:

    "PlayerLatencies": [ { "LatencyInMilliseconds": 100, "PlayerId": "player1", "RegionIdentifier": "us-east-2" }, { "LatencyInMilliseconds": 100, "PlayerId": "player1", "RegionIdentifier": "ca-central-1" }, { "LatencyInMilliseconds": 150, "PlayerId": "player2", "RegionIdentifier": "us-east-2" }, { "LatencyInMilliseconds": 150, "PlayerId": "player2", "RegionIdentifier": "ca-central-1" } ]

依位置排定置放的優先順序

您可以設定佇列,根據地理位置的優先順序清單進行遊戲工作階段置放。位置是決定佇列如何選擇放置新遊戲工作階段的位置的條件之一。根據預設,位置在延遲、成本和目的地之後會排在第四位。

對於遊戲工作階段放置,目的地和位置的含義略有不同:

  • 目的地是指特定的機群,並包含所有機群的託管資源,無論部署到何處。依目的地排定優先順序時,Amazon GameLift 可能會在機群中的任何位置進行置放。多位置受管機群和 Anywhere 機群可以有部署到一或多個位置的託管資源。

  • 位置是指部署機群託管資源的特定地理位置。機群可以有多個位置,其中可能包括 AWS 區域 Local Zones 或自訂位置 (適用於 Anywhere 機群)。單一位置受管機群有一個位置,而且一律為 AWS 區域。多位置受管機群具有主要區域,並且可以有遠端位置。Anywhere 機群有一或多個自訂位置。

依位置排定置放優先順序時,Amazon GameLift 會尋找任何包含優先順序位置的佇列目的地,並搜尋可用的託管資源。如果具有優先順序位置的多個目的地,Amazon GameLift 會移至下一個優先順序條件 (成本、延遲、目的地)。

您可以透過多種方式影響佇列位置的優先順序

  • 設定佇列處理所有遊戲工作階段置放請求的方式:

    • 將優先順序組態新增至佇列。佇列的優先順序組態包含位置的排序清單。您可以指定一或多個要排定優先順序的位置。此清單不會排除任何位置,只會告訴 Amazon GameLift 先尋找可用託管資源的位置。排序位置清單的常見用途,是當您想要將大多數流量輸送至一或多個特定地理位置,並使用其他位置做為備份容量時。呼叫 UpdateGameSessionQueue 新增優先順序組態。

    • 將篩選條件組態新增至佇列。篩選條件組態是佇列的允許清單。它會告知 Amazon GameLift 在尋找可用的託管資源時,忽略不在清單中的任何位置。篩選條件組態有兩種常見用途。首先,對於具有多個位置的機群,您可以使用篩選條件來排除部分機群的位置。其次,您可能想要暫時不允許在特定位置放置;例如,某個位置可能遇到暫時性問題。由於您可以隨時更新佇列的篩選條件組態,因此您可以視需要輕鬆新增和移除位置。呼叫 UpdateGameSessionQueue 新增篩選條件組態。

  • 針對個別置放請求使用特殊指示:

    • 在遊戲工作階段置放請求中包含優先順序覆寫清單。您可以使用任何 StartGameSessionPlacement 請求提供位置的替代優先順序清單。此清單會針對僅針對該請求的位置,有效地取代佇列設定的優先順序。它不會影響任何其他請求。此覆寫功能有幾個需求:

      • 僅將覆寫清單與具有優先順序組態的佇列搭配使用,並以 LOCATION做為第一優先順序。

      • 請勿在相同的置放請求中包含玩家延遲資料。包含延遲資料會在排定 Amazon GameLift 無法解決的位置優先順序時設定衝突。

      • 如果 Amazon GameLift 在優先順序覆寫清單中找不到可用資源,請決定您希望 Amazon GameLift 如何繼續。選擇返回佇列的其他位置,或限制覆寫清單的位置。根據預設,Amazon GameLift 會回復為嘗試置放在佇列的其他位置。

      • 視需要更新佇列的篩選條件組態,例如在覆寫清單上新增位置。覆寫清單不會使篩選條件清單失效。