本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Unreal Engine SDK的 Amazon GameLift 伺服器:動作
使用 Amazon GameLift Server SDK for Unreal 參考,整合您的多人遊戲以與 Amazon 託管 GameLift。如需整合程序的指引,請參閱 將 Amazon GameLift 新增至您的遊戲伺服器。
注意
此參考適用於舊版的 Amazon GameLift 伺服器 SDK。如需最新版本,請參閱Unreal Engine SDK 的 Amazon GameLift Server 5.x:動作。
這是API在 GameLiftServerSDK.h
和 中定義的GameLiftServerSDKModels.h
。
若要設定 Unreal Engine 外掛程式,並查看程式碼範例 將 Amazon GameLift 整合至 Unreal Engine 專案。
Unreal Engine SDK的 Amazon GameLift 伺服器:資料類型
主題
AcceptPlayerSession()
通知 Amazon GameLift 服務,具有指定播放器工作階段 ID 的播放器已連線至伺服器程序,且需要驗證。Amazon 會 GameLift 驗證播放器工作階段 ID 是否有效,也就是說,播放器 ID 已在遊戲工作階段中預留播放器插槽。驗證後,Amazon 會將播放器插槽的狀態從 GameLift 變更為 RESERVED ACTIVE。
語法
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
參數
- playerSessionId
-
Amazon GameLift 服務為回應對 Amazon GameLift API 動作 的 AWS SDK呼叫而發出的唯一 IDCreatePlayerSession。遊戲用戶端在連線至伺服器程序時參考此 ID。
類型: FString
必要:是
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
ActivateGameSession()
通知 Amazon GameLift 服務伺服器程序已啟用遊戲工作階段,現在已準備好接收玩家連線。此動作應當做 onStartGameSession()
回呼函數的一部分,在所有遊戲工作階段初始化完成後進行。
語法
FGameLiftGenericOutcome ActivateGameSession()
參數
此動作沒有參數。
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
DescribePlayerSessions()
擷取玩家工作階段資料,包括設定、工作階段中繼資料和玩家資料。使用此動作可取得單一玩家工作階段資訊、一個遊戲工作階段中所有玩家工作階段的資訊,或是與單一玩家 ID 關聯的所有玩家工作階段資訊。
語法
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
參數
- describePlayerSessions請求
-
FDescribePlayerSessionsRequest 物件描述的是要擷取哪個玩家工作階段。
必要:是
傳回值
如果成功,會傳回 FDescribePlayerSessionsRequest 物件,內含一組與請求參數相符的玩家工作階段物件。播放器工作階段物件的結構與 AWS SDK Amazon GameLift API PlayerSession資料類型相同。
GetGameSessionId()
若伺服器流程正在運作,擷取目前正在由伺服器程序託管的遊戲工作階段 ID。
語法
FGameLiftStringOutcome GetGameSessionId()
參數
此動作沒有參數。
傳回值
如果成功,則會把遊戲工作階段 ID 當成 FGameLiftStringOutcome
物件傳回。如果不成功,則會傳回錯誤訊息。
GetInstanceCertificate()
擷取與機群及其執行個體相關聯的 pem 編碼TLS憑證的檔案位置。當您建立憑證組態設為 的新機群時 AWS Certificate Manager , 會產生此憑證GENERATED。使用此憑證可與遊戲用戶端建立安全連線,以及加密用戶端/伺服器通訊。
語法
FGameLiftGetInstanceCertificateOutcome GetInstanceCertificate()
參數
此動作沒有參數。
傳回值
如果成功, 會傳回GetInstanceCertificateOutcome
物件,其中包含存放在執行個體上的機群TLS憑證檔案和憑證鏈的位置。從憑證鏈擷取的根憑證檔案也會儲存在執行個體上。如果不成功,則會傳回錯誤訊息。
如需憑證和憑證鏈資料的詳細資訊,請參閱 參考中的 AWS Certificate Manager APIGetCertificate 回應元素。
GetSdkVersion()
傳回伺服器程序中SDK內建 的目前版本編號。
語法
FGameLiftStringOutcome GetSdkVersion();
參數
此動作沒有參數。
傳回值
如果成功, 會傳回目前SDK版本作為FGameLiftStringOutcome
物件。傳回的字串僅包含版本號碼 (例如 "3.1.5")。如果不成功,則會傳回錯誤訊息。
範例
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();
Init SDK()
初始化 Amazon GameLift SDK。在任何其他 Amazon GameLift相關初始化發生之前,應該在啟動時呼叫此方法。
語法
FGameLiftGenericOutcome InitSDK()
參數
此動作沒有參數。
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
ProcessEnding()
通知 Amazon GameLift 服務伺服器程序正在關閉。此方法應於所有其他清除作業 (包括關閉所有作用中遊戲工作階段) 之後呼叫。此方法應以結束代碼 0 結束,非零的結束代碼會導致該程序未徹底結束的事件訊息出現。
語法
FGameLiftGenericOutcome ProcessEnding()
參數
此動作沒有參數。
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
ProcessReady()
通知 Amazon GameLift 服務伺服器程序已準備好託管遊戲工作階段。在成功叫用Init SDK()並完成伺服器程序可以託管遊戲工作階段之前所需的設定任務之後,呼叫此方法。此方法每個程序只能呼叫一次。
語法
FGameLiftGenericOutcome ProcessReady(FProcessParameters &processParameters)
參數
- FProcessParameters
-
FProcessParameters 物件會傳達以下有關伺服器程序的資訊:
-
在遊戲伺服器程式碼中實作的回呼方法名稱,Amazon GameLift 服務叫用該方法與伺服器程序通訊。
-
伺服器程序正在接聽的埠號。
-
您希望 Amazon GameLift 擷取和儲存的任何遊戲工作階段特定檔案路徑。
必要:是
-
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
範例
請在使用 Unreal Engine 外掛程式檢視範本程式碼。
RemovePlayerSession()
通知 Amazon GameLift 服務,具有指定播放器工作階段 ID 的播放器已中斷與伺服器程序的連線。作為回應,Amazon 會將播放器插槽 GameLift 變更為可用,以便將其指派給新的播放器。
語法
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
參數
- playerSessionId
-
Amazon GameLift 服務為回應對 Amazon GameLift API 動作 的 AWS SDK呼叫而發出的唯一 IDCreatePlayerSession。遊戲用戶端在連線至伺服器程序時參考此 ID。
類型: FString
必要:是
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
StartMatchBackfill()
傳送請求,以尋找使用 建立的遊戲工作階段中開啟插槽的新玩家 FlexMatch。請同時參閱 動作 AWS SDKStartMatchBackfill()。使用此動作,目前代管遊戲工作階段的遊戲伺服器程序即可初始化配對回填請求。進一步了解 FlexMatch 回填功能 。
此為非同步動作。如果新的玩家成功相符,Amazon GameLift 服務會使用回呼函數 提供更新的相符者資料OnUpdateGameSession()
。
一個伺服器程序一次僅能有一個使用中的配對回填請求。若要發送新請求,請先呼叫 StopMatchBackfill() 取消原始請求。
語法
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
參數
- FStartMatchBackfillRequest
-
FStartMatchBackfillRequest 物件會傳達以下資訊:
-
指派給回填請求的票證 ID。此資訊為選用;如果未提供 ID,Amazon GameLift 會自動產生。
-
傳送請求對象的配對建構器。ARN 需要完整組態。此值可從遊戲工作階段的配對建構器資料中取得。
-
經回填之遊戲工作階段的 ID。
-
遊戲工作階段目前玩家可用的配對資料。
必要:是
-
傳回值
如果成功,會傳回符合的回填票證做為 FGameLiftStringOutcome
物件。如果不成功,則會傳回錯誤訊息。可以使用動作 DescribeMatchmaking() AWS SDK追蹤票證狀態。
StopMatchBackfill()
取消以 StartMatchBackfill() 建立的使用中配對回填請求。請同時參閱 AWS SDK動作 StopMatchmaking()。進一步了解 FlexMatch 回填功能 。
語法
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
參數
- StopMatchBackfillRequest
-
識別配對票證的 FStopMatchBackfillRequest 物件,用以取消:
-
已取消指派給此回填請求的票證 ID
-
回填請求的傳送目標配對建構器
-
與回填請求相關的遊戲工作階段
必要:是
-
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
TerminateGameSession()
此方法已棄用 4.0.1 版。相反ProcessEnding()地,伺服器程序應在遊戲工作階段結束後呼叫 。
通知 Amazon GameLift 服務伺服器程序已結束目前的遊戲工作階段。當伺服器程序保持作用中狀態並準備好託管新的遊戲工作階段時,就會呼叫此動作。只有在遊戲工作階段終止程序完成後才應該呼叫,因為它會向 Amazon 發出訊號 GameLift ,表示伺服器程序可立即用於託管新的遊戲工作階段。
如果在遊戲工作階段停止後伺服器程序將會關閉,則不會呼叫此動作。相反地,呼叫 ProcessEnding() 以發出遊戲工作階段和伺服器程序都即將結束的訊號。
語法
FGameLiftGenericOutcome TerminateGameSession()
參數
此動作沒有參數。
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。
UpdatePlayerSessionCreationPolicy()
更新目前遊戲工作階段的能力,以接受新的玩家工作階段。遊戲工作階段可設定為接受或拒絕所有新的玩家工作階段。(另請參閱 Amazon GameLift Service API參考 中的 UpdateGameSession()
動作)。
語法
FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)
參數
- 政策
-
值代表遊戲工作階段是否接受新玩家。
類型:
EPlayerSessionCreationPolicy
enum。有效值包含:-
ACCEPT_ALL – 接受所有新的播放器工作階段。
-
DENY_ALL – 拒絕所有新的玩家工作階段。
必要:是
-
傳回值
傳回一般結果,其中包含成功或失敗以及錯誤訊息。