使用Amazon GameLift Servers受管 EC2 託管的開發藍圖 - Amazon GameLift Servers

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

使用Amazon GameLift Servers受管 EC2 託管的開發藍圖

此藍圖引導您如何為多玩家遊戲開發Amazon GameLift Servers受管 EC2 託管解決方案。 Amazon GameLift Servers提供多種遊戲託管選項;如需這些選項的詳細資訊,請參閱 Amazon GameLift Servers 解決方案

透過 Amazon GameLift Servers受管託管,您的遊戲伺服器會託管基於 AWS 雲端的虛擬運算資源,這些資源Amazon GameLift Servers擁有並根據您的組態運作。您可以取得 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的安全性、可靠性和全域可用性,這些執行個體已進一步最佳化,可與多玩家遊戲託管搭配使用。 透過自動伺服器部署、生命週期處理和容量自動擴展等工具,Amazon GameLift Servers簡化託管管理。

Amazon GameLift Servers 受管解決方案由下列元件組成:

  • 一或多個Amazon GameLift Servers受管機群,使用針對多玩家遊戲託管最佳化的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

  • 遊戲伺服器組建,與適用於 的伺服器 SDK 整合Amazon GameLift Servers,可跨所有機群部署。

  • 與 AWS SDK 整合的遊戲用戶端和後端服務,可與服務互動Amazon GameLift Servers並請求遊戲工作階段。

  • 將新遊戲工作階段與可用遊戲伺服器放在所有機群中的Amazon GameLift Servers佇列。

  • (選用) FlexMatch配對建構器,可建立多玩家配對並為其設定遊戲工作階段。

此藍圖提供簡化的路徑,讓您的多玩家遊戲透過Amazon GameLift Servers受管 EC2 託管成功啟動和執行。準備好必要的元件後,您可以繼續反覆執行遊戲開發,並自訂您的託管解決方案。隨著您更接近啟動,請參閱這些準備您的遊戲以使用 Amazon GameLift Servers 託管啟動,以協助您準備生產層級用量的託管解決方案。

開始使用 Unreal Engine 和 Unity 的Amazon GameLift Servers外掛程式

若要加快部署速度,請嘗試 Unreal Engine 和 Unity 的Amazon GameLift Servers外掛程式。它提供引導式 UI 工作流程,以最少的設定快速部署遊戲伺服器,因此您可以嘗試執行中的遊戲元件。然後,您可以在此基礎上建置 ,為您的遊戲建立自訂託管解決方案。如需詳細資訊,請參閱使用 Amazon GameLift Servers 外掛程式探索

將功能新增至您的遊戲伺服器,以便在部署服務進行託管時與Amazon GameLift Servers服務通訊。

  • 為您的遊戲專案取得適用於 Amazon GameLift Servers(5.x 版) 的伺服器 SDK。伺服器 SDK 提供 C++、C# 和 Go 版本。 下載Amazon GameLift Servers伺服器 SDK

  • 修改遊戲伺服器程式碼以新增伺服器 SDK 功能。如需準則,請參閱將遊戲與自訂遊戲伺服器整合。至少,請執行下列動作:

    • 新增程式碼以初始化 Amazon GameLift Servers SDK,並建立與 Amazon GameLift Servers服務的 WebSocket 連線。使用伺服器 SDK 動作 InitSdk()

    • 新增程式碼,以在伺服器程序準備好託管遊戲工作階段時向Amazon GameLift Servers服務報告。使用伺服器 SDK 動作 ProcessReady()

    • 實作必要的回呼函數 OnProcessTerminate()、 和 OnStartGameSession()。透過這些函數,遊戲伺服器程序可以維持與服務的連線Amazon GameLift Servers、在 提示時啟動遊戲工作階段Amazon GameLift Servers,以及回應結束遊戲伺服器程序的提示。

    • 新增程式碼,以在伺服器程序結束遊戲工作階段時向Amazon GameLift Servers服務報告。使用伺服器 SDK 動作 ProcessEnding()

  • 封裝遊戲伺服器組建。使用建置檔案、相依性和支援的軟體建立安裝指令碼。請參閱 封裝遊戲建置檔案。建議使用 Amazon Simple Storage Service (Amazon S3) 儲存貯體來存放遊戲組建的版本。

  • 測試您的遊戲伺服器整合。針對此任務,我們建議為本機工作站設定 Amazon GameLift ServersAnywhere 機群,如中所述使用 Amazon GameLift ServersAnywhere 設定本機測試。在此步驟中,請在測試裝置上手動安裝遊戲伺服器組建,並啟動伺服器程序。使用 AWS CLI 請求新的遊戲工作階段,並確認Amazon GameLift Servers服務是否成功提示您的伺服器程序啟動遊戲工作階段。

為您的遊戲用戶端建立請求加入遊戲工作階段、取得連線資訊,然後直接連線至託管遊戲工作階段的方法。最常見的方法是設定後端服務功能,做為遊戲用戶端和 Amazon GameLift Servers 服務之間的中間人。此方法可保護您的託管資源,並讓您更能控制玩家如何進入遊戲工作階段。

  • 建置後端服務功能以進行託管。後端服務會與服務通訊,Amazon GameLift Servers並將連線資訊交付至遊戲用戶端。此功能包括開始遊戲工作階段、將玩家放入遊戲中,以及擷取遊戲工作階段資訊。如需準則,請參閱將遊戲與自訂遊戲伺服器整合。至少,請執行下列動作:

  • 將功能新增至遊戲用戶端,讓玩家加入託管遊戲工作階段。遊戲用戶端向後端服務提出請求,而不是直接向 提出Amazon GameLift Servers請求。在後端服務提供遊戲工作階段連線資訊後,遊戲用戶端會直接與遊戲工作階段連線,以玩遊戲。

  • 測試您的遊戲用戶端整合。您可以搭配本機工作站使用相同的 Amazon GameLift ServersAnywhere 機群進行測試。

    為了快速反覆開發或與多人團隊合作,我們建議您設定雲端型測試環境。此 Amazon GameLift Servers Toolkit 解決方案模擬Amazon GameLift Servers受管機群的行為,但可讓您以最短的周轉時間更新遊戲伺服器組建。

自訂您希望Amazon GameLift Servers如何處理新遊戲工作階段的請求,並尋找可用的遊戲伺服器來託管它們。 Amazon GameLift Servers會自動追蹤所有機群上所有遊戲伺服器的可用性。當遊戲用戶端傳送加入遊戲工作階段的請求時, 會根據一組定義的優先順序來Amazon GameLift Servers尋找「可能的最佳」配置,例如最低延遲、成本和可用性。

  • 建立遊戲工作階段佇列,以使用可用的遊戲伺服器放置新的遊戲工作階段。佇列是遊戲工作階段放置的主要機制。如需準則,請參閱建立遊戲工作階段佇列

    • 至少,將 Anywhere 機群新增為佇列中的目的地。所有其他設定都是選用的自訂。

  • 在您的後端服務程式碼中,將CreateGameSession()呼叫轉換為 StartGameSessionPlacement()請參閱在多位置佇列中建立遊戲工作階段

  • 建立機制,在遊戲工作階段準備好加入時通知遊戲用戶端。在開發過程中,您可以使用呼叫 DescribeGameSessionPlacement 來輪詢遊戲工作階段狀態。不過,在使用佇列處理大量之前,您需要啟用事件通知。請參閱 設定遊戲工作階段置放的事件通知

  • (選用) 新增FlexMatch配對元件。如需指引,請參閱 Amazon GameLift ServersFlexMatch 開發人員指南

到目前為止,您已使用自我管理的 Anywhere 機群來測試和迭代遊戲元件,並且已微調遊戲工作階段放置。 解決方案的最後一個部分是設定生產系統所需的託管資源類型。若要開始規劃和設定生產,您想要轉換為使用 Amazon GameLift Servers受管機群。

  • 封裝遊戲伺服器建置並上傳至 Amazon GameLift Servers。使用建置檔案、相依性和支援的軟體建立安裝指令碼。請參閱 部署用於Amazon GameLift Servers託管的自訂伺服器建置。您可以使用 主控台或 Amazon GameLift Servers CLI 將組建上傳至 AWS 。

    在上傳建置之前,請先決定 AWS 區域 您要建立機群的內容。您必須將組建上傳到相同的區域。如需選擇機群位置的詳細資訊,請參閱機群位置

  • 建立受管 EC2 機群。當您建立機群時, 會Amazon GameLift Servers立即開始部署遊戲伺服器組建以進行託管。您可以設定受管機群的許多層面。如需準則,請參閱建立Amazon GameLift Servers受管 EC2 機群。至少,請執行下列動作:

    • 為機群命名並指定要部署的上傳遊戲組建。

    • 選擇機群的隨需執行個體,然後選取機群位置中可用的執行個體類型。Spot 機群是寶貴的選項,但需要額外的設計和組態。

    • 建立機群的執行時間組態。至少,指定遊戲伺服器可執行檔的啟動路徑。

    • 指定連接埠設定,以允許傳入流量存取您的遊戲伺服器。

  • 將受管機群新增至佇列。在您的遊戲工作階段佇列中,使用新增受管機群取代 Anywhere 機群。

  • 使用受管機群測試遊戲託管。此時,您應該能夠測試整個託管週期,讓遊戲用戶端請求遊戲工作階段、取得連線資訊,以及成功連線至遊戲工作階段。

準備啟動遊戲時,您需要微調受管託管資源。要考慮的一些決策包括: