在 PlayFab 上設定 Linux 專用伺服器
本指南的目的是說明建置和驗證 Linux 專用伺服器所需的所有步驟。下列步驟專門適用於 Unreal Engine 5 (搶先體驗版和正式發行版)。相同的一組步驟已經過測試,也適用於 UE 4.26 和 UE 4.27,只是在 Unreal Engine UI 上封裝選項的位置有些微差異,UE 4.27 和 UE5 搶先體驗版的位置不同。 您可以在此處找到更多 Linux 部署資訊需求
指示
- 從 Unreal Linux 先決條件中,下載適用於您所安裝之 Unreal Engine 的工具鏈,並執行可執行檔。請注意,如同這些指南的許多部分,只有當您的 Unreal Engine 是從原始程式碼建置時,這些步驟才能運作。
- 安裝完成後,請檢查您的 Windows 環境變數,並確認下列系統變數存在:LINUX_MULTIARCH_ROOT。
- 在您的 Unreal Engine 原始程式碼目錄中:
- 重新執行:
Setup.bat - 重新執行:
GenerateProjectFiles.bat
- 重新執行:
- 返回您自己的專案:
- 以滑鼠右鍵按一下您的
{ProjectName}.uproject檔案,然後選取 Generate Visual Studio project files - 在 Visual Studio 中開啟 {ProjectName}.sln 檔案
- 將設定設定為 Development Editor
- 建置並執行 Unreal Editor
- 以滑鼠右鍵按一下您的
- 此時,您應該能夠將專案封裝為 Linux 伺服器,並放在您選擇的目錄中。
- 對於 Unreal Engine 5,在編輯器中,選取畫面右上方的封裝,現在應該可以選取 Linux 選項。對於 UE 4.26 和 UE 4.27,封裝選項位於檔案索引標籤下。
- 確認您的 Server 和 Shipping 設定,選取 Linux 進行建置,然後選取輸出目錄。
建立 Linux 伺服器的 Docker 映像
在本節中,我們將設定包含您 Linux 伺服器的 Docker 映像- 您已建立 Linux 伺服器,請瀏覽至該目錄 (使用 Windows 檔案總管或您選擇的終端機)
- 建立名為
Dockerfile的新檔案 - 使用您選擇的編輯器 (記事本、vim、emacs 等) 編輯檔案
- 複製並貼上下方提供的內容。請務必將 [YourProjectNameServer].sh 取代為您自己的 Linux 伺服器可執行檔名稱 (位於相同目錄中)
- 使用您選擇的終端機,瀏覽至 Linux 伺服器目錄
- Windows 使用者通常使用 cmd 或 powershell,但也可以透過第三方工具或 WSL 使用 bash
- Mac 和 Linux 使用者通常使用 bash
- 執行:
docker build -t "[imageName]:[tag]" .,其中 imageName 和 tag 是您選擇的選項。- 請記住這些名稱,您會再次使用它們
- 範例可以分別是:YourProjectNameServer 和 01
- tag 元素通常用於為您的伺服器執行個體設定版本
- 這些標記將在後續步驟中使用
- 如果您忘記了,可以在終端機上輸入 docker images 來擷取 imageName 和 tag
- 在終端機上輸入 docker images,檢查 docker 映像是否已成功建立。
- 保持此終端機視窗開啟並放在一旁,因為稍後我們還有更多命令要執行
- (在後續步驟中表示為 [Docker terminal])
將容器映像上傳至 PlayFab Azure 登錄
此時,您已準備好將 docker 映像推送至 PlayFab Azure Container Registry,以便用來在 PlayFab 上啟動您的組建。- 瀏覽至 PlayFab 開發人員入口網站
- 選取您的遊戲
- 選取左側的 Multiplayer 索引標籤
- 選取畫面右側的 New Build。
- 選擇名稱
- 選取 VM 類型,對於 ThirdPersonMP 專案,Dasv4 (2 cores) 就足夠了
- 在 Server Details 下,將 Server Type 設定為 Container,並將 Operating System 設定為 Linux。
- 選取 Upload to container registry。
- 在跳出的視窗中:
- 記住此視窗中的 [AzureUsername],後續步驟中會多次使用
- 選取 Copy Docker Login Command
- 返回 {Docker terminal} 視窗
- 將 Docker Login 命令貼到 [Docker terminal] 中。此命令會將您登入 PlayFab 所使用的 Azure 登錄。
- 輸入:
docker tag [imageName]:[tag] [AzureUsername].azurecr.io/[imageName]:[tag] - 輸入:
docker push [AzureUsername].azurecr.io/[imageName]:[tag] - 請記得,AzureUsername 會顯示在 PlayFab 開發人員入口網站上,而 imageName 和 tag 是您先前選擇的。
- 回到 PlayFab 網站,在 New Build 頁面的 Server Details 下,選取 Container image 旁的 Refresh。
- 按一下箭號按鈕,您應該就能看到並選取您上傳的 docker 映像及其對應的標記。
- 在 Regions 區塊中,選取離您較近的區域,並將 Standby 和 Max 都設定為 1 (僅供測試)
- 在 Network 區塊中,將 Port Name 欄位設定為
gameport- 必須定義將用來連線至遊戲伺服器的連接埠
- Unreal GSDK 包含自動讀取此連接埠的程式碼,並會根據此值在內部覆寫 Unreal Server 主機連接埠
- 此連接埠的名稱必須是
gameport
- 選取 Add Build,並等待您的組建狀態變為 Deployed
