將遊戲與 Amazon GameLift 即時伺服器整合 - Amazon GameLift

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

將遊戲與 Amazon GameLift 即時伺服器整合

本主題提供受管 Amazon GameLift 與即時伺服器解決方案的概觀。概述解釋了此解決方案何時適合您的遊戲,以及實時服務器如何支持多人遊戲。

提示

若要試用 Amazon GameLift 遊戲伺服器託管,請參閱Amazon 入門 GameLift

什麼是實時服務器?

實時服務器是 Amazon 為您提供的輕量級 ready-to-go 遊戲服務器, GameLift 供您與多人遊戲一起使用。即時伺服器會移除自訂遊戲伺服器的開發、測試和部署程序。此解決方案有助於最大限度地減少完成遊戲所需的時間和精力。

主要功能
  • 用於遊戲客戶端和服務器交互的全網絡堆棧

  • 核心遊戲伺服器功能

  • 自訂伺服器邏輯

  • 實時更新實時配置和服務器邏輯

  • FlexMatch 配對

  • 靈活控制託管資源

透過建立叢集並提供設定指令碼來設定即時伺服器。

實時服務器如何管理遊戲會話

您可以通過將其構建到實時腳本中來為遊戲會話管理添加自定義邏輯。您可以撰寫程式碼來存取伺服器特定物件、使用回呼新增事件驅動邏輯,或根據非事件案例新增邏輯。

實時客戶端和服務器如何交互

在遊戲會話期間,遊戲客戶端通過後端服務向實時服務器發送消息進行交互。接著,後端服務會在遊戲用戶端之間轉送訊息,以交換活動、遊戲狀態和相關遊戲資料。

此外,您可以通過將遊戲邏輯添加到實時腳本來自定義客戶端和服務器的交互方式。使用自定義遊戲邏輯,實時服務器可能會實現回調以啟動事件驅動的響應。

通訊協定

實時服務器和連接的遊戲客戶端通過兩個渠道進行通信:可靠交付的TCP連接和快速交付的渠UDP道。建立訊息時,遊戲用戶端會根據訊息的本質選擇要使用的通訊協定。預設情況UDP下,郵件傳遞設定為。如果通UDP道無法使用,Amazon GameLift 會使用TCP作為備用來傳送訊息。

訊息內容

訊息內容由兩個元素組成:必要的作業代碼 (opCode) 和選用的裝載。訊息可 opCode 識別特定玩家活動或遊戲事件,而裝載則提供與操作代碼相關的其他資料。這兩個元素都是由開發人員定義。您的遊戲用戶端會根據收到 opCodes 的訊息中的動作。

玩家群組

實時服務器提供管理玩家組的功能。根據預設,Amazon GameLift 會將連線到遊戲的所有玩家都放在「所有玩家」群組中。此外,開發人員可以為其遊戲設定其他群組,且玩家可以同時是多個群組的成員。群組成員可以傳送訊息,並與群組中的所有玩家分享遊戲資料。群組的一個可能用途是設定玩家團隊和管理團隊通訊。

帶TLS證書的實時服務器

使用實時服務器,服務器身份驗證和數據包加密內置到服務中。當您開啟TLS憑證產生時,會啟用這些安全性功能。當遊戲客戶端嘗試與實時服務器連接時,服務器會自動響應客戶端驗TLS證的證書。Amazon GameLift 處理使TLS用TCP(WebSockets)通信和UDP流量DTLS的加密。

自訂即時伺服器

實時服務器作為無狀態中繼服務器執行。實時服務器在連接到遊戲的遊戲客戶端之間轉發消息和遊戲數據包。但是,實時服務器不會評估消息,處理數據或執行任何遊戲邏輯。以這種方式使用,每個遊戲客戶端都會維護自己的遊戲狀態視圖,並通過轉送服務器向其他玩家提供更新。每個遊戲用戶端負責整合這些更新和調節自己的遊戲狀態。

您可以通過添加到實時腳本功能來自定義服務器。例如,使用遊戲邏輯,您可以使用伺服器授權的遊戲狀態檢視來建立可設定狀態的遊戲。

Amazon 為即時指令碼 GameLift 定義了一組伺服器端回呼。實作這些回呼,以將事件驅動的功能新增到您的伺服器。例如,您可以:

  • 當遊戲用戶端嘗試連接到伺服器時對玩家進行身分驗證。

  • 驗證玩家是否可以根據要求加入群組。

  • 確定何時從某個玩家或目標玩家發送消息,或進行其他響應處理。

  • 當玩家離開群組或與伺服器中斷連線時,請通知所有玩家。

  • 查看遊戲會話對象或消息對象的內容,並使用數據。

部署和更新實時服務器

實時服務器的一個主要優勢是能夠隨時更新腳本。當您更新腳本時,Amazon GameLift 會在幾分鐘內將新版本分發到所有託管資源。Amazon GameLift 部署新指令碼後,在該時間點之後建立的所有新遊戲工作階段都將使用新的指令碼版本。(現有的遊戲階段將繼續使用原始版本。)

開始將您的遊戲與即時伺服器整合: