使用亞馬遜機GameLiftAnywhere隊測試您的整合 - Amazon GameLift

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

使用亞馬遜機GameLiftAnywhere隊測試您的整合

您可以使用 Amazon GameLift Anywhere 叢集反覆建置和測試您與 Amazon 的遊戲整合。GameLift將您自己的硬體設定為連線至 Amazon GameLift 服務的Anywhere叢集,然後在其上安裝並執行遊戲伺服器。使用測試應用程序運行諸如開始/停止遊戲會話,跟踪玩家連接以及處理配對補充等情況。透過Anywhere叢集,您可以視需要更新遊戲伺服器組建,並完全掌握主機活動。

您可以將亞馬遜GameLiftAnywhere車隊與亞馬遜GameLift服務器 SDK 版本 5 或更高版本集成的遊戲。

初步發展

您已經開發了自己的遊戲,並將其與 Amazon GameLift 伺服器開發套件整合。為了測試您的整合,您可以將遊戲伺服器組建的每個新版序上傳到 Amazon GameLift 並建立叢集。或者,搭配開發筆記型電腦使用Anywhere機隊,可讓您以更有效率的方式進行反覆式開發和測試。

使用下列程序建立Anywhere叢集,並使用 Amazon GameLift 主控台或 AWS Command Line Interface (AWS CLI) 在筆記型電腦上啟動遊戲工作階段。

Console
  1. 打開亞馬遜GameLift控制台

  2. 在功能窗格的 [主機] 下,選擇 [位置]。

  3. 選擇 [建立地點]。

  4. 在「建立位置」對話方塊中,執行下列操作:

    1. 輸入「地點」名稱。這會標示 Amazon GameLift 用來在Anywhere叢集中執行遊戲的運算資源位置。自訂位置名稱必須以自訂- 開頭。

    2. 選擇 建立

  5. 若要建立Anywhere叢集,請執行下列動作:

    1. 在功能窗格的 [主機] 底下,選擇 [叢集]。

    2. Fleets (機群) 頁面上,選擇 Create fleet (建立機群)

    3. 在 [選擇運算類型] 步驟上,選擇 [任何地方],然後選擇 [下一步]

    4. 在「定義叢集詳細資訊」步驟中,定義新叢集。如需詳細資訊,請參閱建立新的亞馬遜GameLift車隊

    5. 「選取位置」步驟中,選取您建立的自訂位置。

    6. 完成剩餘的叢集建立步驟以建立您的Anywhere叢集。

  6. 在您建立的叢集中,將筆記型電腦註冊為運算資源。使用register-compute命令(或 RegisterComputeAPI 操作)。包括在上一步中fleet-id創建的,並添加compute-name和您的筆記本電腦ip-address

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    輸出範例:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  7. 啟動遊戲伺服器的除錯工作階段。

    1. 在您創建的機群中獲取筆記本電腦的授權令牌。使用get-compute-auth-token命令(或 GetComputeAuthTokenAPI 操作)。

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      輸出範例:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. 執行遊戲伺服器執行檔的除錯執行個體。若要執行除錯執行個體,您的遊戲伺服器必須呼叫InitSDK()。在該過程準備好主持遊戲會話之後,遊戲服務器會調用ProcessReady()

  8. 建立遊戲工作階段以測試您與 Amazon 的首次整合GameLiftAnywhere。使用create-game-session命令(或 CreateGameSessionAPI 操作)。指定叢集的自訂位置。

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2 \ --location custom-location-1

    輸出範例:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    Amazon GameLift 會將onStartGameSession()訊息傳送到您註冊的伺服器程序。訊息包含上一步的GameSession物件,其中包含遊戲屬性、遊戲工作階段資料、分房系統資料,以及有關遊戲工作階段的更多資訊。

  9. 將邏輯添加到您的遊戲服務器,以便您的服務器進程響應onStartGameSession()消息ActivateGameSession()。該操作向亞馬遜發送確認,表明您GameLift的服務器收到並接受了創建遊戲會話消息。如需詳細資訊,請參閱 亞馬遜GameLift服務器 SDK 參考

您的遊戲伺服器現在正在執行遊戲工作階段,供您測試並用於反覆運算。若要瞭解如何在遊戲伺服器上重複執行,請繼續下一節。

AWS CLI
  1. 使用create-location指令 (或 CreateLocationAPI 作業) 建立自訂位置。自訂位置會標示 Amazon GameLift 用來在Anywhere叢集中執行遊戲的硬體位置。

    aws gamelift create-location \ --location-name custom-location-1

    輸出範例:

    { Location { LocationName = custom-location-1 } }
  2. 使用create-fleet指令 (或 CreateFleetAPI 作業) 建立具有您自訂位置的Anywhere叢集。Amazon GameLift 會在您的本地區域和您提供的自訂位置建立叢集。

    aws gamelift create-fleet \ --name LaptopFleet \ --compute-type ANYWHERE \ --locations "location=custom-location-1"

    輸出範例:

    Fleet { Name = LaptopFleet, ComputeType = ANYWHERE, FleetId = fleet-1234, Status = ACTIVE ... }
  3. 在您建立的叢集中,將筆記型電腦註冊為運算資源。使用register-compute命令(或 RegisterComputeAPI 操作)。包括在上一步中fleet-id創建的,並添加一個compute-name和您的筆記本電腦的公共ip-address

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    輸出範例:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  4. 啟動遊戲伺服器的除錯工作階段。

    1. 在您創建的機群中獲取筆記本電腦的授權令牌。使用get-compute-auth-token命令(或 GetComputeAuthTokenAPI 操作)。

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      輸出範例:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. 執行遊戲伺服器執行檔的除錯執行個體。若要執行除錯執行個體,您的遊戲伺服器必須呼叫InitSDK()。在該過程準備好主持遊戲會話之後,遊戲服務器會調用ProcessReady()

  5. 建立遊戲工作階段以測試您與 Amazon 的首次整合GameLiftAnywhere。使用create-game-session命令(或 CreateGameSessionAPI 操作)。

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2

    輸出範例:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    Amazon GameLift 會將onStartGameSession()訊息傳送到您註冊的伺服器程序。訊息包含上一步的GameSession物件,其中包含遊戲屬性、遊戲工作階段資料、分房系統資料,以及有關遊戲工作階段的更多資訊。

  6. 將邏輯添加到您的遊戲服務器,以便您的服務器進程響應onStartGameSession()消息ActivateGameSession()。該操作向亞馬遜發送確認,表明您GameLift的服務器收到並接受了創建遊戲會話消息。如需詳細資訊,請參閱 亞馬遜GameLift服務器 SDK 參考

您的遊戲伺服器現在正在執行遊戲工作階段,供您測試並用於反覆運算。若要瞭解如何在遊戲伺服器上重複執行,請繼續下一節。

在遊戲伺服器上進行迭代

在此使用案例中,請考慮您已設定並測試遊戲伺服器並發現錯誤的案例。使用亞馬遜 GameLiftAnywhere,您可以對代碼進行迭代,避免使用 Amazon EC2 叢集的繁重設置。

  1. 如果可能的話GameSession,請清理您現有的。如果遊戲服務器崩潰或無法調用ProcessEnding(),亞馬遜會在遊戲服務器停止發送運行狀態檢查GameSession後進行GameLift清理。

  2. 對您的遊戲伺服器進行程式碼變更、編譯並為下一次測試做準備。

  3. 您之前的Anywhere機隊仍處於作用中狀態,而您的筆記型電腦仍在叢集中註冊為運算資源。要再次開始測試,請創建一個新的調試實例。

    1. 在您創建的機群中檢索筆記本電腦的授權令牌。使用get-compute-auth-token命令(或 GetComputeAuthTokenAPI 操作)。

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      輸出範例:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = hijklmnop456, ExpirationTime = 1897492857.11 }
    2. 執行遊戲伺服器執行檔的除錯執行個體。若要執行除錯執行個體,您的遊戲伺服器必須呼叫InitSDK()。在該過程準備好主持遊戲會話之後,遊戲服務器會調用ProcessReady()

  4. 您的叢集現在有可用的伺服器處理序。創建您的遊戲會話並執行下一個測試。使用create-game-session命令(或 CreateGameSessionAPI 操作)。

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name SecondDebugSession \ --maximum-player-session-count 2

    Amazon GameLift 會將onStartGameSession()訊息傳送到您註冊的伺服器程序。訊息包含上一步的GameSession物件,其中包含遊戲屬性、遊戲工作階段資料、分房系統資料,以及有關遊戲工作階段的更多資訊。

  5. 將邏輯添加到您的遊戲服務器,以便您的服務器進程響應onStartGameSession()消息ActivateGameSession()。該操作向亞馬遜發送確認,表明您GameLift的服務器收到並接受了創建遊戲會話消息。如需詳細資訊,請參閱 亞馬遜GameLift服務器 SDK 參考

完成遊戲伺服器測試後,您可以繼續使GameLift用 Amazon 管理叢集和遊戲伺服器。如需詳細資訊,請參閱 創建一個 Amazon GameLift Anywhere 車隊