文章目录
- 前言
- 什么是CCU?
- 测试结果
- 最后
前言
在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计。它使得开发者能够轻松实现网络连接、数据同步和游戏状态管理。本文将深入介绍Mirror的基本概念、如何与其他网络框架进行比较,以及如何从零开始创建一个使用Mirror的简单网络项目。
什么是CCU?
CCU是“Concurrent Users”的缩写,意指“同时在线用户数”。在网络游戏和在线服务中,CCU指的是在特定时间内,能够同时访问或使用系统的用户数量。这个指标通常用于衡量服务器的负载能力和性能,帮助开发者了解用户的参与度和服务的需求。
在Unity Mirror CCU示例中,创建了10000个Monster并不是为了实现10000个并发连接,而是用于测试和展示服务器在高负载情况下的性能和稳定性。
通过创建大量的Monster实例,测试者能够模拟一个高用户负载的环境,观察在10,000个Monster存在的情况下,服务器如何处理数据同步、状态更新和网络流量等功能。这种测试有助于识别在实际用户连接数达到最大时可能出现的瓶颈问题,以及如何优化服务器性能以更好地支持高并发情况
所以这个测试,一个人一台电脑是无法完成的,必须使用专业的自动化测试工具分布式测试来完成,
或者游戏真实上线来进行真实CCU的测试。
测试结果
我们直接公布官方给出的测试数据;
2019 年的 480 CCU 测试滞后:
使用 Mirror 制作的其中一款 MMO在发布时拥有相当多的 CCU,我认为是 Inferna。他们将地图分成单独的服务器实例,每个地图的 CCU 限制约为 200。我不得不再次查找,但我相信他们有时通过这种方式在每个世界实现了大约 1000 个 CCU。
还有一个非常古老的视频,我们尝试了 480 CCU 的最坏情况,就像您的视频一样,都在一个地方。它非常滞后,但服务器幸存得很好。Inferna 和 480 CCU 视频都使用旧的 Mirror 和 Unity 版本。
从那时起,我们多年来一直在改进 Mirror、Unity 和服务器硬件。我们仍有许多优化工作要从 Mirror 中挤出来,并计划在今年年底左右进行另一次 CCU 测试。
请记住,游戏的复杂性也是一个重要因素。像 WoW 这样的 3D 物理运动 MMO 将比 2D 点击移动 MMO 更难扩展。对于独立开发者来说,2D 确实值得考虑。它更便宜,更容易制作,而且由于物理/网格等不太复杂,因此扩展性更好。
归根结底,我们在 MonoBehaviour 世界中可以实现的目标肯定是有限的。对于像 WoW 中那样的 1500 个物理运动玩家,您肯定需要 DOTS 或不在 Unity 中运行的服务器。在我看来,Unity 和 MonoBehaviour 仍然是一个不错的选择。最好发布一个 500 CCU MMO,每个实例 250 CCU,而不是永远不发布1500 CCU MMO。
最后
好了这篇文章让我们了解了Mirror的极限,当然我觉得这不是问题,如果我们真的像开发超过500CCU的MMO大型多人游戏,我们一定不会使用Mirror或者NGO等这类网络框架,一定是使用C++或者go等专业的服务器架构来开发CS网络架构的游戏框架。
我也不能肯定的说,使用Mirror的都是个人游戏开发者或者小团队,但是我觉得我们还是要对自己使用Mirror的原因和意图有一个清醒的认识。
希望这篇文章对你有所帮助。