WebGL / HTML5 - 多人在线网页游戏服务器与托管 - 教程

你好,

在本教程中,我们将涵盖每一步,教你如何轻松部署和托管任何 Unity WebGL 多人游戏的游戏服务器,使其能够在线玩。专用服务器与中继不同,可以减少延迟,具有跨平台兼容性,并避免常见的 NAT 问题。

我们还将强调如何将游戏发布到 Itch.IO

让我们开始吧。

第一部分 - 设置

第一部分 - 设置

第一部分 - 设置

我们强烈建议您遵循我们为此示例量身定制的 文档。以下内容将帮助您跟随上面的视频。  

这个项目有两个主要要求。首先是下载并安装 Docker,以帮助容器化游戏服务器。Docker 被数百万用户和全球最大的公司使用。

其次是下载我们的 GitHub 上的 Mirror WebGL 项目。使用我们描述、评论或文档中的链接,点击页面上的绿色“代码”按钮,然后选择“下载 ZIP”。

在您的文件夹中,只需解压缩文件。

免责声明

确保通过 "从 Git 添加项目" 添加 Edgegap 的 Unity 插件,以确保您使用的是项目的最新版本。

  1. 选择“窗口”,然后选择“包管理器”

  2. 点击“+”图标,然后选择“从Git添加项目”

  3. 粘贴Edgegap的Unity插件URL:“https://github.com/edgegap/edgegap-unity-plugin.git”

  4. 选择“安装”

第 2 部分 - Edgegap:游戏服务器托管与调度

第 2 部分 - Edgegap:游戏服务器托管与调度

第 2 部分 - Edgegap:游戏服务器托管与调度

现在在 Unity 中。

从 Unity 的 HUB 中选择一个全新的项目,选择“安装编辑器”,并选择最新的“Unity 6 LTS”版本。在录制时,Unity 6.0 是当前的“长期支持”或 LTS 版本。

更新的版本可能有增量改进,但很可能会破坏某些功能。因此,我们强烈建议使用最新的主要 LTS 版本,以确保本示例及您的一般开发项目的兼容性。

点击“安装”,确保选中了“(Mono)”和“(IL2CPP)”的“Linux 构建支持”模块,以及“Linux 专用服务器构建支持”和“Web 构建支持”模块。进行安装。

现在,返回项目菜单,选择“添加”,然后选择“从磁盘添加”。找到 WebGL 项目并选择其主文件夹。

在这里,Unity 可能会提醒您缺少 Unity 版本。如前所述,录制时最新的 LTS 是“6000.0.56.f1”。忽略此警告,选择最新的 LTS 版本。虽然您可以使用最新推荐的版本,但请注意这可能会破坏项目。同样,在编辑器加载后,选择“继续”,并忽略警告。

经过一段加载时间后,Unity 会发出另一个关于弃用包的警告。您可以调查一下,但对于这个项目,我们将简单地忽略它。如果“构建配置文件”菜单出现,请关闭它,我们将清除控制台错误以重新开始。

现在,选择左下角的“项目”,然后前往“镜像”文件夹,再选“示例”,然后选择“台球”。我们将打开“台球”示例作为我们的基础项目。

第一步是在左侧打开“网络管理器”。在检查器中,确保通过点击三个点并选择“删除组件”来移除“KCP 传输(脚本)”。

然后,选择“添加组件”,我们将添加“简单 Web 传输”,它是用于 WebGL 项目的。

接着,选择“网络管理器”菜单,确保选择了“加载时不销毁”,并且“无头启动模式”设置为“自动启动服务器”。

您还会注意到“传输”缺失。通过选择六边形图标并选择镜像的“传输管理器(简单)”来添加它。

在 Unity 的编辑器中直接添加游戏服务器托管的最简单方法是通过 Unity 的包管理器添加 Edgegap 的插件 Git 项目

从顶部导航栏选择“窗口”,然后选择“包管理器”。

如果 Edgegap 已经存在于您的项目中,请选择“删除”将其移除。

Edgegap 插件托管在 GitHub 上。复制此 URL,确保它以“.git”结尾:

https://github.com/edgegap/edgegap-unity-plugin.git

在 Unity 中,选择包管理器中的“加号”图标,然后选择“从 Git URL 安装包”。

然后,粘贴上面的 URL 并选择“安装”。

几秒钟后,Edgegap 插件将自动安装。只需在“工具”下打开它。

在示例中,从顶部导航菜单中打开“工具”,然后选择“Edgegap 服务器托管”以打开插件。

点击“登录到 Edgegap”以创建一个免费的 Edgegap 帐户。选择您的登录方式,例如 Google 或 GitHub,如此处所示,并创建您的组织。

这是 Edgegap 应用程序的仪表板。通过选择剪贴板图标复制 OneClick 令牌。

返回 Unity。选择“验证令牌”。

自动打开“构建您的游戏服务器”选项卡。

首先,您可以通过选择“安装”来验证 Linux 依赖项是否正常工作。正如我们之前所做的,它显示“已安装要求”。

接着,我们必须确保选择了我们的游戏场景。在“Unity 构建设置”下,选择“编辑设置”,在“场景列表”下选择“添加打开的场景”按钮。这里,您可以看到镜像的台球场景现在已包含在游戏服务器中。

选择“构建服务器”,这将编译游戏服务器。选择“保存”以确认它包括场景的最新更改。

经过几秒钟,构建成功编译。

在“容器化您的服务器”下,通过选择“验证”确认 Docker Desktop 正在运行。如果没有,请打开 Docker。

我们将在本视频中跳过所有可选参数,但对于高级用户,其使用的详细信息可以在我们的文档中找到。

让我们继续,选择“使用 Docker 进行容器化”。

经过短暂时间,容器化成功。

下一步是本地测试我们的游戏服务器。有其他可选参数,但对于本视频,我们将简单地选择“部署本地容器”。

完成后,我们可以确认它在 Docker Desktop 中正在本地运行。

为了使其在网上可用,下一步是将游戏服务器上传到 Edgegap 的平台。

确保选择正确的应用程序,然后点击“上传映像并创建应用版本”按钮。

几秒钟后,将打开一个网络浏览器,进入平台。此“创建版本”页面是预填的,您可以配置可选设置,包括 vCPU 资源使用、内存等,但我们将使用默认设置创建一个新版本。

向下滚动并选择“提交”。

“创建端口”弹出框打开。在这里,确保将端口更改为 7778,这是镜像设置的简单 Web 传输中的端口。这在其他网络代码中可能会有所不同。确保查看您的网络代码文档,以获取适合您用例的准确端口。

然后,选择用于网络游戏的协议类型为“WS”。我们还将选择 TLS 升级,以添加代理容器,将您的应用程序升级到安全端口。

返回 Unity,我们必须部署之前已容器化的实际游戏服务器。从列表中选择正确的应用版本,可以通过选择“应用版本”字段进行查看。

最后,选择“部署到云”,这会自动将游戏服务器部署到 Edgegap 的平台。经过几秒钟的加载,您的游戏服务器已准备就绪。恭喜,您的游戏现在可以在世界各地在线游玩!

第三部分 - 测试

第三部分 - 测试

第三部分 - 测试

显然,首先测试事物。开始时选择部署。

这是您的游戏服务器的部署详细信息页面。

它包含大量信息,但为了能够连接到游戏服务器,我们将向下滚动并复制外部端口,在我们的示例中,它是 32360,但这对每个部署都是唯一的。

返回 Unity并打开网络管理器的检查器选项卡。

选择“简单网络传输”,在“端口”下,粘贴您的新外部端口。

返回到部署页面并复制“主机”URL。将其粘贴到“网络地址”字段中。

返回到游戏场景,并通过选择“播放”按钮开始。

正如您所见,URL 和端口已经存在。选择“客户端”,游戏场景成功连接到 Edgegap 部署的云服务器。

恭喜,您正在玩多人在线游戏!

如果您想将游戏发布到 Itch.io 并真正从网络浏览器测试游戏,请从顶部菜单中选择“文件”。

在“构建配置文件”中,选择“项目设置”选项卡。从左侧菜单中选择“玩家”。虽然您可以输入您的组织名称和版本,但唯一的要求是在“发布设置”部分选择“GZIP”作为压缩格式。

最后,返回到构建配置文件,在“网络”下,选择“构建”以构建游戏以进行发布。在您选择的文件夹中保存项目。

构建过程完成后,创建该文件夹的“ .zip ”归档。

前往 Itch.io。如果您还没有,请创建一个 Itch 账户。

现在,选择“创建新项目”并填写标题,然后选择“HTML”作为项目类型。向下滚动并将 zip 归档上传到 Itch.io。

上传文件后,选择“该文件将在浏览器中播放”的选项,并在“嵌入选项”下选择“单击以全屏启动”。最后,选择您想要的可见性,这里我们选择“公开”,然后点击“保存并查看页面”按钮。

页面加载后,选择“运行”以启动游戏。我们将使用与初始游戏相同的 URL 打开第二个浏览器。

恭喜,您现在在 Itch.io 上玩您的多人 WebGL 在线游戏!

第4部分 - 下一步

第4部分 - 下一步

第4部分 - 下一步

这就是 Edgegap 插件用于 Unity 的 WebGL,该插件为游戏开发者提供了自动游戏服务器和简单的托管。

您游戏开发的下一个可能步骤将是自动连接玩家。有关 Edgegap 的 简单且完全自动化的配对系统 的更多信息,您可以查看我们的教程。

谢谢!