本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用亞馬遜機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
-
-
打開亞馬遜GameLift控制台。
-
在功能窗格的 [主機] 下,選擇 [位置]。
-
選擇 [建立地點]。
-
在「建立位置」對話方塊中,執行下列操作:
-
輸入「地點」名稱。這會標示 Amazon GameLift 用來在Anywhere叢集中執行遊戲的運算資源位置。自訂位置名稱必須以自訂- 開頭。
-
選擇 建立 。
-
若要建立Anywhere叢集,請執行下列動作:
-
在功能窗格的 [主機] 底下,選擇 [叢集]。
-
在 Fleets (機群) 頁面上,選擇 Create fleet (建立機群)。
-
在 [選擇運算類型] 步驟上,選擇 [任何地方],然後選擇 [下一步]
-
在「定義叢集詳細資訊」步驟中,定義新叢集。如需詳細資訊,請參閱建立新的亞馬遜GameLift車隊。
-
在 「選取位置」步驟中,選取您建立的自訂位置。
-
完成剩餘的叢集建立步驟以建立您的Anywhere叢集。
-
在您建立的叢集中,將筆記型電腦註冊為運算資源。使用register-compute
命令(或 RegisterCompute
API 操作)。包括在上一步中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
}
-
啟動遊戲伺服器的除錯工作階段。
-
在您創建的機群中獲取筆記本電腦的授權令牌。使用get-compute-auth-token
命令(或 GetComputeAuthToken
API 操作)。
aws gamelift get-compute-auth-token \
--fleet-id fleet-1234
\
--compute-name DevLaptop
輸出範例:
ComputeAuthToken {
FleetId = fleet-1234,
ComputeName = DevLaptop,
AuthToken = abcdefg123,
ExpirationTime = 1897492857.11
}
-
執行遊戲伺服器執行檔的除錯執行個體。若要執行除錯執行個體,您的遊戲伺服器必須呼叫InitSDK()。在該過程準備好主持遊戲會話之後,遊戲服務器會調用ProcessReady()。
-
建立遊戲工作階段以測試您與 Amazon 的首次整合GameLiftAnywhere。使用create-game-session
命令(或 CreateGameSession
API 操作)。指定叢集的自訂位置。
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
物件,其中包含遊戲屬性、遊戲工作階段資料、分房系統資料,以及有關遊戲工作階段的更多資訊。
-
將邏輯添加到您的遊戲服務器,以便您的服務器進程響應onStartGameSession()
消息ActivateGameSession()
。該操作向亞馬遜發送確認,表明您GameLift的服務器收到並接受了創建遊戲會話消息。如需詳細資訊,請參閱 亞馬遜GameLift服務器 SDK 參考。
您的遊戲伺服器現在正在執行遊戲工作階段,供您測試並用於反覆運算。若要瞭解如何在遊戲伺服器上重複執行,請繼續下一節。
- AWS CLI
-
-
使用create-location
指令 (或 CreateLocation
API 作業) 建立自訂位置。自訂位置會標示 Amazon GameLift 用來在Anywhere叢集中執行遊戲的硬體位置。
aws gamelift create-location \
--location-name custom-location-1
輸出範例:
{
Location {
LocationName = custom-location-1
}
}
-
使用create-fleet
指令 (或 CreateFleet
API 作業) 建立具有您自訂位置的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
...
}
-
在您建立的叢集中,將筆記型電腦註冊為運算資源。使用register-compute
命令(或 RegisterCompute
API 操作)。包括在上一步中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
}
-
啟動遊戲伺服器的除錯工作階段。
-
在您創建的機群中獲取筆記本電腦的授權令牌。使用get-compute-auth-token
命令(或 GetComputeAuthToken
API 操作)。
aws gamelift get-compute-auth-token \
--fleet-id fleet-1234
\
--compute-name DevLaptop
輸出範例:
ComputeAuthToken {
FleetId = fleet-1234,
ComputeName = DevLaptop,
AuthToken = abcdefg123,
ExpirationTime = 1897492857.11
}
-
執行遊戲伺服器執行檔的除錯執行個體。若要執行除錯執行個體,您的遊戲伺服器必須呼叫InitSDK()
。在該過程準備好主持遊戲會話之後,遊戲服務器會調用ProcessReady()
。
-
建立遊戲工作階段以測試您與 Amazon 的首次整合GameLiftAnywhere。使用create-game-session
命令(或 CreateGameSession
API 操作)。
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
物件,其中包含遊戲屬性、遊戲工作階段資料、分房系統資料,以及有關遊戲工作階段的更多資訊。
-
將邏輯添加到您的遊戲服務器,以便您的服務器進程響應onStartGameSession()
消息ActivateGameSession()
。該操作向亞馬遜發送確認,表明您GameLift的服務器收到並接受了創建遊戲會話消息。如需詳細資訊,請參閱 亞馬遜GameLift服務器 SDK 參考。
您的遊戲伺服器現在正在執行遊戲工作階段,供您測試並用於反覆運算。若要瞭解如何在遊戲伺服器上重複執行,請繼續下一節。
在遊戲伺服器上進行迭代
在此使用案例中,請考慮您已設定並測試遊戲伺服器並發現錯誤的案例。使用亞馬遜 GameLiftAnywhere,您可以對代碼進行迭代,避免使用 Amazon EC2 叢集的繁重設置。
-
如果可能的話GameSession
,請清理您現有的。如果遊戲服務器崩潰或無法調用ProcessEnding()
,亞馬遜會在遊戲服務器停止發送運行狀態檢查GameSession
後進行GameLift清理。
-
對您的遊戲伺服器進行程式碼變更、編譯並為下一次測試做準備。
-
您之前的Anywhere機隊仍處於作用中狀態,而您的筆記型電腦仍在叢集中註冊為運算資源。要再次開始測試,請創建一個新的調試實例。
-
在您創建的機群中檢索筆記本電腦的授權令牌。使用get-compute-auth-token
命令(或 GetComputeAuthToken
API 操作)。
aws gamelift get-compute-auth-token \
--fleet-id fleet-1234
\
--compute-name DevLaptop
輸出範例:
ComputeAuthToken {
FleetId = fleet-1234,
ComputeName = DevLaptop,
AuthToken = hijklmnop456,
ExpirationTime = 1897492857.11
}
-
執行遊戲伺服器執行檔的除錯執行個體。若要執行除錯執行個體,您的遊戲伺服器必須呼叫InitSDK()
。在該過程準備好主持遊戲會話之後,遊戲服務器會調用ProcessReady()
。
-
您的叢集現在有可用的伺服器處理序。創建您的遊戲會話並執行下一個測試。使用create-game-session
命令(或 CreateGameSession
API 操作)。
aws gamelift create-game-session \
--fleet-id fleet-1234
\
--name SecondDebugSession
\
--maximum-player-session-count 2
Amazon GameLift 會將onStartGameSession()
訊息傳送到您註冊的伺服器程序。訊息包含上一步的GameSession
物件,其中包含遊戲屬性、遊戲工作階段資料、分房系統資料,以及有關遊戲工作階段的更多資訊。
-
將邏輯添加到您的遊戲服務器,以便您的服務器進程響應onStartGameSession()
消息ActivateGameSession()
。該操作向亞馬遜發送確認,表明您GameLift的服務器收到並接受了創建遊戲會話消息。如需詳細資訊,請參閱 亞馬遜GameLift服務器 SDK 參考。
完成遊戲伺服器測試後,您可以繼續使GameLift用 Amazon 管理叢集和遊戲伺服器。如需詳細資訊,請參閱 創建一個 Amazon GameLift Anywhere 車隊。