> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GSDK 專案雲端部署

> 將 Unreal Engine GSDK Windows 伺服器組建部署至 PlayFab 多人遊戲伺服器 (MPS) 雲端以進行反覆測試，之後再切換至 Linux 用於生產環境。

# 在雲端部署並執行 Windows 伺服器

本指南說明如何將 Windows 伺服器組建部署至 PlayFab 多人遊戲伺服器 (MPS) 雲端。這非常適合在開發期間測試和快速反覆修改您的遊戲伺服器。許多使用者在使用 Windows 測試後，會使用 [Linux 伺服器](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab)進行生產發行。

## 目標

* 將專案部署至雲端。
* 從本機遊戲用戶端連線至該專案

## 需求

* 下載 Visual Studio。[Community 版本](https://visualstudio.microsoft.com/vs/community/)是免費的。
  * 必要的工作負載：.NET 桌面開發和使用 C++ 的桌面開發
* 下載 Unreal Engine 原始程式碼。如需指示，請參閱[下載 Unreal Engine 原始程式碼 (外部)](https://docs.unrealengine.com/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/)。
* 已安裝並設定 [PlayFab Unreal GSDK](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-gsdk-project-setup) 的[已完成 Unreal 專案](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-setup)
* 從 Visual Studio 或 Development Editor 建置之專案的[發行伺服器](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project)設定
* 從 Visual Studio 或 Development Editor 建置之專案的[用戶端](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project)設定
* 已[為您的遊戲啟用](/zh-TW/services/playfab/multiplayer/servers/enable-playfab-multiplayer-servers) MPS，並已設定計費
* \[選用] 安裝 [Windows 版 Docker](https://docs.docker.com/desktop/windows/install/)

## 指示

### 封裝遊戲伺服器

* \[選用] 可以執行本節來重新整理 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 進行測試](/zh-TW/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab)
* 使用 LocalMultiplayerAgent 驗證後，請參閱[建立組建指南](/zh-TW/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds)
  * 此時在 MPS 上測試需要 [PlayFab MpsAllocatorSample](https://github.com/PlayFab/MpsSamples/tree/main/MpsAllocatorSample) 的中繼工具
  * 此工具暫時略過一些用戶端工作，並讓我們能夠在沒有遊戲用戶端直接要求的情況下配置伺服器
  * 在用戶端上執行此操作的正確方式是另一個主題，涵蓋於[配置指南](/zh-TW/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools)中。
* 將上方 \{ShippingServerFolder} 中的發行伺服器組建壓縮成 zip
  * 您的 zip 應包含 \{ShippingServerFolder} 中的所有內容，可以選擇放在 zip 檔案的根目錄
  * \[選用] 也就是說，zip 的根目錄應包含 \{ProjectName}Server.exe (建議 exe 不要位於 "WindowsServer" 之類的子資料夾中。如有需要，請重新建置 zip)
* 熟悉[組建建立程序指南](/zh-TW/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds)
* 特定設定的具體詳細資料如下所述：

### 在 PlayFab 上設定 Windows 專用伺服器

本節將涵蓋在 PlayFab MPS 中建立組建、上傳您的遊戲伺服器，以及第一次連線至該伺服器。您也可以依照核心 MPS [伺服器建立指南](/zh-TW/services/playfab/multiplayer/servers/create-your-first-server)取得較不針對 Unreal 的指示。

* 瀏覽至 Game Manager -> Multiplayer
* 選取 **New Build**
* 為組建命名
* 選取虛擬機器 (對於這些指南中所述的範例，核心數最少的建議選項就足夠了)
* 每部電腦的伺服器數大約可以是 1\~10
  * 改善/提高此數字取決於您遊戲伺服器的效能
  * 您可以使用 [VM 計量](/zh-TW/services/playfab/multiplayer/servers/vm-metrics)測量遊戲伺服器的效能，並進行最佳化以提高此數字
* 暫時略過 **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`，以透過絕對子路徑存取您的專案
* 選取 **Add Build**
* 跳至下方的 **Configure Regions** 一節

## 後續步驟

許多使用者會想要透過[連線遊戲用戶端](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build)來測試他們的伺服器。

其他使用者可以選擇繼續使用 [Linux 容器](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab)重新建置和重新部署伺服器。Linux 可降低大規模部署的伺服器裝載成本。

否則，您可以返回主要的 [Unreal GSDK 外掛程式](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk)指南。


## Related topics

- [GSDK 專案測試和偵錯](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-local-deployment-and-debugging.md)
- [將 Linux Unreal 伺服器部署至 MPS 雲端](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab.md)
- [連線至雲端裝載的 Unreal 伺服器](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build.md)
- [在 Visual Studio 中偵錯遠端 Windows 裝置上的 PC 專案](/zh-TW/tools/tools-pc/visualstudio/gr-vs-debugging-with-visualstudio-remote-windows.md)
- [建置您的 Unreal 範例專案](/zh-TW/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project.md)
