实用托管指南(The Pragmatic Hosting Guide)
如果对所有的托管选项感到困惑?欢迎来到我们的实用托管指南。
Mirror 负责您的多人游戏代码。 然而,我们仍然需要讨论托管!
本指南适用于那些想要专注于制作游戏的人。 将命令输入到 ssh 终端可能很有趣,但生命是短暂的。 本指南的首要任务是易用性,因为我们必须发布我们的项目!
由于提供商和托管技术、Linux 发行版和位置几乎无限,很容易对适合您游戏的最佳选择感到困惑。
本指南将为您提供基本概述。接下来的章节将根据您选择的不同托管方法提供深入指南。
实用托管指南
以下是不同托管技术的简要概述,适用于哪些游戏,以及您可以选择哪些提供商。
1.) 在您自己的计算机上托管
构建游戏后,您可以在自己的计算机上托管游戏,或者让玩家在他们的计算机上托管游戏。然而,这会带来几个主要问题:
运行时间:您的计算机必须全天候运行。
安全性:如果有人发现漏洞并访问您的私人数据怎么办?
性能:您的计算机/带宽/延迟可能不够好。
延迟:与数据中心中专业托管的服务器不同,玩家之间的连接通常会带来相当大的延迟。
连接性:其他玩家通常无法在您的路由器、防火墙等后面找到您的游戏,玩家之间的连接总是困难的。
不建议使用此方法。 ... 除非是局域网聚会,如果您还记得的话。
2.) 玩家托管 + 中继 / NAT 穿透

尽管让玩家托管他们自己的游戏可能很有用。您将节省服务器托管成本,并且玩家将根据需要创建他们的服务器。我们只需要解决连接性问题。为此,我们可以结合两种工具:
NAT Punchthrough:一种巧妙的技术,通过您的路由器/防火墙“打通一个洞”,以便其他人可以连接到您的游戏。这需要一个中央服务器供玩家一次连接。连接到中央服务器后,您的路由器/防火墙很可能会直接允许其他玩家的外部数据包。这种方法大约**70%**的时间有效。
中继:为了避免麻烦,您可以提供自己的(或租用)中继服务器,基本上是在玩家之间转发流量。您的玩家不再直接通信,而是通过一个中央中继进行通信。这种方法可以100%解决路由器和防火墙问题。但是,通常您需要支付带宽费用。
请注意,运行时间、安全性和延迟在这里仍未解决。但是,一个体面的中继可能会降低您的延迟到足够好的程度。
Edgegap的分布式中继将为您提供最佳的延迟(付费)。 Epic Relay是免费的,但延迟较高,而且 C# API 不太好。
3.) 专用服务器(Dedicated Servers)

这是托管的老派方式,可能是大多数人首先考虑的。
您签订合同租用某个数据中心的物理专用服务器,在其中安装您喜欢的 Linux 发行版,通过终端 SSH 进入服务器,进行配置,然后启动服务器二进制文件并随时间维护它。
专用服务器适用于所有游戏。但并非所有游戏都适合使用专用服务器。
为每个额外的服务器签订和取消合同很麻烦。而且即使不使用,您仍需要支付费用。
这最适合于持久世界:《Minecraft》,《魔兽世界》等大型多人在线角色扮演游戏。
Hetzner是最常推荐的。他们的价格和硬件都很棒。 Namecheap也不错。
4.) 云托管(Cloud Hosting)

您可能已经听说过亚马逊 AWS、谷歌云、微软 Azure 等。它们提供虚拟服务器,您可以通过几次点击即可启动和删除,而无需手动签订合同和每次取消合同。
# 用法
使用方式通常类似于专用服务器:您配置您的机器,选择您的Linux发行版,上传您的服务器可执行文件并自行维护。
然而,云托管显著更加便捷。您可以通过几次点击在 UI 中租用新服务器并移除旧服务器。在月底,您将收到您所使用资源的账单。
您甚至可以配置您的服务器一次,然后通过几次点击基于相同镜像启动额外的服务器。
云托管同样适用于所有游戏。但是,请记住:
虚拟 CPU 比专用 CPU 慢约20%。
定价明显高于专用服务器。
您基本上为额外的便利性付费。新服务器可以通过几次点击设置,并且一旦您不再需要它们,您可以简单地移除它们。无需一直签订合同并等待支持。
如果您重视便利性,那么云托管比专用服务器是一个不错的选择。
Google Cloud、Amazon AWS 和 Microsoft Azure 是最受欢迎的选择。 您将在我们的文档中找到每个选择的托管指南。 在 Mirror 中,我们使用 Google Cloud 进行我们的 CCU 测试和 Discord 机器人。
5.) 编排

编排旨在自动化基于会话的游戏托管,按需提供。
如果您的游戏突然变得受欢迎,您可能需要同时拥有数百甚至数千台服务器。手动使用专用服务器设置这一点基本上是不可能的,即使使用云托管也仍然需要相当多的麻烦和时间,这些时间可能更好地花在您的游戏本身上。
好消息是:编排是多人游戏托管的未来。简单来说:
您创建一个轻量级的 Docker 镜像:配置一个文本文件(".Dockerfile")与您的Linux发行版、软件包、开放端口等,然后将整个项目编译成一个 "Docker 镜像"。如果您不熟悉 Docker,不用担心。它会让您的生活轻松得多。只需学习一次,您将在之后的所有托管中使用它。不再需要手动设置 Linux 服务器,不再需要 apt-get,不再需要维护等。
上传您的镜像 到编排服务。
在 Web UI 中配置您的编排。他们会询问您要生成多少服务器,何时生成更多,何时移除旧服务器等。
这是托管游戏服务器的新、现代方式。Docker(容器化)和Orchestration(编排)听起来一开始可能有点复杂,但如果不会让我们的生活更轻松,我们就不会在这里提到它们。
再次强调,我不想担心托管问题。我只想上传我的服务器镜像,让编排服务负责所有的扩展、维护等工作。便利性至关重要。
Multiplay(多人游戏)、Edgegap(边缘缝隙)和AWS Gamelift(亚马逊游戏提供)是受欢迎的选择。 我们选择EdgeGap,因为它是最易于使用的,具有最先进的网络。
更新:Edgegap Unity 插件 🇨🇦(Canada)
好消息,Mirror 现在内置了Edgegap的托管/编排插件!
查看我们的逐步指南以开始使用:edgegap-hosting-plugin-guide.md
最后更新于
这有帮助吗?