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