本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 機群
為您的本機工作站建立自訂位置。(AWS CLI 或 主控台)。自訂位置只是您計劃包含在 中的運算資源的標籤 Anywhere 機群。自訂位置名稱必須以 開頭
custom-
。例如:custom-my_laptop
。請參閱 建立自訂位置。建立 Anywhere 機群 (AWS CLI 或 主控台)。在此步驟中,使用本機工作站的自訂位置建立機群資源。請參閱 建立 Anywhere 機群。
記下新機群的 ID 或ARN值。在下一個步驟中,您將需要用到此值。
將本機工作站註冊為機群運算 (AWS CLI僅限 )。同時 Anywhere 機群必須至少有一個運算資源來託管您的遊戲伺服器。請參閱 將運算新增至機群。若要將運算新增至機群,您需要下列資訊:
-
運算名稱。機群中的每個運算都必須具有唯一的名稱。
-
所以此 Anywhere 機群識別碼。您可以使用
FleetID
或FleetArn
。 -
運算的連線資訊。指定
IpAddress
或DnsName
。這是 Amazon GameLift 和遊戲用戶端將連線到遊戲伺服器的方式。 -
中的自訂位置 Anywhere 機群。
記下
GameLiftServiceSdkEndpoint
傳回值。當您更新遊戲伺服器以在 上執行時,您將需要此值 Anywhere 機群。-
更新並安裝您的遊戲伺服器
此任務假設您已將遊戲伺服器建置與 Amazon GameLift Server SDK 5.x 整合。整合程序涉及將程式碼新增至您的遊戲伺服器,以便其可以與 Amazon GameLift 服務互動,以啟動和管理遊戲工作階段。
對於 Anywhere 機群,您需要手動設定特定遊戲伺服器設定。在 Amazon GameLift 受管機群上,這些設定會自動設定。
為 準備遊戲伺服器 Anywhere 機群
取得身分驗證權杖。每次與 Amazon GameLift 服務通訊時,您的遊戲伺服器都必須包含身分驗證權杖。Amazon GameLift 身分驗證權杖為短期,必須定期重新整理。
最佳實務是建立指令碼以完成下列任務:
呼叫 AWS CLI動作
get-compute-auth-token
。將傳回的權杖值存放在遊戲伺服器程序可以擷取的地方,例如本機運算的環境變數中。
在運算上安裝 指令碼與遊戲伺服器。將指令碼設定為在開始第一個遊戲伺服器程序之前執行。當遊戲伺服器程序處於作用中狀態時,請定期執行指令碼以維護有效的身分驗證權杖。運算上的所有遊戲伺服器程序都可以使用相同的身分驗證權杖。
更新您的 Amazon GameLift 遊戲伺服器程式碼。當您將遊戲伺服器程式碼與 Amazon GameLift 伺服器整合時SDK,會將呼叫新增至動作
InitSdk()
。當遊戲伺服器在 上執行時 Anywhere 機群,此呼叫需要額外的伺服器參數。如需詳細資訊,請參閱 初始化伺服器程序和 Amazon GameLift 伺服器 SDK 5.x 以取得開發語言。伺服器參數為:-
webSocketUrl
– 將此參數設定為當您向機群註冊運算時傳回GameLiftServiceSdkEndpoint
的值。 -
hostId
– 將此參數設定為您在向 Anywhere 機群註冊運算時指定的運算名稱。 -
fleetId
– 將此參數設定為 的 ID Anywhere 機群。 -
authToken
– 將此參數設定為權杖,該權杖會回應擷取運算真aiton 權杖的請求而傳回。 -
processId
– 設定此參數以識別在本機運算上執行的遊戲伺服器程序。每個並行遊戲伺服器程序都必須具有唯一的程序 ID。
每個遊戲伺服器程序使用的伺服器參數值,需要特定於程序執行的 Anywhere 機群運算。如需如何取得運算適當值的詳細資訊,請參閱 將運算新增至機群。最佳實務是在本機運算上將
webSocketUrl
、fleetId
、hostId
和authToken
設定為環境變數。在運算上執行的所有伺服器程序都會使用這些值。-
在本機運算上安裝遊戲伺服器建置。包含執行遊戲伺服器所需的所有相依性。
啟動在本機運算上執行的一或多個遊戲伺服器程序。當遊戲伺服器程序呼叫伺服器SDK動作 時
ProcessReady()
,程序已準備好託管遊戲工作階段。
測試遊戲工作階段活動
使用遊戲工作階段測試您的遊戲伺服器整合。如果您沒有與 Amazon GameLift 功能整合的遊戲用戶端,您可以使用 CLI AWS 開始遊戲工作階段。嘗試下列案例:
建立遊戲工作階段。呼叫create-game-session
命令 (或 CreateGameSessionAPI操作)。指定您的 Anywhere 機群的 ID 和自訂位置。此呼叫會傳回新遊戲工作階段的唯一識別符。 檢查遊戲工作階段狀態。 呼叫describe-game-sessions
命令 (或 DescribeGameSessionsAPI動作)。指定遊戲工作階段 ID。此呼叫會傳回詳細的遊戲工作階段資訊,包括遊戲工作階段狀態。處於作用中狀態的遊戲工作階段已準備好供玩家連線。若要取得機群的所有遊戲工作階段清單,請呼叫 list-game-sessions 命令 (或 ListGameSessionsAPI動作)。 -
連線至遊戲工作階段。如果您的遊戲用戶端能夠加入遊戲工作階段,請使用遊戲工作階段資訊中包含的連線資訊。
在遊戲伺服器上迭代
您可以使用相同的 Anywhere 機群和運算來測試遊戲伺服器建置的其他版本。
-
清除現有的
GameSession
。如果遊戲伺服器程序當機或無法呼叫ProcessEnding()
,Amazon 會在遊戲伺服器停止傳送運作狀態檢查GameSession
後 GameLift 清除 。 -
產生新的遊戲伺服器建置。變更遊戲伺服器和套件的修訂建置。
-
根據本機運算更新遊戲伺服器建置。您先前的 Anywhere 機群仍然處於作用中狀態,而且您的筆記型電腦仍然在機群中註冊為運算資源。
-
取得更新的授權權杖。呼叫 get-compute-auth-token
CLI命令,並將權杖存放在本機運算上。 -
啟動在本機運算上執行的一或多個遊戲伺服器程序。當遊戲伺服器處理呼叫 時
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 別名請參閱 。