

在我们的点播网络研讨会中,首席合作伙伴工程师 Aaron Moon 讨论了如何掌握多人游戏发布——从服务器架构到规模测试。
或者,继续阅读以下内容以了解:


说到您的游戏设计,简单是什么样的?上图展示了一个复杂的设计,不仅有一个游戏服务器实例,而且同一台机器上还有许多辅助进程,包括匹配器、日志记录和指标可执行文件。
这种复杂性直到你开始进行规模测试时才会显现出来,那时你才会开始意识到当有成千上万的玩家时,这些东西无法很好地协同工作。此外,辅助服务可能没有任何资源防护,因此它们可能会开始蚕食机器上的资源并影响玩家的表现。保持简单可以帮助缓解这些问题。

在游戏服务器设计方面,简单就是将东西打包到单个服务器实例中,比如单个可执行文件和有弹性的匹配器(可能托管在后端服务上而不是机器上)。这样,当其中一个游戏服务器丢失时,它不会带走其他玩家,并且受影响的区域也会很小。从规模上看,如果您的游戏服务器采用这种设计但出现故障,也不会影响玩家体验。

为了帮助最大限度地降低成本风险,请不要将调试、观察者和匹配等辅助流程放在同一台机器上。如果你遇到游戏服务器崩溃的情况,并且你拥有将其扩展到的云机器,那么辅助进程就会陷入“僵尸”状态。它们仍在消耗资源,这会花费你的工作室的金钱,而且你无法关闭它们。
相反,考虑制作辅助流程,例如游戏服务器的匹配和调试子流程 - 保持简单。然后,如果您失去游戏服务器,它会带走子进程,而不是让它们在后台运行。在这种情况下,如果服务器停止工作,您可以启动另一个服务器,而无需与“僵尸”进程相关的额外资源和成本。
最好记住你的游戏循环如何与基础设施交互,以及基础设施如何支持你的游戏。例如,如果您的游戏有大厅和匹配器,那么应该有理由在大厅内外以及这些大厅的会话中进行匹配。
想想您拥有什么样的会话设计——您是在构建像 MMO 这样的持久性游戏,还是每次运行时都会重新启动的短会话游戏?每个游戏循环设计都会有风险和回报。在设计短游戏、长游戏和持久游戏时,需要考虑以下一些关键因素。
在具有长时间运行会话的多人游戏中,可能会出现内存泄漏、RAM 使用率不断上升等问题,这些问题可能在您大规模运行游戏时才会出现。
以下是与长时间游戏相关的一些风险:
短时间的游戏过程仍然存在风险,并且需要考虑玩家的体验。即使您的双人游戏只有两分钟,促进数十万场(或更多)同时进行的比赛也可能成本高昂且存在风险。
以下是短时间游戏环节的一些注意事项:
以下是短会话游戏的优缺点:。
优点:
缺点:
在持久性的多人游戏(如 MMO)中,可能会存在某些问题和风险。例如,支持服务器之间的玩家迁移等情况意味着您需要更强大的后端系统 - 包括昂贵的服务器和强大的硬盘。
以下是持久游戏会话设计的一些注意事项:
以下是基于持久会话的游戏的优缺点:
优点:
缺点:
大规模地为潜在的玩家体验问题做好准备是一个好主意。启动、运行和更新多人游戏可能会很混乱,因此进行“混乱恢复力”情境测试并确保游戏的后端能够处理这种混乱非常重要。
举例来说,如果游戏中的每个人都崩溃了,并同时尝试重新进行配对,会发生什么情况?弄清楚后端对该情况的反应并设置它来处理该问题可以从长远来看为您省去麻烦(并有助于保护您的声誉)。

您很可能需要在发布期间修补您的游戏。这就是为什么构建具有在生产和发布期间修补能力的基础设施非常重要。这可以帮助更快、更顺畅地解决发布日和即时修补的混乱情况,并限制对玩家的影响。
解决此问题的一种方法是同时运行游戏的多个版本。但是,您还必须确保您的基础设施可以处理多个版本。此外,您还需要一个包含所有不同版本的沙箱。
如果您已经内置了同时运行多个版本的功能,那么修补时不会对玩家造成停机或中断。
频繁的规模测试至关重要,因此在选择服务时,找到可以帮助您进行规模测试的提供商应该是主要考虑因素。
扩展测试的一项主要内容是服务器细分和碎片整理。服务器镶嵌是一个重要的成本考虑因素。本质上,您首先要使用廉价的金属机器进行托管。随着玩家群的波动,您还需要快速移除更昂贵的云机器,以更具成本效益。
Game Server Hosting (Multiplay) 避免分配给更昂贵的机器,这使我们能够在玩家数量减少时更快地将其移除。
我们的系统能否做到这一点取决于您的比赛的寿命。较短的匹配持续时间使我们能够更快地结束昂贵的机器上的分配。比赛时间越长,我们就不能关闭机器,直到比赛结束为止。

准备好构建你的下一款多人游戏了吗?这里有一些资源可以帮助您入门——了解有关 使用Game Server Hosting进行扩展的更多信息,查看我们关于Game Server Hosting和 Matchmaker 的点播网络研讨会 ,并探索我们在下面提供的多人游戏解决方案。