虛幻引擎的亞馬遜GameLift服務器 SDK 參考:操作 - Amazon GameLift

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

虛幻引擎的亞馬遜GameLift服務器 SDK 參考:操作

這個亞馬遜GameLift伺服器開發套件參考可以幫助您準備虛幻引擎遊戲專案,以便與亞馬遜GameLift搭配使用。如需整合流程的詳細資訊,請參閱 添加 Amazon GameLift 到您的遊戲服務器

此 API 定義於 GameLiftServerSDK.hGameLiftServerSDKModels.h

若要設定 Unreal Engine 外掛程式,並查看程式碼範例 GameLift 將 Amazon 集成到虛幻引擎項目中

AcceptPlayerSession()

通知 Amazon GameLift 服務具有指定玩家工作階段 ID 的玩家已連線到伺服器程序並需要驗證。Amazon 會GameLift驗證玩家工作階段 ID 是否有效 — 也就是說,玩家 ID 已在遊戲工作階段中保留一個玩家位置。一旦驗證,亞馬遜GameLift將播放器插槽的狀態從保留更改為活動狀態。

語法

FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)

參數

playerSessionId

由亞馬遜GameLift服務發出的唯一 ID,以回應對 AWS SDK 亞馬遜 GameLift API 動作的呼叫CreatePlayerSession。遊戲客戶端在連接到服務器進程時引用此 ID。

類型:FString

必要:是

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

ActivateGameSession()

通知 Amazon GameLift 服務伺服器處理序已啟動遊戲工作階段,現在已準備好接收玩家連線。此動作應當做 onStartGameSession() 回呼函數的一部分,在所有遊戲工作階段初始化完成後進行。

語法

FGameLiftGenericOutcome ActivateGameSession()

參數

此動作沒有參數。

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

DescribePlayerSessions()

擷取玩家工作階段資料,包括設定、工作階段中繼資料和玩家資料。使用此動作可取得單一玩家工作階段資訊、一個遊戲工作階段中所有玩家工作階段的資訊,或是與單一玩家 ID 關聯的所有玩家工作階段資訊。

語法

FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)

參數

describePlayerSessions請求

F DescribePlayerSessionsRequest 物件描述的是要擷取哪個玩家工作階段。

必要:是

傳回值

如果成功,會傳回 F DescribePlayerSessionsRequest 物件,內含一組與請求參數相符的玩家工作階段物件。播放器工作階段物件的結構與 AWS SDK Amazon GameLift API PlayerSession資料類型相同。

GetGameSessionId()

若伺服器流程正在運作,擷取目前正在由伺服器程序託管的遊戲工作階段 ID。

語法

FGameLiftStringOutcome GetGameSessionId()

參數

此動作沒有參數。

傳回值

如果成功,則會把遊戲工作階段 ID 當成 FGameLiftStringOutcome 物件傳回。如果不成功,則會傳回錯誤訊息。

GetInstanceCertificate()

擷取與叢集及其執行個體相關聯的 PEM 編碼 TLS 憑證的檔案位置。 AWS Certificate Manager當您建立新的叢集並將憑證組態設定為「已產生」時,會產生此憑證。使用此憑證可與遊戲用戶端建立安全連線,以及加密用戶端/伺服器通訊。

語法

FGameLiftGetInstanceCertificateOutcome GetInstanceCertificate()

參數

此動作沒有參數。

傳回值

如果成功,會傳回包含叢集 TLS 憑證檔案和憑證鏈結位置的GetInstanceCertificateOutcome物件,這些檔案儲存在執行個體上。從憑證鏈結擷取的根憑證檔案也會儲存在執行個體上。如果不成功,則會傳回錯誤訊息。

如需有關憑證和憑證鏈結資料的詳細資訊,請參閱 AWS Certificate Manager API 參考中的GetCertificate回應元素

GetSdkVersion()

傳回內建至伺服器程序的目前開發套件版本編號。

語法

FGameLiftStringOutcome GetSdkVersion();

參數

此動作沒有參數。

傳回值

如果成功,將目前開發套件版本以 FGameLiftStringOutcome 物件傳回。返回的字符串僅包含版本號(例如「3.1.5」)。如果不成功,則會傳回錯誤訊息。

範例

Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();

InitSDK()

初始化亞馬遜開GameLift發套件。在發生任何其他 Amazon GameLift 相關初始化之前,應在啟動時呼叫此方法。

語法

FGameLiftGenericOutcome InitSDK()

參數

此動作沒有參數。

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

ProcessEnding()

通知 Amazon GameLift 服務伺服器處理序正在關閉。此方法應於所有其他清除作業 (包括關閉所有作用中遊戲工作階段) 之後呼叫。此方法應以結束代碼 0 結束,非零的結束代碼會導致該程序未徹底結束的事件訊息出現。

語法

FGameLiftGenericOutcome ProcessEnding()

參數

此動作沒有參數。

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

ProcessReady()

通知 Amazon GameLift 服務伺服器處理序已準備好主持遊戲工作階段。在成功叫用InitSDK()並完成伺服器處理序主控遊戲工作階段之前所需的設定工作之後,呼叫此方法。每個進程應該只調用一次此方法。

語法

FGameLiftGenericOutcome ProcessReady(FProcessParameters &processParameters)

參數

F ProcessParameters

F ProcessParameters 物件會傳達以下有關伺服器程序的資訊:

  • 在遊戲伺服器程式碼中實作的回呼方法名稱,Amazon GameLift 服務呼叫以與伺服器處理序進行通訊。

  • 伺服器程序正在接聽的埠號。

  • 您希望 Amazon 擷取和存放的任何遊戲工作階段特定檔案GameLift的路徑。

必要:是

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

範例

請在使用 Unreal Engine 外掛程式檢視範本程式碼。

RemovePlayerSession()

通知 Amazon GameLift 服務具有指定玩家工作階段 ID 的玩家已中斷與伺服器處理序的連線。作為回應,亞馬遜將播放器插槽GameLift更改為可用,這允許將其分配給新玩家。

語法

FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)

參數

playerSessionId

由亞馬遜GameLift服務發出的唯一 ID,以回應對 AWS SDK 亞馬遜 GameLift API 動作的呼叫CreatePlayerSession。遊戲客戶端在連接到服務器進程時引用此 ID。

類型:FString

必要:是

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

StartMatchBackfill()

此動作會傳送請求,以便替 FlexMatch 所建立的遊戲工作階段​開放空位找到新玩家。另請參閱 AWS SDK 動作 StartMatchBackfill()。使用此動作,目前代管遊戲工作階段的遊戲伺服器程序即可初始化配對回填請求。進一步瞭解FlexMatch回填功能

此為非同步動作。如果成功配對新玩家,Amazon GameLift 服務會使用回調函OnUpdateGameSession()數提供更新的分房系統資料。

一個伺服器程序一次僅能有一個使用中的配對回填請求。若要發送新請求,請先呼叫 StopMatchBackfill() 取消原始請求。

語法

FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);

參數

F StartMatchBackfillRequest

F StartMatchBackfillRequest 物件會傳達以下資訊:

  • 指派給回填請求的票證 ID。此資訊是選擇性的;如果未提供 ID,Amazon GameLift 將自動產生一個 ID。

  • 傳送請求對象的配對建構器。必須填入完整的組態 ARN。此值可從遊戲工作階段的配對建構器資料中取得。

  • 經回填之遊戲工作階段的 ID。

  • 遊戲工作階段目前玩家可用的配對資料。

必要:是

傳回值

如果成功,會傳回符合的回填票證做為 FGameLiftStringOutcome 物件。如果不成功,則會傳回錯誤訊息。您可以使用 AWS SDK 動作 DescribeMatchmaking() 來追蹤工單狀態。

StopMatchBackfill()

取消以 StartMatchBackfill() 建立的使用中配對回填請求。另請參閱 AWS SDK 動作 StopMatchmaking()。進一步瞭解FlexMatch回填功能

語法

FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);

參數

StopMatchBackfillRequest

識別配對票證的 F StopMatchBackfillRequest 物件,用以取消:

  • 已取消指派給此回填請求的票證 ID

  • 回填請求的傳送目標配對建構器

  • 與回填請求相關的遊戲工作階段

必要:是

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

TerminateGameSession()

此方法已被版本 4.0.1 棄用。相反地,伺服器程序應該在遊戲工作階段結束ProcessEnding()後呼叫。

通知 Amazon GameLift 服務伺服器處理序已結束目前的遊戲工作階段。當伺服器處理程序保持作用中並準備好主持新遊戲工作階段時,就會呼叫此動作。只有在遊戲工作階段終止程序完成後,才應該呼叫它,因為它會向 Amazon 發出訊號GameLift,伺服器程序可立即用於託管新的遊戲工作階段。

如果在遊戲工作階段停止後關閉伺服器程序,則不會呼叫此動作。相反,ProcessEnding()請調用以表示遊戲會話和服務器進程都結束。

語法

FGameLiftGenericOutcome TerminateGameSession()

參數

此動作沒有參數。

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。

UpdatePlayerSessionCreationPolicy()

更新目前遊戲工作階段的能力,以接受新的玩家工作階段。遊戲工作階段可設定為接受或拒絕所有新的玩家工作階段。(另請參閱亞馬遜GameLift服務 API 參考中的UpdateGameSession()操作)。

語法

FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)

參數

政策

值代表遊戲工作階段是否接受新玩家。

類型:EPlayerSessionCreationPolicy enum。有效值包含:

  • ACCEPT_ALL – 接受所有新玩家工作階段。

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

必要:是

傳回值

傳回包含錯誤訊息的成功或失敗的一般結果。