使用 Amazon 設定本機測試 GameLift Anywhere - Amazon GameLift

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

使用 Amazon 設定本機測試 GameLift Anywhere

注意

本主題涵蓋與 Amazon GameLift 伺服器 5.x SDK版整合的遊戲的本機測試。如果您的遊戲使用伺服器 4.x 版或更早SDK版本,請參閱 使用 Amazon GameLift Local 測試您的整合

使用 Amazon GameLift Anywhere 機群和您自己的硬體,可在模擬託管環境中反覆建置和測試遊戲元件。設定 Anywhere 機群並註冊本機裝置,以建立與 Amazon GameLift 服務的連線。在裝置上安裝遊戲伺服器建置、啟動遊戲伺服器程序,並視需要測試遊戲功能。您可以視需要更新遊戲伺服器建置,以測試每個新的建置迭代。

使用 Anywhere 機群,您可以使用 AWS CLI或 測試指令碼進行測試。如果您已將遊戲用戶端與 Amazon 整合 GameLift,您可以在相同的本機裝置上或不同的裝置上執行用戶端。

使用 進行本機測試 Anywhere 機群對於測試與 Amazon 的遊戲伺服器整合特別有用 GameLift。您可以完全了解本機機器上的所有託管活動,以及事件和記錄資料。

注意

您是否使用 Unreal Engine 或 Unity 的 Amazon GameLift 外掛程式? 這些工具包括使用 設定本機測試的引導式工作流程 Anywhere 機群。請遵循 Unity 外掛程式:使用 Amazon 設定本機測試 GameLift Anywhere或 的文件Unreal 的外掛程式:使用 Amazon 設定本機測試 GameLift Anywhere

設定本機 Anywhere 機群

請依照下列步驟建立 Anywhere 本機工作站的機群。如需使用適用於 Amazon 的 AWS CLI或 AWS Management Console 的詳細指示 GameLift,請參閱 建立 Amazon GameLift Anywhere 機群

若要建立 Anywhere 機群
  1. 為您的本機工作站建立自訂位置。(AWS CLI 或 主控台)。自訂位置只是您計劃包含在 中的運算資源的標籤 Anywhere 機群。自訂位置名稱必須以 開頭custom-。例如:custom-my_laptop。請參閱 建立自訂位置

  2. 建立 Anywhere 機群 (AWS CLI 或 主控台)。在此步驟中,使用本機工作站的自訂位置建立機群資源。請參閱 建立 Anywhere 機群

    記下新機群的 ID 或ARN值。在下一個步驟中,您將需要用到此值。

  3. 將本機工作站註冊為機群運算 (AWS CLI僅限 )。同時 Anywhere 機群必須至少有一個運算資源來託管您的遊戲伺服器。請參閱 將運算新增至機群。若要將運算新增至機群,您需要下列資訊:

    • 運算名稱。機群中的每個運算都必須具有唯一的名稱。

    • 所以此 Anywhere 機群識別碼。您可以使用 FleetIDFleetArn

    • 運算的連線資訊。指定 IpAddressDnsName。這是 Amazon GameLift 和遊戲用戶端將連線到遊戲伺服器的方式。

    • 中的自訂位置 Anywhere 機群。

    記下GameLiftServiceSdkEndpoint傳回值。當您更新遊戲伺服器以在 上執行時,您將需要此值 Anywhere 機群。

更新並安裝您的遊戲伺服器

此任務假設您已將遊戲伺服器建置與 Amazon GameLift Server SDK 5.x 整合。整合程序涉及將程式碼新增至您的遊戲伺服器,以便其可以與 Amazon GameLift 服務互動,以啟動和管理遊戲工作階段。

對於 Anywhere 機群,您需要手動設定特定遊戲伺服器設定。在 Amazon GameLift 受管機群上,這些設定會自動設定。

為 準備遊戲伺服器 Anywhere 機群
  1. 取得身分驗證權杖。每次與 Amazon GameLift 服務通訊時,您的遊戲伺服器都必須包含身分驗證權杖。Amazon GameLift 身分驗證權杖為短期,必須定期重新整理。

    最佳實務是建立指令碼以完成下列任務:

    • 呼叫 AWS CLI動作 get-compute-auth-token

    • 將傳回的權杖值存放在遊戲伺服器程序可以擷取的地方,例如本機運算的環境變數中。

    在運算上安裝 指令碼與遊戲伺服器。將指令碼設定為在開始第一個遊戲伺服器程序之前執行。當遊戲伺服器程序處於作用中狀態時,請定期執行指令碼以維護有效的身分驗證權杖。運算上的所有遊戲伺服器程序都可以使用相同的身分驗證權杖。

  2. 更新您的 Amazon GameLift 遊戲伺服器程式碼。當您將遊戲伺服器程式碼與 Amazon GameLift 伺服器整合時SDK,會將呼叫新增至動作 InitSdk()。當遊戲伺服器在 上執行時 Anywhere 機群,此呼叫需要額外的伺服器參數。如需詳細資訊,請參閱 初始化伺服器程序Amazon GameLift 伺服器 SDK 5.x 以取得開發語言。伺服器參數為:

    • webSocketUrl – 將此參數設定為當您向機群註冊運算時傳回GameLiftServiceSdkEndpoint的值。

    • hostId – 將此參數設定為您在向 Anywhere 機群註冊運算時指定的運算名稱。

    • fleetId – 將此參數設定為 的 ID Anywhere 機群。

    • authToken – 將此參數設定為權杖,該權杖會回應擷取運算真aiton 權杖的請求而傳回。

    • processId – 設定此參數以識別在本機運算上執行的遊戲伺服器程序。每個並行遊戲伺服器程序都必須具有唯一的程序 ID。

    每個遊戲伺服器程序使用的伺服器參數值,需要特定於程序執行的 Anywhere 機群運算。如需如何取得運算適當值的詳細資訊,請參閱 將運算新增至機群。最佳實務是在本機運算上將 webSocketUrlfleetIdhostIdauthToken設定為環境變數。在運算上執行的所有伺服器程序都會使用這些值。

  3. 在本機運算上安裝遊戲伺服器建置。包含執行遊戲伺服器所需的所有相依性。

  4. 啟動在本機運算上執行的一或多個遊戲伺服器程序。當遊戲伺服器程序呼叫伺服器SDK動作 時ProcessReady(),程序已準備好託管遊戲工作階段。

測試遊戲工作階段活動

使用遊戲工作階段測試您的遊戲伺服器整合。如果您沒有與 Amazon GameLift 功能整合的遊戲用戶端,您可以使用 CLI AWS 開始遊戲工作階段。嘗試下列案例:

  • 建立遊戲工作階段。呼叫create-game-session 命令 (或 CreateGameSessionAPI操作)。指定您的 Anywhere 機群的 ID 和自訂位置。此呼叫會傳回新遊戲工作階段的唯一識別符。

  • 檢查遊戲工作階段狀態。 呼叫describe-game-sessions命令 (或 DescribeGameSessionsAPI動作)。指定遊戲工作階段 ID。此呼叫會傳回詳細的遊戲工作階段資訊,包括遊戲工作階段狀態。處於作用中狀態的遊戲工作階段已準備好供玩家連線。若要取得機群的所有遊戲工作階段清單,請呼叫 list-game-sessions 命令 (或 ListGameSessionsAPI動作)。

  • 連線至遊戲工作階段。如果您的遊戲用戶端能夠加入遊戲工作階段,請使用遊戲工作階段資訊中包含的連線資訊。

在遊戲伺服器上迭代

您可以使用相同的 Anywhere 機群和運算來測試遊戲伺服器建置的其他版本。

  1. 清除現有的 GameSession如果遊戲伺服器程序當機或無法呼叫 ProcessEnding(),Amazon 會在遊戲伺服器停止傳送運作狀態檢查GameSession後 GameLift 清除 。

  2. 產生新的遊戲伺服器建置。變更遊戲伺服器和套件的修訂建置。

  3. 根據本機運算更新遊戲伺服器建置。您先前的 Anywhere 機群仍然處於作用中狀態,而且您的筆記型電腦仍然在機群中註冊為運算資源。

  4. 取得更新的授權權杖。呼叫 get-compute-auth-tokenCLI命令,並將權杖存放在本機運算上。

  5. 啟動在本機運算上執行的一或多個遊戲伺服器程序。當遊戲伺服器處理呼叫 時ProcessReady(),即可用於測試。

將您的遊戲轉換為 Amazon GameLift 受管機群

完成開發測試並準備啟動後,這是轉換至 Amazon GameLift 受管機群的好時機。使用受管機群微調和測試您的遊戲託管資源。實作您的遊戲工作階段置放解決方案 (佇列和相符者),選取最佳託管硬體 (包括 Spot 機群) 和位置,然後選擇擴展容量的策略。您可能也想要開始使用 AWS CloudFormation 來更有效率地管理所有遊戲託管資源的生命週期,包括機群、佇列和配對器。

您需要進行一些微幅修改,才能從本機 Anywhere 測試機群到 Amazon GameLift 受管機群。您可以重複使用相同的佇列和相符者。執行下列任務:

  • 將遊戲伺服器程式碼呼叫變更為 InitSdk()移除伺服器參數。對於受管機群,Amazon GameLift 會自動追蹤此資訊。

  • 建立 Amazon GameLift 建置資源。使用 Anywhere 測試機群,您必須手動將遊戲伺服器建置和相依性部署到每個機群運算。使用受管機群,您可以建立遊戲建置套件並將其上傳至 Amazon GameLift,並自動將其部署至所有機群運算。部署 Amazon GameLift 託管的自訂伺服器建置 如需封裝遊戲建置檔案以及使用 Amazon S3 儲存貯體中的檔案建立建置資源的詳細資訊,請參閱 。請勿包含註冊運算並取得身分驗證權杖的指令碼,因為 Amazon GameLift 會自動使用受管機群處理這些任務。

  • 建立受管機群。使用主控台或 建立機群 AWS CLI,指定EC2受管機群。這種類型的機群需要額外的組態設定,包括指定建置資源和執行個體類型。您都需要設定執行期組態,以管理每個機群運算的遊戲伺服器生命週期。如需建立受管機群的詳細資訊,建立 Amazon GameLift 受管EC2機群請參閱 。

  • 重新導向機群別名 (選用)。如果您設定別名來搭配您的 Anywhere 機群,您可以為受管機群重複使用相同的別名。如需建立或更新別名的詳細資訊,建立 Amazon GameLift 別名請參閱 。