本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon GameLift Server SDK 5.x for C# and Unity:資料類型
使用 Amazon GameLift C# 伺服器 SDK 5.x 參考,整合您的多人遊戲以與 Amazon 託管 GameLift。如需整合程序的指引,請參閱 將 Amazon GameLift 新增至您的遊戲伺服器。如果您使用的是適用於 Unity 的 Amazon GameLift 外掛程式,請參閱 Unity 的 Amazon GameLift 外掛程式 (伺服器 SDK 5.x)。
Amazon GameLift Server SDK 5.x for C# 和 Unity: 動作
資料類型
- LogParameters
- ProcessParameters
- UpdateGameSession
- GameSession
- ServerParameters
- StartMatchBackfillRequest
- Player
- DescribePlayerSessionsRequest
- StopMatchBackfillRequest
- GetFleetRoleCredentialsRequest
- AttributeValue
- AwsStringOutcome
- GenericOutcome
- DescribePlayerSessionsOutcome
- DescribePlayerSessionsResult
- PlayerSession
- StartMatchBackfillOutcome
- StartMatchBackfillResult
- GetComputeCertificateOutcome
- GetComputeCertificateResult
- GetFleetRoleCredentialsOutcome
- GetFleetRoleCredentialsResult
- AwsDateTimeOutcome
- GameLiftError
- 列舉
LogParameters
使用此資料類型來識別在遊戲工作階段期間產生的檔案,而您希望遊戲伺服器在 GameLift 遊戲工作階段結束後上傳至 Amazon。遊戲伺服器會在ProcessReady()通話 GameLift 中與 LogParameters to
Amazon 通訊。
屬性 |
Description |
LogPaths |
您希望 Amazon GameLift 儲存供日後存取的遊戲伺服器日誌檔案的目錄路徑清單。伺服器程序會在每個遊戲工作階段期間產生這些檔案。您可以在遊戲伺服器中定義檔案路徑和名稱,並將其存放在根遊戲建置目錄中。 日誌路徑必須是絕對的。例如,如果您的遊戲建置將遊戲工作階段日誌儲存在類似 的路徑中 Type (類型): 必要:否 |
ProcessParameters
此資料類型包含在ProcessReady()通話 GameLift 中傳送至 Amazon 的一組參數。
屬性 |
Description |
LogParameters | 具有遊戲工作階段日誌檔案目錄路徑清單的物件。 Type (類型): 必要:是 |
OnHealthCheck | Amazon 從伺服器程序 GameLift 叫用以請求運作狀態報告的回呼函數名稱。Amazon 每 60 秒 GameLift 呼叫一次此函數。呼叫此函數後,Amazon 會 GameLift 等待 60 秒等待回應,如果沒有收到回應,Amazon 會將伺服器程序 GameLift 記錄為運作狀態不佳。 Type (類型): 必要:是 |
OnProcessTerminate | Amazon GameLift 調用以強制伺服器程序關閉的回呼函數名稱。呼叫此功能後,Amazon 會 GameLift 等待五分鐘讓伺服器程序關閉,並在關閉伺服器程序之前回應ProcessEnding()呼叫。 Type (類型): 必要:是 |
OnStartGameSession | Amazon GameLift 叫用以啟用新遊戲工作階段的回呼函數名稱。Amazon GameLift 呼叫此函數以回應用戶端請求 CreateGameSession。回呼函數會取得GameSession物件。 Type (類型): 必要:是 |
OnUpdateGameSession | Amazon GameLift 叫用以將更新後的遊戲工作階段物件傳遞至伺服器程序的回呼函數名稱。Amazon 會在處理相符回填請求以提供更新的相符者資料時 GameLift 呼叫此函數。它傳遞GameSession物件、狀態更新 (updateReason ) 和相符的回填票證 ID。類型:作廢 OnUpdateGameSessionDelegate(UpdateGameSession) 必要:否 |
連線埠 | 伺服器程序接聽新播放器連線的連接埠號碼。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中,遊戲工作階段會使用該物件來連接到伺服器程序。 Type (類型): 必要:是 |
UpdateGameSession
已更新遊戲工作階段物件的資訊,包括更新遊戲工作階段的原因。如果更新與相符的回填動作相關,則此資料類型會包含回填票證 ID。
屬性 | Description |
---|---|
GameSession | GameSession 物件。GameSession 物件包含描述遊戲工作階段的屬性。Type (類型): 必要:是 |
UpdateReason | 更新遊戲工作階段的原因。 Type (類型): 必要:是 |
BackfillTicketId | 嘗試更新遊戲工作階段的回填票證 ID。 Type (類型): 必要:是 |
GameSession
遊戲工作階段的詳細資訊。
屬性 | Description |
---|---|
GameSessionId |
遊戲工作階段的唯一識別符。遊戲工作階段ARN的格式如下: Type (類型): 必要:否 |
名稱 |
遊戲工作階段的描述性標籤。 Type (類型): 必要:否 |
FleetId |
遊戲工作階段執行所在的機群的唯一識別符。 Type (類型): 必要:否 |
MaximumPlayerSessionCount |
遊戲工作階段的播放器連線數目上限。 Type (類型): 必要:否 |
連線埠 |
遊戲工作階段的連接埠號碼。若要連線至 Amazon GameLift 遊戲伺服器,應用程式需要 IP 地址和連接埠號碼。 Type (類型): 必要:否 |
IpAddress |
遊戲工作階段的 IP 地址。若要連線至 Amazon GameLift 遊戲伺服器,應用程式需要 IP 地址和連接埠號碼。 Type (類型): 必要:否 |
GameSessionData |
一組自訂遊戲工作階段屬性,格式為單一字串值。 Type (類型): 必要:否 |
MatchmakerData |
用於建立遊戲工作階段的配對程序相關資訊,JSON以語法格式為字串。除了使用的配對組態之外,它還包含指派給相符項目的所有玩家的資料,包括玩家屬性和團隊指派。 Type (類型): 必要:否 |
GameProperties |
遊戲工作階段的一組自訂屬性,格式為金鑰:值對。這些屬性會與啟動新遊戲工作階段的請求一起傳遞。 Type (類型): 必要:否 |
DnsName |
指派給執行遊戲工作階段之執行個體的DNS識別碼。值具有下列格式:
連線至在TLS啟用 的機群上執行的遊戲工作階段時,您必須使用 DNS名稱,而非 IP 地址。 Type (類型): 必要:否 |
ServerParameters
用於維護 Amazon 之間連線的資訊 GameLift Anywhere 伺服器和 Amazon GameLift 服務。使用 啟動新的伺服器程序時,會使用此資訊Init SDK()。對於託管於 Amazon GameLift 受管EC2執行個體的伺服器,請使用空物件。
屬性 | Description |
---|---|
WebSocketUrl |
當您 Type (類型): 必要:是 |
ProcessId |
註冊至託管遊戲之伺服器程序的唯一識別碼。 Type (類型): 必要:是 |
HostId |
具有託管遊戲之伺服器程序的主機的唯一識別符。 hostId 是當您註冊運算 ComputeName 時使用的 。如需詳細資訊,請參閱: RegisterCompute Type (類型): 必要:是 |
FleetId | 運算註冊之機群的機群 ID。如需詳細資訊,請參閱 RegisterCompute。 Type (類型): 必要:是 |
AuthToken | Amazon 產生的身分驗證權杖 GameLift ,用於向 Amazon 對伺服器進行身分驗證 GameLift。如需詳細資訊,請參閱 GetComputeAuthToken。 Type (類型): 必要:是 |
StartMatchBackfillRequest
用來建立比對回填請求的資訊。遊戲伺服器會在StartMatchBackfill()通話 GameLift 中將此資訊傳達給 Amazon。
屬性 | Description |
---|---|
GameSessionArn |
唯一的遊戲工作階段識別符。API 操作會 Type (類型): 必要:是 |
MatchmakingConfigurationArn |
以 形式的唯一識別符ARN,可讓相符者用於此請求。原始遊戲工作階段ARN的相符者位於相符者資料屬性中的遊戲工作階段物件中。進一步了解使用相符器資料 中的相符器資料。 Type (類型): 必要:是 |
Players |
一組資料,代表目前在遊戲工作階段中的所有玩家。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。 Type (類型): 必要:是 |
TicketId |
比對或比對回填請求票證的唯一識別符。如果您不提供值,Amazon GameLift 會產生值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。 Type (類型): 必要:否 |
Player
代表配對中的玩家。啟動配對請求時,播放器具有玩家 ID、屬性和可能的延遲資料。Amazon 在進行比對後 GameLift 新增團隊資訊。
屬性 | Description |
---|---|
LatencyInMS |
一組以毫秒表示的值,表示播放器連線到位置時所經歷的延遲量。 如果使用此屬性,則播放器只會符合列出的位置。若配對構建器有評估玩家延遲的規則,玩家則必須回報延遲度,方可配對。 Type (類型): 必要:否 |
PlayerAttributes |
包含玩家資訊的索引鍵:值對集合,可用於配對。播放器屬性金鑰必須符合配對規則集中 PlayerAttributes 所使用的 。 如需播放器屬性的詳細資訊,請參閱 AttributeValue。 Type (類型): 必要:否 |
PlayerId |
播放器的唯一識別符。 Type (類型): 必要:否 |
團隊 |
玩家在相符項目中指派的團隊名稱。您可以在配對規則集中定義團隊名稱。 Type (類型): 必要:否 |
DescribePlayerSessionsRequest
此資料類型用於指定要擷取的玩家工作階段,其可用多種方式使用:(1) 提供 PlayerSessionId 以請求特定玩家工作階段;(2) 提供 GameSessionId 以請求指定遊戲工作階段中的所有玩家工作階段;或 (3) 提供 PlayerId 以請求指定玩家的所有玩家工作階段。對於大量的玩家工作階段,可使用分頁參數擷取結果做為循序頁面。
屬性 | Description |
---|---|
GameSessionId |
唯一的遊戲工作階段識別符。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。遊戲工作階段 ID 格式如下: Type (類型): 必要:否 |
PlayerSessionId |
播放器工作階段的唯一識別符。 Type (類型): 必要:否 |
PlayerId |
播放器的唯一識別符。請參閱 產生玩家 ID。 Type (類型): 必要:否 |
PlayerSessionStatusFilter |
要篩選結果的播放器工作階段狀態。可能的玩家工作階段狀態包括下列項目:
Type (類型): 必要:否 |
NextToken |
表示結果下一頁開始的權杖。若要指定結果集的開始,請勿提供值。如果您提供播放器工作階段 ID,則會忽略此參數。 Type (類型): 必要:否 |
限制 |
回傳結果的數量上限。如果您提供播放器工作階段 ID,則會忽略此參數。 Type (類型): 必要:否 |
StopMatchBackfillRequest
用來取消比對回填請求的資訊。遊戲伺服器會在StopMatchBackfill()通話中將此資訊傳達給 Amazon GameLift 服務。
屬性 | Description |
---|---|
GameSessionArn |
取消請求的唯一遊戲工作階段識別符。 Type (類型): 必要:是 |
MatchmakingConfigurationArn |
此請求已傳送至之相符者的唯一識別符。 Type (類型): 必要:是 |
TicketId |
要取消的回填請求票證的唯一識別碼。 Type (類型): 必要:是 |
GetFleetRoleCredentialsRequest
此資料類型可讓遊戲伺服器限制存取您的其他 AWS 資源。如需詳細資訊,請參閱 設定 Amazon IAM的服務角色 GameLift。
屬性 | Description |
---|---|
RoleArn | 服務角色的 Amazon Resource Name (ARN),可延伸資源的有限存取 AWS 。 Type (類型): 必要:是 |
RoleSessionName | 描述角色憑證使用的工作階段名稱。 Type (類型): 必要:否 |
AttributeValue
在Player屬性鍵值對中使用這些值。此物件可讓您使用任何有效的資料類型指定屬性值:字串、數字、字串陣列或資料映射。每個AttributeValue
物件只能使用其中一個可用的屬性。
屬性 | Description |
---|---|
attrType |
指定屬性值的類型。 類型: 必要:否 |
S |
代表字串屬性值。 Type (類型): 必要:是 |
N |
代表數值屬性值。 Type (類型): 必要:是 |
SL |
代表字串屬性值的陣列。 Type (類型): 必要:是 |
SDM |
代表字串索引鍵和雙值的字典。 Type (類型): 必要:是 |
AwsStringOutcome
此資料類型來自 動作,並產生具有下列屬性的物件:
屬性 | Description |
---|---|
結果 |
動作的結果。 Type (類型): 必要:否 |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
GenericOutcome
此資料類型來自 動作,並產生具有下列屬性的物件:
屬性 | Description |
---|---|
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
DescribePlayerSessionsOutcome
此資料類型來自 動作,並產生具有下列屬性的物件:
屬性 | Description |
---|---|
結果 |
動作的結果。 Type (類型):DescribePlayerSessionsResult 必要:否 |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
DescribePlayerSessionsResult
屬性 | Description |
---|---|
NextToken |
表示結果下一頁開始的權杖。若要指定結果集的開始,請不要提供值。如果您提供播放器工作階段 ID,則會忽略此參數。 Type (類型): 必要:是 |
PlayerSessions |
包含符合請求之每個玩家工作階段屬性的物件集合。 Type (類型): 必要: |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
PlayerSession
屬性 | Description |
---|---|
CreationTime |
Type (類型): 必要:是 |
FleetId |
Type (類型): 必要:是 |
GameSessionId |
Type (類型): 必要:是 |
IpAddress |
Type (類型): 必要:是 |
PlayerData |
Type (類型): 必要:是 |
PlayerId |
Type (類型): 必要:是 |
PlayerSessionId |
Type (類型): 必要:是 |
連線埠 |
Type (類型): 必要:是 |
Status |
類型: 必要:是 |
TerminationTime |
Type (類型): 必要:是 |
DnsName |
Type (類型): 必要:是 |
StartMatchBackfillOutcome
此資料類型來自 動作,並產生具有下列屬性的物件:
屬性 | Description |
---|---|
結果 |
動作的結果。 Type (類型):StartMatchBackfillResult 必要:否 |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
StartMatchBackfillResult
屬性 | Description |
---|---|
TicketId |
Type (類型): 必要:是 |
GetComputeCertificateOutcome
此資料類型來自 動作,並產生具有下列屬性的物件:
屬性 | Description |
---|---|
結果 |
動作的結果。 Type (類型):GetComputeCertificateResult 必要:否 |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
GetComputeCertificateResult
運算上TLS憑證的路徑和運算的主機名稱。
屬性 | Description |
---|---|
CertificatePath |
Type (類型): 必要:是 |
ComputeName |
Type (類型): 必要:是 |
GetFleetRoleCredentialsOutcome
此資料類型來自 動作,並產生具有下列屬性的物件:
屬性 | Description |
---|---|
結果 |
動作的結果。 Type (類型):GetFleetRoleCredentialsResult 必要:否 |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
GetFleetRoleCredentialsResult
屬性 | Description |
---|---|
AccessKeyId |
用來驗證和提供 AWS 資源存取權的存取金鑰 ID。 Type (類型): 必要:否 |
AssumedRoleId |
服務角色所屬的使用者 ID。 Type (類型): 必要:否 |
AssumedRoleUserArn |
服務角色所屬使用者的 Amazon Resource Name (ARN)。 Type (類型): 必要:否 |
過期 |
工作階段憑證過期前的時間長度。 Type (類型): 必要:否 |
SecretAccessKey |
用於身分驗證的秘密存取金鑰 ID。 Type (類型): 必要:否 |
SessionToken |
識別目前作用中工作階段與 AWS 資源互動的權杖。 Type (類型): 必要:否 |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
AwsDateTimeOutcome
此資料類型來自 動作,並產生具有下列屬性的物件:
屬性 | Description |
---|---|
結果 |
動作的結果。 Type (類型): 必要:否 |
Success (成功) |
動作是否成功。 Type (類型): 必要:是 |
錯誤 |
如果動作失敗,則發生的錯誤。 Type (類型):GameLiftError 必要:否 |
GameLiftError
屬性 | Description |
---|---|
ErrorType |
錯誤類型。 類型: 必要:否 |
ErrorName |
錯誤的名稱。 Type (類型): 必要:否 |
ErrorMessage |
錯誤訊息。 Type (類型): 必要:否 |
列舉
為 Amazon GameLift 伺服器 SDK(C#) 定義的列舉定義如下:
- AttrType
-
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_TARGETFLEET__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 – 驗證請求失敗。
-
- PlayerSessionCreationPolicy
-
字串值代表遊戲工作階段是否可接受新玩家。有效值包含:
-
ACCEPT_ALL – 接受所有新的播放器工作階段。
-
DENY_ALL – 拒絕所有新的玩家工作階段。
-
NOT_SET – 遊戲工作階段未設定為接受或拒絕新的玩家工作階段。
-
- PlayerSessionStatus
-
ACTIVE
COMPLETED
NOT_SET
RESERVED
TIMEDOUT