在雲端部署並執行 Windows 伺服器
本指南說明如何將 Windows 伺服器組建部署至 PlayFab 多人遊戲伺服器 (MPS) 雲端。這非常適合在開發期間測試和快速反覆修改您的遊戲伺服器。許多使用者在使用 Windows 測試後,會使用 Linux 伺服器進行生產發行。目標
- 將專案部署至雲端。
- 從本機遊戲用戶端連線至該專案
需求
- 下載 Visual Studio。Community 版本是免費的。
- 必要的工作負載:.NET 桌面開發和使用 C++ 的桌面開發
- 下載 Unreal Engine 原始程式碼。如需指示,請參閱下載 Unreal Engine 原始程式碼 (外部)。
- 已安裝並設定 PlayFab Unreal GSDK 的已完成 Unreal 專案
- 從 Visual Studio 或 Development Editor 建置之專案的發行伺服器設定
- 從 Visual Studio 或 Development Editor 建置之專案的用戶端設定
- 已為您的遊戲啟用 MPS,並已設定計費
- [選用] 安裝 Windows 版 Docker
指示
封裝遊戲伺服器
- [選用] 可以執行本節來重新整理 Unreal 建置至專案中的檔案。如果您最近建立或刪除了檔案,這會很有用。
- 如果您最近沒有以 “development editor” 設定建置專案,請立即執行
- 關閉 Visual Studio
- 瀏覽至專案的
{ProjectName}.uproject檔案 - 在檔案編輯器中以滑鼠右鍵按一下
{ProjectName}.uproject檔案,然後選取 “Generate Visual Studio Project Files” - 在 Visual Studio 中重新開啟 {ProjectName}.sln 檔案
- 選取 Development Editor 設定
- 執行您的專案
- 觀察 Unreal Editor,它應該已載入您的專案
- 在 Unreal 編輯器功能表的左上角,選取 File -> Package -> Build Target -> {ProjectName}Server
- 選取 File -> Package -> Build Configuration -> Shipping
- 選取 File -> Package -> Windowsx64
- 選取並記住輸出位置 {ShippingServerFolder}
- 您現在可以使用此封裝版本的遊戲伺服器以 LocalMultiplayerAgent 進行測試
- 使用 LocalMultiplayerAgent 驗證後,請參閱建立組建指南
- 此時在 MPS 上測試需要 PlayFab MpsAllocatorSample 的中繼工具
- 此工具暫時略過一些用戶端工作,並讓我們能夠在沒有遊戲用戶端直接要求的情況下配置伺服器
- 在用戶端上執行此操作的正確方式是另一個主題,涵蓋於配置指南中。
- 將上方 {ShippingServerFolder} 中的發行伺服器組建壓縮成 zip
- 您的 zip 應包含 {ShippingServerFolder} 中的所有內容,可以選擇放在 zip 檔案的根目錄
- [選用] 也就是說,zip 的根目錄應包含 {ProjectName}Server.exe (建議 exe 不要位於 “WindowsServer” 之類的子資料夾中。如有需要,請重新建置 zip)
- 熟悉組建建立程序指南
- 特定設定的具體詳細資料如下所述:
在 PlayFab 上設定 Windows 專用伺服器
本節將涵蓋在 PlayFab MPS 中建立組建、上傳您的遊戲伺服器,以及第一次連線至該伺服器。您也可以依照核心 MPS 伺服器建立指南取得較不針對 Unreal 的指示。- 瀏覽至 Game Manager -> Multiplayer
- 選取 New Build
- 為組建命名
- 選取虛擬機器 (對於這些指南中所述的範例,核心數最少的建議選項就足夠了)
- 每部電腦的伺服器數大約可以是 1~10
- 改善/提高此數字取決於您遊戲伺服器的效能
- 您可以使用 VM 計量測量遊戲伺服器的效能,並進行最佳化以提高此數字
- 暫時略過 Server details (在下一個步驟中說明)
- 在 Assets 區塊中,將上一節的 zip 檔案拖曳至上傳方塊中
- 如果您是重新推出,可以選取 Use existing assets
- 等待上傳完成
- 暫時略過 Start Command (在下一個步驟中說明)
- 在 Network 區塊中,將 Port Name 欄位設定為
gameport- 必須定義將用來連線至遊戲伺服器的連接埠
- Unreal GSDK 包含自動讀取此連接埠的程式碼,並會根據此值在內部覆寫 Unreal Server 主機連接埠
- 此連接埠的名稱必須是
gameport
- 繼續前往符合您要設定之 “Server Details” 的下一個步驟
選項 1:Windows 處理序模式
此選項會直接在 VM 上以處理序的形式執行您的遊戲伺服器。您的處理序將共用整部電腦的存取權,包括連接埠、磁碟機等。此選項會解壓縮您上傳的資產,並以解壓縮檔案的位置作為工作目錄來執行 “Start Command”。- 在 Server Details 中,選取 Process 和 Windows
- 在 Assets 中,將啟動命令設定為:
{ProjectName}Server.exe,如果您想要產生記錄檔,則設定為{ProjectName}Server.exe -log- 啟動命令會從命令列執行,並使用解壓縮的資產檔案作為工作目錄
- 如果您選擇以子資料夾封裝 zip 檔案,可以指定相對路徑,例如:
WindowsServer/{ProjectName}Server.exe,以透過相對子路徑存取您的專案
- 選取 Add Build
- 跳至下方的 Configure Regions 一節
選項 2:Windows 容器模式
此選項會在 docker 容器中執行您的遊戲伺服器,使它們彼此隔離。每個伺服器處理序都將擁有個別的虛擬磁碟機、虛擬網路連接埠等。此選項會將您的資產解壓縮至您定義的掛接路徑,並預期您的啟動命令是根據掛接路徑的完整路徑。 先決條件需求:設定 Docker 以執行 Windows 容器- 在 Server Details 中,選取 Process 和 Windows
- 在 Assets 中
- 將 gameServer zip 檔案的 Mount Path 設定為
C:\assets(或類似的路徑,以 {MountPath} 表示) - 將啟動命令設定為:
{MountPath}\{ProjectName}Server.exe,如果您想要產生記錄檔,則設定為{MountPath}\{ProjectName}Server.exe -log - 啟動命令應代表容器中 -Server.exe 檔案的完整路徑
- 如果您選擇以子資料夾封裝 zip 檔案,可以指定絕對路徑,例如:
{MountPath}\WindowsServer\{ProjectName}Server.exe,以透過絕對子路徑存取您的專案
- 將 gameServer zip 檔案的 Mount Path 設定為
- 選取 Add Build
- 跳至下方的 Configure Regions 一節
