Unreal Engine SDK 的 Amazon GameLift Server 5.x:資料類型 - Amazon GameLift

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

Unreal Engine SDK 的 Amazon GameLift Server 5.x:資料類型

使用 Amazon GameLift Unreal 伺服器 SDK 5.x 參考,協助您準備多人遊戲以搭配 Amazon 使用 GameLift。如需整合程序的詳細資訊,請參閱 將 Amazon GameLift 新增至您的遊戲伺服器。如果您使用的是適用於 Unreal 的 Amazon GameLift 外掛程式,請同時參閱 Unreal Engine 的 Amazon GameLift 外掛程式

注意

本主題說明API您在 Unreal Engine 建置時可以使用的 Amazon GameLift C++。具體而言,本文件適用於您使用 -DBUILD_FOR_UNREAL=1選項編譯的程式碼。

Unreal Engine SDK 的 Amazon GameLift Server 5.x:動作

FProcessParameters

此資料類型包含傳送至 GameLift Amazon 的一組參數ProcessReady()

屬性

Description
LogParameters 具有在遊戲工作階段期間產生之檔案的目錄路徑的物件。Amazon 會 GameLift 複製和存放檔案以供日後存取。

Type (類型)TArray<FString>

必要:否

OnHealthCheck Amazon 從伺服器程序 GameLift 叫用以請求運作狀態報告的回呼函數。Amazon 每 60 秒 GameLift 呼叫一次此函數,並等待 60 秒進行回應。FALSE 如果TRUE運作狀態良好,伺服器程序會傳回。如果未傳回任何回應,Amazon 會將伺服器程序 GameLift 記錄為運作不良。

此屬性是定義為 的委派函數DECLARE_DELEGATE_RetVal(bool, FOnHealthCheck)

Type (類型)FOnHealthCheck

必要:否

OnProcessTerminate Amazon GameLift 調用以強制伺服器程序關閉的回呼函數。呼叫此功能後,Amazon 會 GameLift 等待 5 分鐘讓伺服器程序關閉,並在關閉伺服器程序之前回應ProcessEnding()呼叫。

Type (類型)FSimpleDelegate

必要:是

OnStartGameSession Amazon GameLift 叫用以啟用新遊戲工作階段的回呼函數。Amazon GameLift 呼叫此函數以回應用戶端請求 CreateGameSession。回呼函數會傳遞GameSession物件。

此屬性是委派函數,定義為 DECLARE_DELEGATE_OneParam(FOnStartGameSession, Aws::GameLift::Server::Model::GameSession);

Type (類型)FOnStartGameSession

必要:是

OnUpdateGameSession Amazon GameLift 叫用以將更新後的遊戲工作階段物件傳遞至伺服器程序的回呼函數。Amazon 會在處理相符回填請求以提供更新的相符者資料時 GameLift 呼叫此函數。它傳遞GameSession物件、狀態更新 (updateReason) 和相符的回填票證 ID。

此屬性是委派函數,定義為 DECLARE_DELEGATE_OneParam(FOnUpdateGameSession, Aws::GameLift::Server::Model::UpdateGameSession);

Type (類型)FOnUpdateGameSession

必要:否

連線埠 伺服器程序接聽的新播放器連線的連接埠號碼。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中,遊戲工作階段會使用該物件來連接到伺服器程序。

Type (類型)int

必要:是

UpdateGameSession

此資料類型會更新至遊戲工作階段物件,其中包括遊戲工作階段更新的原因,以及如果回填用於填滿遊戲工作階段中的玩家工作階段,則相關的回填票證 ID。

屬性 Description
GameSession GameSession 物件。GameSession 物件包含描述遊戲工作階段的屬性。

Type (類型)Aws::GameLift::Server::GameSession

必要:否

UpdateReason 更新遊戲工作階段的原因。

Type (類型)enum class UpdateReason

  • MATCHMAKING_DATA_UPDATED

  • BACKFILL_FAILED

  • BACKFILL_TIMED_OUT

  • BACKFILL_CANCELLED

必要:否

BackfillTicketId 嘗試更新遊戲工作階段的回填票證 ID。

Type (類型)char[]

必要:否

GameSession

此資料類型提供遊戲工作階段的詳細資訊。

屬性 Description
GameSessionId

遊戲工作階段的唯一識別符。遊戲工作階段ARN的格式如下:arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>

Type (類型)char[]

必要:否

名稱

遊戲工作階段的描述性標籤。

Type (類型)char[]

必要:否

FleetId

遊戲工作階段執行所在的機群的唯一識別符。

Type (類型)char[]

必要:否

MaximumPlayerSessionCount

遊戲工作階段的播放器連線數目上限。

Type (類型)int

必要:否

連線埠

遊戲工作階段的連接埠號碼。若要連線至 Amazon GameLift 遊戲伺服器,應用程式需要 IP 地址和連接埠號碼。

Type (類型)int

必要:否

IpAddress

遊戲工作階段的 IP 地址。若要連線至 Amazon GameLift 遊戲伺服器,應用程式需要 IP 地址和連接埠號碼。

Type (類型)char[]

必要:否

GameSessionData

一組自訂遊戲工作階段屬性,格式為單一字串值。

Type (類型)char[]

必要:否

MatchmakerData

用於建立遊戲工作階段的配對程序相關資訊,JSON以語法格式化為字串。除了使用的配對組態之外,它還包含指派給相符項目的所有玩家的資料,包括玩家屬性和團隊指派。

Type (類型)char[]

必要:否

GameProperties

遊戲工作階段的一組自訂屬性,格式為金鑰:值對。這些屬性會與啟動新遊戲工作階段的請求一起傳遞。

Type (類型)GameProperty[]

必要:否

DnsName

指派給執行遊戲工作階段之執行個體的DNS識別碼。值具有下列格式:

  • TLS啟用 的機群:<unique identifier>.<region identifier>.amazongamelift.com

  • Non-TLS-enabled 機群:ec2-<unique identifier>.compute.amazonaws.com

連線至在TLS啟用 的機群上執行的遊戲工作階段時,您必須使用 DNS名稱,而非 IP 地址。

Type (類型)char[]

必要:否

FServerParameters

用於維護 Amazon 之間連線的資訊 GameLift Anywhere 伺服器和 Amazon GameLift 服務。使用 啟動新的伺服器程序時,會使用此資訊Init SDK()。對於託管於 Amazon GameLift 受管EC2執行個體的伺服器,請使用空物件。

屬性 Description
webSocketUrl

當您RegisterCompute使用 GameLiftServerSdkEndpoint Amazon 時,Amazon 會 GameLift 傳回 GameLift Anywhere 運算資源。

Type (類型)char[]

必要:是

processId

註冊至託管遊戲之伺服器程序的唯一識別碼。

Type (類型)char[]

必要:是

hostId HostID 是當您註冊運算ComputeName時使用的 。如需詳細資訊,請參閱 RegisterCompute

Type (類型)char[]

必要:是

fleetId 運算註冊之機群的唯一識別碼。如需詳細資訊,請參閱 RegisterCompute

Type (類型)char[]

必要:是

authToken Amazon 產生的身分驗證權杖 GameLift ,用於向 Amazon 對伺服器進行身分驗證 GameLift。如需詳細資訊,請參閱 GetComputeAuthToken

Type (類型)char[]

必要:是

FStartMatchBackfillRequest

用來建立比對回填請求的資訊。遊戲伺服器會在StartMatchBackfill()通話 GameLift 中將此資訊傳達給 Amazon。

屬性 Description
GameSessionArn

唯一的遊戲工作階段識別符。API 操作會GetGameSessionId傳回 ARN 格式的識別符。

Type (類型)char[]

必要:是

MatchmakingConfigurationArn

以 形式的唯一識別符ARN,可讓相符者用於此請求。原始遊戲工作階段ARN的相符者位於相符者資料屬性中的遊戲工作階段物件中。進一步了解使用相符器資料 中的相符器資料

Type (類型)char[]

必要:是

Players

一組資料,代表遊戲工作階段中的所有玩家。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。

Type (類型)TArray<FPlayer>

必要:是

TicketId

比對或比對回填請求票證的唯一識別符。如果您不提供值,Amazon GameLift 會產生值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。

Type (類型)char[]

必要:否

FPlayer

此資料類型代表配對中的玩家。啟動配對請求時,播放器具有玩家 ID、屬性和可能的延遲資料。Amazon 在進行比對後 GameLift 新增團隊資訊。

屬性 Description
LatencyInMS

一組以毫秒為單位的值,指出播放器連線到位置時所經歷的延遲量。

如果使用此屬性,則播放器只會符合列出的位置。若配對構建器有評估玩家延遲的規則,玩家則必須回報延遲度,方可配對。

Type (類型)TMap>FString, int32<

必要:否

PlayerAttributes

包含玩家資訊的索引鍵:值對集合,可用於配對。播放器屬性金鑰必須符合配對規則集中 PlayerAttributes 所使用的 。

如需播放器屬性的詳細資訊,請參閱 AttributeValue

Type (類型)TMap>FString, FAttributeValue<

必要:否

PlayerId

播放器的唯一識別符。

Type (類型)std::string

必要:否

團隊

玩家在相符項目中指派的團隊名稱。您可以在配對規則集中定義團隊名稱。

Type (類型)FString

必要:否

FGameLiftDescribePlayerSessionsRequest

指定要擷取哪些播放器工作階段的物件。伺服器程序會將此資訊與DescribePlayerSessions()呼叫 Amazon 一起提供 GameLift。

屬性 Description
GameSessionId

唯一的遊戲工作階段識別符。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。

遊戲工作階段 ID 格式為 FStringGameSessionID 是自訂 ID 字串或

Type (類型)std::string

必要:否

PlayerSessionId

播放器工作階段的唯一識別符。使用此參數來請求單一特定的播放器工作階段。

Type (類型)FString

必要:否

PlayerId

播放器的唯一識別符。使用此參數來請求特定播放器的所有播放器工作階段。請參閱 產生玩家 ID

Type (類型)FString

必要:否

PlayerSessionStatusFilter

要篩選結果的播放器工作階段狀態。可能的玩家工作階段狀態包括:

  • RESERVED – 已收到播放器工作階段請求,但播放器尚未連線至伺服器程序或已驗證。

  • ACTIVE – 播放器已透過伺服器程序驗證,並已連線。

  • COMPLETED – 播放器連線中斷。

  • TIMEDOUT – 已收到玩家工作階段請求,但玩家未連線或未在逾時限制 (60 秒) 內驗證。

Type (類型)FString

必要:否

NextToken

表示結果下一頁開始的權杖。若要指定結果集的開始,請不要提供值。如果您提供播放器工作階段 ID,則會忽略此參數。

Type (類型)FString

必要:否

限制

回傳結果的數量上限。如果您提供播放器工作階段 ID,則會忽略此參數。

Type (類型)int

必要:否

FStopMatchBackfillRequest

用來取消比對回填請求的資訊。遊戲伺服器會在StopMatchBackfill()通話中將此資訊傳達給 Amazon GameLift 服務。

屬性 Description
GameSessionArn

取消請求的唯一遊戲工作階段識別符。

Type (類型)FString

必要:是

MatchmakingConfigurationArn

此請求已傳送至之相符者的唯一識別符。

Type (類型)FString

必要:是

TicketId

要取消的回填請求票證的唯一識別碼。

Type (類型)FString

必要:是

FAttributeValue

FPlayer屬性鍵值對中使用這些值。此物件可讓您使用任何有效的資料類型指定屬性值:字串、數字、字串陣列或資料映射。每個AttributeValue物件只能使用其中一個可用的屬性。

屬性 Description
attrType

指定屬性值的類型。

類型:FAttributeType列舉值。

必要:否

S

代表字串屬性值。

Type (類型)FString

必要:否

N

代表數值屬性值。

Type (類型)double

必要:否

SL

代表字串屬性值的陣列。

Type (類型)TArray<FString>

必要:否

SDM

代表字串索引鍵和雙值的字典。

Type (類型)TMap<FString, double>

必要:否

FGameLiftGetFleetRoleCredentialsRequest

此資料類型提供角色登入資料,可將對 AWS 資源的有限存取延伸至遊戲伺服器。如需詳細資訊,請參閱 設定 Amazon IAM的服務角色 GameLift

屬性 Description
RoleArn 服務角色的 Amazon Resource Name (ARN),可延伸資源的有限存取 AWS 。

Type (類型)FString

必要:否

RoleSessionName 描述角色憑證使用的工作階段名稱。

Type (類型)FString

必要:否

FGameLiftLongOutcome

此資料類型來自 動作,並產生具有下列屬性的物件:

屬性 Description
結果

動作的結果。

Type (類型)long

必要:否

ResultWithOwnership

動作的結果會轉換為 rvalue,以便呼叫程式碼可以取得物件的所有權。

Type (類型)long&&

必要:否

Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)FGameLiftError

必要:否

FGameLiftStringOutcome

此資料類型來自 動作,並產生具有下列屬性的物件:

屬性 Description
結果

動作的結果。

Type (類型)FString

必要:否

ResultWithOwnership

動作的結果會轉換為 rvalue,以便呼叫程式碼可以取得物件的所有權。

Type (類型)FString&&

必要:否

Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)FGameLiftError

必要:否

FGameLiftDescribePlayerSessionsOutcome

此資料類型來自 動作,並產生具有下列屬性的物件:

屬性 Description
結果

動作的結果。

Type (類型)FGameLiftDescribePlayerSessionsResult

必要:否

ResultWithOwnership

動作的結果會轉換為 rvalue,以便呼叫程式碼可以取得物件的所有權。

Type (類型)FGameLiftDescribePlayerSessionsResult&&

必要:否

Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)FGameLiftError

必要:否

FGameLiftDescribePlayerSessionsResult

屬性 Description
PlayerSessions

Type (類型)TArray<FGameLiftPlayerSession>

必要:是

NextToken

表示結果下一頁開始的權杖。若要指定結果集的開始,請不要提供值。如果您提供播放器工作階段 ID,則會忽略此參數。

Type (類型)FString

必要:否

Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)FGameLiftError

必要:否

FGenericOutcome

此資料類型來自 動作,並產生具有下列屬性的物件:

屬性 Description
Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)FGameLiftError

必要:否

FGameLiftPlayerSession

屬性 Description
CreationTime

Type (類型)long

必要:是

FleetId

Type (類型)FString

必要:是

GameSessionId

Type (類型)FString

必要:是

IpAddress

Type (類型)FString

必要:是

PlayerData

Type (類型)FString

必要:是

PlayerId

Type (類型)FString

必要:是

PlayerSessionId

Type (類型)FString

必要:是

連線埠

Type (類型)int

必要:是

Status

類型:PlayerSessionStatus列舉

必要:是

TerminationTime

Type (類型)long

必要:是

DnsName

Type (類型)FString

必要:是

FGameLiftGetComputeCertificateOutcome

此資料類型來自 動作,並產生具有下列屬性的物件:

屬性 Description
結果

動作的結果。

Type (類型)FGameLiftGetComputeCertificateResult

必要:否

ResultWithOwnership

動作的結果會轉換為 rvalue,以便呼叫程式碼可以取得物件的所有權。

Type (類型)FGameLiftGetComputeCertificateResult&&

必要:否

Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)FGameLiftError

必要:否

FGameLiftGetComputeCertificateResult

運算上TLS憑證的路徑和運算的主機名稱。

屬性 Description
CertificatePath

Type (類型)FString

必要:是

ComputeName

Type (類型)FString

必要:是

FGameLiftGetFleetRoleCredentialsOutcome

此資料類型來自 動作,並產生具有下列屬性的物件:

屬性 Description
結果

動作的結果。

Type (類型)FGetFleetRoleCredentialsResult

必要:否

ResultWithOwnership

動作的結果會轉換為 rvalue,以便呼叫程式碼可以取得物件的所有權。

Type (類型)FGameLiftGetFleetRoleCredentialsResult&&

必要:否

Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)FGameLiftError

必要:否

FGetFleetRoleCredentialsResult

屬性 Description
AccessKeyId

用來驗證和提供 AWS 資源存取權的存取金鑰 ID。

Type (類型)FString

必要:否

AssumedRoleId

服務角色所屬的使用者 ID。

Type (類型)FString

必要:否

AssumedRoleUserArn

服務角色所屬使用者的 Amazon Resource Name (ARN)。

Type (類型)FString

必要:否

過期

工作階段憑證過期前的時間長度。

Type (類型)FDateTime

必要:否

SecretAccessKey

用於身分驗證的秘密存取金鑰 ID。

Type (類型)FString

必要:否

SessionToken

識別目前作用中工作階段與 AWS 資源互動的權杖。

Type (類型)FString

必要:否

Success (成功)

動作是否成功。

Type (類型)bool

必要:是

錯誤

如果動作失敗,則發生的錯誤。

Type (類型)GameLiftError

必要:否

FGameLiftError

屬性 Description
ErrorType

錯誤類型。

類型:GameLiftErrorType列舉

必要:否

ErrorName

錯誤的名稱。

Type (類型)std::string

必要:否

ErrorMessage

錯誤訊息。

Type (類型)std::string

必要:否

列舉

為 Amazon GameLift 伺服器 SDK(非真實) 定義的列舉定義如下:

FAttributeType
  • NONE

  • STRING

  • DOUBLE

  • STRING_LIST

  • STRING_DOUBLE_MAP

GameLiftErrorType

指示錯誤類型的字串值。有效值包含:

  • SERVICE_CALL_FAILED – 呼叫 AWS 服務失敗。

  • LOCAL_CONNECTION_FAILED – 與 Amazon 的本機連線 GameLift 失敗。

  • NETWORK_NOT_INITIALIZED – 網路尚未初始化。

  • GAMESESSION_ID_NOT_SET – 尚未設定遊戲工作階段 ID。

  • BAD_REQUEST_EXCEPTION

  • INTERNAL_SERVICE_EXCEPTION

  • ALREADY_INITIALIZED – Amazon GameLift Server 或用戶端已使用 Initialize() 初始化。

  • FLEET_MISMATCH – 目標機群與 gameSession 或 的機群不相符playerSession。

  • GAMELIFT_CLIENT_NOT_INITIALIZED – Amazon GameLift 用戶端尚未初始化。

  • GAMELIFT_SERVER_NOT_INITIALIZED – Amazon GameLift 伺服器尚未初始化。

  • GAME_SESSION_ENDED_FAILED – Amazon GameLift Server SDK無法聯絡 服務來報告遊戲工作階段已結束。

  • GAME_SESSION_NOT_READY – Amazon GameLift Server Game Session 未啟用。

  • GAME_SESSION_READY_FAILED – Amazon GameLift Server SDK無法聯絡 服務來報告遊戲工作階段已準備就緒。

  • INITIALIZATION_MISMATCH – 在 Server::Initialize() 之後呼叫用戶端方法,反之亦然。

  • NOT_INITIALIZED – Amazon GameLift Server 或用戶端尚未使用 Initialize() 初始化。

  • NO_TARGET_ALIASID_SET – aliasId 尚未設定目標。

  • NO_TARGET_FLEET_SET – 尚未設定目標機群。

  • PROCESS_ENDING_FAILED – Amazon GameLift Server SDK無法聯絡 服務來報告程序即將結束。

  • PROCESS_NOT_ACTIVE – 伺服器程序尚未啟動,未繫結至 GameSession,且無法接受或處理 PlayerSessions。

  • PROCESS_NOT_READY – 伺服器程序尚未準備好啟用。

  • PROCESS_READY_FAILED – Amazon GameLift Server SDK無法聯絡 服務以報告程序已準備就緒。

  • SDK_VERSION_DETECTION_FAILED – SDK版本偵測失敗。

  • STX_CALL_FAILED – 呼叫XStx伺服器後端元件失敗。

  • STX_INITIALIZATION_FAILED – XStx 伺服器後端元件無法初始化。

  • UNEXPECTED_PLAYER_SESSION – 伺服器遇到未註冊的播放器工作階段。

  • WEBSOCKET_CONNECT_FAILURE

  • WEBSOCKET_CONNECT_FAILURE_FORBIDDEN

  • WEBSOCKET_CONNECT_FAILURE_INVALID_URL

  • WEBSOCKET_CONNECT_FAILURE_TIMEOUT

  • WEBSOCKET_RETRIABLE_SEND_MESSAGE_FAILURE – 將訊息傳送至 GameLift Service 的可重試失敗 WebSocket。

  • WEBSOCKET_SEND_MESSAGE_FAILURE – 無法傳送訊息至 GameLift Service WebSocket。

  • MATCH_BACKFILL_REQUEST_VALIDATION – 驗證請求失敗。

  • PLAYER_SESSION_REQUEST_VALIDATION – 驗證請求失敗。

EPlayerSessionCreationPolicy

字串值代表遊戲工作階段是否可接受新玩家。有效值包含:

  • ACCEPT_ALL – 接受所有新的播放器工作階段。

  • DENY_ALL – 拒絕所有新的玩家工作階段。

  • NOT_SET – 遊戲工作階段未設定為接受或拒絕新的玩家工作階段。

EPlayerSessionStatus
  • ACTIVE

  • COMPLETED

  • NOT_SET

  • RESERVED

  • TIMEDOUT