
如何使用 Edgegap 插件将专用服务器添加到 PurrNet 网络代码
本教程介绍如何直接从 Unity 编辑器中部署和托管适用于您的 PurrNet 项目的专用游戏服务器,使用 PurrNet 内置的 Edgegap 游戏服务器集成——这样您就可以在几分钟内让您的游戏在世界各地在线并可供游玩。
我们使用 PurrNet 的 Incremental Sample(一个小型资源收集游戏),该游戏已配置为作为专用服务器运行。任何设置为专用服务器的 PurrNet 项目其工作方式都相同。
我们还建议遵循我们的文档。
让我们开始吧。
第 1 部分 - 设置
在集成 Edgegap 之前,需要满足几个要求,以确保 Unity 能够构建并将专用服务器容器化。
首先,安装 Docker Desktop,我们将使用它来容器化游戏服务器。Docker 被数百万开发者以及全球最大的公司所使用。每当您上传新的服务器构建时,请保持 Docker 处于运行状态。
其次,确保 Git 可用。在较旧版本的 Unity 上,您需要在系统上安装 Git,因为 PurrNet 是通过 Git URL 获取 Edgegap 插件的;Unity 6.3 及更高版本已内置此功能。
在本教程中,我们使用 Unity 6.3 LTS,并已通过 Unity Hub 安装了 Linux Dedicated Server Build Support 模块。
第 2 部分 - Edgegap:游戏服务器托管与编排
加载您的项目。PurrNet 通过其自有的包窗口来管理 Edgegap 的集成,因此无需从浏览器下载任何内容。前往顶部工具栏,选择 “Tools”(工具),然后选择 “PurrNet”,并打开 “PurrNet Packages”(PurrNet 包)窗口。
在添加 Edgegap 之前,请确保 PurrNet 本身已更新到最新版本。如果窗口顶部在 “Core”(核心)旁边显示有可用更新,请选择 “Update All”(全部更新)并等待其完成。
然后,在 “Integrations”(集成)部分下,选择 “Edgegap”,并选择 “Install Release”(安装发布版)。PurrNet 会自动将 Edgegap 的 Unity 插件安装到您的项目中。
提示:如果安装已完成但进度窗口未自动关闭,请触发 PurrNet 包刷新(例如切换包版本),这会将其清除。
PurrNet 还会向您的传输(transport)添加一个自动配置设置。选择您的 “Network Manager”(网络管理器):注意 “Start Server Flags”(启动服务器标志),我们将在测试前回到该设置。在 “UDP Transport” 组件上,您会找到一个名为 “Auto Setup Edgegap Server Port”(自动设置 Edgegap 服务器端口)的设置。保持其启用状态。它会检测您的构建何时在 Edgegap 环境中运行,并代表您自动设置正确的服务器端口。客户端仍需配置其自身的连接,但服务器端已为您处理完毕。
现在,构建游戏服务器。选择 “Tools”(工具)并打开 “Edgegap Server Hosting”(Edgegap 服务器托管)。
第一步是获取 Edgegap 令牌。选择 “Get a Token”(获取令牌);这会打开一个浏览器窗口。登录或使用您首选的单点登录(SSO)提供商创建帐户,然后根据提示输入组织名称。进入控制面板(我们邀请您进行探索)后,从弹出的窗口中复制令牌。返回 Unity,将其粘贴到令牌字段中,然后选择 “Validate Token”(验证令牌)。验证通过后,“Build your Game Server”(构建您的游戏服务器)标签页便会打开。
确认您的 Linux 依赖项已安装。如果未安装,请返回 Unity Hub,在 “Installs”(安装)下为您的 Unity 版本选择 “Manage”(管理),并安装所有三个模块:适用于 IL2CPP 和 Mono 的 “Linux Build Support”(Linux 构建支持)模块,以及 “Linux Dedicated Server Build Support”(Linux 专用服务器构建支持)模块。
选择 “Build Server”(构建服务器)来编译您的 Linux 专用服务器。稍等片刻后,构建便会完成。
接下来,使用 Docker 对构建进行容器化。虽然您可以在本地运行容器以在您自己的机器上测试服务器,但我们将直接进行在线测试并跳过该步骤。
倒数第二步是将您的应用版本上传到 Edgegap 平台。您可以更改应用的名称、服务器名称和标签;这里我们保持默认设置。选择 “Upload image and Create app version”(上传镜像并创建应用版本)。上传完成后,浏览器中将打开该平台并显示您的新版本。您可以编辑您的资源分配,但目前我们保留默认值。向下滚动并选择 “Submit”(提交)。
“Create a Port”(创建端口)窗口将会打开。您可以设置自定义端口(5000 是 PurrNet 的默认端口),但我们保留默认的 7777,以测试前面提到的 “Auto Setup Edgegap Server Port”(自动设置 Edgegap 服务器端口)设置。设置您游戏使用的协议(此处为 UDP),为其命名(例如 “gameport”),然后选择 “Submit”(提交)。端口号和协议可能会因其他网络代码而异,因此请查看您的网络代码文档以获取适用于您项目的数值。
最后,返回 Unity,直接通过插件将游戏服务器部署到 Edgegap 的托管服务。选择正确的应用和版本,然后选择 “Deploy to Cloud”(部署到云端)。加载几秒钟后,您的游戏服务器就准备就绪了 —— 您已成功部署了您的首个游戏服务器。
第 3 部分 - 测试
从游戏服务器的详情页面向下滚动,并复制“Host”,即您的连接地址。
回到 Unity 中,选择 Network Manager。该示例没有用于托管或加入的场景内菜单;它会根据 Network Manager 的启动标志自动做出决定,并且在编辑器中,它通常会作为主机启动。要作为客户端加入云服务器,请在“Start Server Flags”下取消勾选“Editor”,这样编辑器就不会再启动自己的服务器。
然后,在传输(transport)上,找到“Address”字段并粘贴您的游戏服务器地址。对于端口,返回部署详情页面,复制“External”端口,并将其输入到 PurrNet 的“Server Port”字段中。
启动您的场景。编辑器将连接到运行在 Edgegap 上的专用游戏服务器。
多人游戏通常有不止一个玩家,我们接下来进行模拟。ParrelSync 是一种选择,但我们使用 Unity 的 Play Mode。选择“Window”,然后选择“Multiplayer”,打开 Unity 的“Multiplayer Center”。在 6.3 版本中,Unity 会询问您的游戏类型和玩家人数——请填写适合您项目的准确信息。Unity 将在此处提供其自己的多人游戏解决方案;由于我们使用 PurrNet,请删除除“Multiplayer Play Mode”之外的所有选项,该选项可在本地模拟玩家。
安装完成后,选择“Window”,然后选择“Multiplayer”,打开“Multiplayer Play Mode”。启用第二个玩家,Unity 将打开一个新的编辑器窗口。排列好窗口并启动游戏场景。两个玩家都会作为客户端加入您的 Edgegap 游戏服务器,并且每个玩家的移动都会复制到另一个玩家的世界中。
您现在有两个玩家在进行在线游戏了。
第 4 部分 - 后续步骤
以上就是 PurrNet 的 Edgegap 集成的全部内容,它使游戏开发者能够构建专用服务器并在全球范围内自动托管它们。
您游戏开发的下一步可能是自动启动和停止服务器,并将玩家连接到比赛中。欲了解更多关于 Edgegap 免费、简单且完全自动化的匹配系统的系统,请参阅我们的匹配系统教程。
您也可以加入我们的社区 Discord,向我们的开发团队和其他工作室寻求集成方面的帮助。







