本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Unity 插件:使用 Amazon 設置本地測試 GameLift Anywhere
在此工作流程中,您可以新增 Amazon GameLift 功能的用戶端和伺服器遊戲程式碼,並使用外掛程式將本機工作站指定為測試遊戲伺服器主機。當您完成整合任務後,請使用外掛程式來建置您的遊戲用戶端和伺服器元件。
要啟動 Amazon GameLift 任何地方工作流程:
在 Unity 編輯器主菜單中,選擇 Amazon, GameLift然後選擇主機與任何地方。此操作將打開插件頁面,用於設置您的遊戲 @ Anywhere 艦隊。此頁面顯示整合、建置和啟動遊戲元件的五個步驟程序。
設定您的設定檔
選擇您要在遵循此工作流程時使用的設定檔。您選取的設定檔會影響工作流程中的所有步驟。您建立的所有資源都與設定檔的 AWS 帳戶相關聯,並放置在設定檔的預設 AWS 區域中。設定檔使用者的權限決定您對 AWS 資源和動作的存取權限。
-
從可用設定檔的下拉式清單中選取設定檔。如果您還沒有個人資料或想創建一個新的個人資料,請轉到 Amazon GameLift 菜單並選擇設置 AWS 帳戶個人資料。
-
如果啟動程序狀態不是「活動」,請選擇 Bootstrap 配置文件並等待狀態更改為「活動」。
將您的遊戲與 Amazon 整合 GameLift
注意
如果您導入了示例遊戲,則可以跳過此步驟。範例遊戲資產已經有必要的伺服器和用戶端程式碼。
對於工作流程中的這個步驟,您可以更新遊戲專案中的用戶端和伺服器程式碼。
* 遊戲伺服器必須能夠與 Amazon GameLift 服務通訊,才能接收啟動遊戲工作階段、提供遊戲工作階段連線資訊和報告狀態的提示。
遊戲用戶端必須能夠取得有關遊戲工作階段的資訊、加入或開始遊戲工作階段,以及取得連線資訊才能加入遊戲。
整合伺服器程式碼
如果您將自己的遊戲專案與自訂場景搭配使用,請使用提供的範例程式碼將所需的伺服器程式碼新增至您的遊戲專案:
-
在您的遊戲專案檔案中,開啟資
Assets/Scripts/Server
料夾。如果它不存在,請創建它。 -
轉到 GitHub 回購 aws/ amazon-gamelift-plugin-unity
並打開路徑 Samples~/SampleGame/Assets/Scripts/Server
。 找到 GameLiftServer .c. 檔案並將其複製到遊戲專案的伺服器資料夾中。當您建置伺服器可執行檔時,請使用此檔案做為建置目標。
範例程式碼包含下列使用 Amazon GameLift C# 伺服器 SDK (版本 5) 的最低必要元素:
初始化 Amazon GameLift API 用戶端。Amazon 無 GameLift 處不在叢集需要具有伺服器參數的
InitSDK()
呼叫。這些設定會自動設定為在外掛程式中使用。實作必要的回呼函數,以回應 Amazon GameLift 服務的請求
OnStartGameSession
,包括OnProcessTerminate
、和onHealthCheck
。在伺 GameLift 服器處理序準備好主持遊戲工作階段時,
ProcessReady()
使用指定的連接埠呼叫以通知 Amazon 服務。
如果您想要自訂範例伺服器程式碼,請參閱下列資源:
整合用戶端程式碼
如果您將自己的遊戲專案與自訂場景搭配使用,則需要將基本功能整合到遊戲用戶端中。您還需要添加 UI 元素,以便玩家可以登錄並加入遊戲會話。使用 Amazon GameLift 服務 API (在 AWS SDK 中) 取得遊戲工作階段資訊、建立新的遊戲工作階段或加入現有的遊戲工作階段。
建立使用 Anywhere 叢集進行本機測試的用戶端時,您可以新增直接呼叫至 Amazon GameLift 服務。當您開發用於雲端託管的遊戲時,或者如果您打算使用 Anywhere 叢集進行生產託管,則需要建立用戶端後端服務來處理遊戲用戶端與 Amazon 服務之間的所有通訊。 GameLift
若要 GameLift 將 Amazon 整合到您的用戶端程式碼中,請使用下列資源做為指南。
-
將客戶端與 GitHub回購 aws/ amazon-gamelift-plugin-unity 中的 GameLiftCoreApi 類集成。此類別提供玩家驗證和擷取遊戲工作階段資訊的控制項。
-
檢視遊戲整合範例,可在 GitHub 軟體庫 aws/ amazon-gamelift-plugin-unity、
Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs
. -
請按照將 Amazon 添加 GameLift 到您的 Unity 遊戲客戶端中的說明
對於連接到 Anywhere 機隊的遊戲客戶端,您的遊戲客戶端需要以下信息。該插件會自動更新您的遊戲項目以使用您在插件中創建的資源。
FleetId -您的任何地方機隊的唯一標識符。
FleetLocation -您的任何地方機隊的自定義位置。
AwsRegion -您的任何 AWS 地方機隊託管的地區。這是您在使用者設定檔中設定的區域。
ProfileName -本機電腦上允許存取 AWS SDK 的 AWS 認證設定檔 GameLift。遊戲用戶端會使用這些登入資料來驗證對 Amazon GameLift 服務的請求。
注意
憑證設定檔由外掛程式產生並儲存在本機電腦上。因此,您必須在本機電腦 (或具有相同設定檔的電腦上) 執行用戶端。
Connect 到任何地方的機隊
在此步驟中,您可以指定要使用的任何地方叢集。Anywhere 叢集定義了一系列運算資源,這些資源可以位於任何地方,以供遊戲伺服器託管使用。
如果您目前使用的 AWS 帳戶具有現有的 Anywhere 叢集,請開啟 [叢集名稱] 下拉式欄位並選擇叢集。此下拉式清單只會顯示目前作用中使用者設定檔的 [ AWS 區域] 中的 [任何地方] 叢集。
如果沒有現有的車隊,或者您想要建立新的叢集,請選擇 [建立新的任何地方] 叢集並提供叢集名稱。
在您為專案選擇任何地方叢集之後,Amazon 會 GameLift 驗證叢集狀態為使用中廣告顯示叢集 ID。您可以在 Unity 編輯器的輸出日誌中跟踪此請求的進度。
註冊運算
在此步驟中,您將本機工作站註冊為新的 Anywhere 叢集中的計算資源。
輸入本機電腦的運算名稱。如果您在叢集中新增多個計算,名稱必須是唯一的。
選擇 [註冊運算]。您可以在虛幻編輯器的輸出日誌中追蹤此請求的進度。
該插件將 IP 地址設置為本地主機(127.0.0.1)註冊您的本地工作站。此設定假設您將在同一台機器上執行遊戲用戶端和伺服器。
為了回應此動作,Amazon GameLift 會驗證其是否可以連線到運算,並傳回有關新註冊運算的資訊。
啟動遊戲
在此步驟中,您將構建遊戲組件並啟動它們以進行遊戲。完成下列任務:
-
設定您的遊戲用戶端。在此步驟中,您會提示外掛程式更新遊戲專案的
GameLiftClientSettings
資產。該插件使用此資產來存儲您的遊戲客戶端需要連接到 Amazon GameLift 服務的某些信息。-
如果您沒有匯入並初始化範例遊戲,請建立新
GameLiftClientSettings
資產。在 Unity 編輯器主功能表中,選擇 [資產]、[建立] GameLift、[用戶端設定]。如果您 GameLiftClientSettings 在專案中建立了多個副本,外掛程式會自動偵測到這一點,並通知您外掛程式將更新哪個資產。 -
在 [啟動遊戲] 中,選擇 [設定用戶端:隨處套用設定] 此動作會更新您的遊戲用戶端設定,以使用您剛剛設定的 Anywhere 叢集。
-
建置並執行您的遊戲用戶端。
使用標準 Unity 構建過程構建客戶端可執行文件。在 [檔案] 的 [建置設定] 中,將平台切換至視窗、Mac、Linux。如果您導入了示例遊戲並初始化了設置,則構建列表和構建目標將自動更新。
啟動新建立的遊戲用戶端可執行檔的一或多個執行個體。
在您的任何地方機隊中啟動遊戲伺服器。選擇伺服器:在編輯器中啟動伺服器。此工作會啟動即時伺服器,只要 Unity 編輯器保持開啟狀態,您的用戶端就可以連線到該伺服器。
開始或加入遊戲工作階段。在您的遊戲用戶端執行個體中,使用 UI 將每個用戶端加入遊戲工作階段。如何執行此操作取決於您如何向用戶端新增功能。
如果您使用的是範例遊戲用戶端,它具有下列特性:
玩家登入元件。連線至 Anywhere 叢集上的遊戲伺服器時,沒有玩家驗證。您可以輸入任何值以加入遊戲階段。
一個簡單的加入遊戲界面。當用戶端嘗試加入遊戲時,用戶端會自動尋找具有可用玩家位置的作用中遊戲工作階段。如果沒有可用的遊戲工作階段,用戶端會要求新的遊戲工作階段。如果有可用的遊戲工作階段,用戶端會要求加入可用的遊戲工作階段。使用多個並行用戶端測試您的遊戲時,第一個用戶端會啟動遊戲工作階段,其餘的用戶端會自動加入現有的遊戲工作階段。
具有四個玩家插槽的遊戲會話。您最多可以同時啟動四個遊戲用戶端執行個體,它們將加入相同的遊戲工作階段。
從伺服器執行檔啟動 (選用)
您可以建置並啟動遊戲伺服器可執行檔,以便在 Anywhere 叢集上進行測試。
使用標準 Unity 構建過程構建服務器可執行文件。在 [檔案] 的 [建置設定] 中,將平台切換至專用伺服器並建置。
-
透過get-compute-auth-token使用您的 Anywhere 叢集 ID 和 AWS 區域呼叫 AWS CLI 命令,以取得短期驗證權杖。當您建立叢集時,叢集 ID 會顯示在「Connect 至任何地方」叢集中。當您選取作用中的設定檔時,「設定您的設定檔」中會顯示「 AWS 地區」。
aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
-
從命令行啟動新構建的遊戲服務器可執行文件,並傳入有效的身份驗證令牌。
my_project.exe --authToken [token]