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

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

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

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

如需啟動並執行遊戲的完整藍圖,請參閱亞馬遜GameLift託管路線圖

提示

若要試用 Amazon GameLift 遊戲伺服器託管,請參閱開始使用亞馬遜 GameLift

什麼是實時服務器?

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

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

  • 核心遊戲伺服器功能

  • 自訂伺服器邏輯

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

  • FlexMatch配對

  • 靈活控制託管資源

透過建立叢集並提供設定指令碼來設定即時伺服器。有關創建實時服務器以及如何準備遊戲客戶端的更多信息,請參閱準備您的實時服務器

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

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

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

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

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

通訊協定

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

訊息內容

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

玩家群組

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

具有 TLS 證書的實時服務器

使用實時服務器,服務器身份驗證和數據包加密內置到服務中。當您開啟 TLS 憑證產生時,會啟用這些安全性功能。當遊戲用戶端嘗試與即時伺服器連線時,伺服器會自動回應用戶端驗證的 TLS 憑證。亞馬遜使用 TLS 進行 TCP (WebSockets) 通訊,並針對 UDP 流量使用 DTLS 來GameLift處理加密。

自訂即時伺服器

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

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

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

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

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

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

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

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

部署和更新實時服務器

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

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