Skip to main content

在 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,打包选项在 file 标签下。
    • 确认您的 Server & Shipping 配置,选择 Linux 进行构建,然后选择输出目录。

创建 Linux 服务器的 Docker 镜像

在本节中,我们将设置一个包含您的 Linux 服务器的 Docker 镜像
  • 现在您已经创建了 Linux 服务器,请导航到该目录(Windows 资源管理器或您选择的终端)
  • 创建一个名为:Dockerfile 的新文件
  • 使用您选择的编辑器编辑该文件(notepad、vim、emacs 等)
  • 复制并粘贴下方显示的内容。请务必将 [YourProjectNameServer].sh 替换为您自己的 linux 服务器可执行文件的名称(位于同一目录中)
注意:chown 命令使 $PF_SERVER_LOG_DIRECTORY 可被您的服务器进程访问,然后 && 链接命令以执行您的服务器
  • 使用您选择的终端,导航到 Linux 服务器目录
    • Windows 用户通常使用 cmd 或 powershell,不过也可以通过第三方工具或 WSL 使用 bash
    • Mac 和 Linux 用户通常使用 bash
  • 运行:docker build -t "[imageName]:[tag]" .,其中 imageName 和 tag 是您选择的选项。
    • 记住这些名称,您稍后将再次使用它们
    • 例如:分别为 YourProjectNameServer01
    • 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 服务器主机端口
    • 此端口的名称必须是 gameport
  • 选择 Add Build,然后等待您的构建状态变为 Deployed

后续步骤

许多用户可能希望通过连接游戏客户端来测试他们的服务器。 否则,您可以返回到主要的 Unreal GSDK 插件指南。
最后修改于 2026年8月25日