Unity-Mirror网络框架-从入门到精通之CCU示例

news2025/1/7 21:03:16

文章目录

    • 前言
    • 什么是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的原因和意图有一个清醒的认识。

希望这篇文章对你有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2272841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在 Ubuntu 22.04 上安装 Nagios 服务器教程

简介 在本教程中,我们将解释如何在 Ubuntu 22.04 上安装和配置 Nagios,使用 Apache 作为 Web 服务器,并通过 Let’s Encrypt Certbot 使用 SSL 证书进行保护。 Nagios 是一个强大的监控系统,它可以帮助组织在 IT 基础设施问题影…

大语言模型训练所需的最低显存,联邦大语言模型训练的传输优化技术

联邦大语言模型训练的传输优化技术 目录 联邦大语言模型训练的传输优化技术大语言模型训练所需的最低显存大语言模型训练所需的最低显存 基于模型微调、压缩和分布式并行处理的方法,介绍了相关开源模型及技术应用 核心创新点 多维度优化策略:综合运用基于模型微调、模型压缩和…

Javascript算法——贪心算法(一)

贪心算法详解(JavaScript)(局部最优->全局最优) 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下的最优选择(局部最优)的算法设计方法。通过局部最优解的累积&…

141.《mac m系列芯片安装mongodb详细教程》

文章目录 下载从官网下载安装包 下载后双击解压出文件夹安装文件名修改为 mongodb配置data存放位置和日志log的存放位置启动方式一方式二方式二:输入mongo报错以及解决办法 本人电脑 m2 pro,属于 arm 架构 下载 官网地址: mongodb官网 怎么查看自己电脑应该下载哪个版本,输入…

【ArcGISPro/GeoScenePro】裁剪和打包栅格数据

检查并处理扫描地图 数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 使用标准相机或扫描仪创建的数字影像通常存储在 RGB 颜色模型中,这意味着这些影像将由红色、绿色和蓝色三个栅格组成。 此扫描地图在提供给您之前已在坐标系…

【C++】B2109 统计数字字符个数

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述与输入输出要求题目:统计数字字符个数样例输入输出 💯方法分析与代码实现方法 1:使用 fgets 读取输入并手动判断数字字符代码实…

基于32单片机的智能语音家居

一、主要功能介绍 以STM32F103C8T6单片机为控制核心,设计一款智能远程家电控制系统,该系统能实现如下功能: 1、可通过语音命令控制照明灯、空调、加热器、窗户及窗帘的开关; 2、可通过手机显示和控制照明灯、空调、窗户及窗帘的开…

git理解记录

文章目录 1. 背景2. 基本概念3. 日常工作流程4. 其他常见操作4.1 merge合并操作4.2 tag打标签操作4.3 remoute远程操作4.4 撤销修改 git理解记录 1. 背景 git作为分布式版本控制系统,开源且免费,相比svn集中式版本控制系统存在速度快(HEAD指针指向某次co…

开启宝塔Nginx防火墙支付返回失败解决方法

1.把/plugin.php加到Nginx防火墙URL白名单 包括支付服务器回调ip 2.如果支持带参数 /plugin.php?idzhifufm:notify 加到Nginx防火墙标准模式-URL白名单带参数 如果上面都不行 就把下面的IP加入白名单 39.107.193.172 47.94.194.103 47.104.216.190

平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网

为响应金融知识普及教育号召,平安产险安徽分公司联动安徽中医药临床研究中心附属医院,于近日在朝霞小学举办了一场儿童安全防范与健康守护活动。此次活动旨在提升学生的安全防范意识,守护儿童健康成长,同时有力推动金融知识与传统…

Elasticsearch:Lucene 2024 年回顾

作者:来自 Elastic Chris Hegarty 2024 年对于 Apache Lucene 来说又是重要的一年。在本篇博文中,我们将探讨主要亮点。 Apache Lucene 在 2024 年表现出色,发布了许多版本,包括三年来的首次重大更新,其中包含令人兴奋…

Unity打包问题集(持续更新)

1.报错:CommandWithNoStdoutInvokationFailure: Unable to start ADB server. Please make sure the Android SDK is installed and is properly configured in the Editor. See the Console for more details. 大致意思就是打不开ADB的服务器,请检查安卓…

SpringBoot环境和Maven配置

SpringBoot环境和Maven配置 1. 环境准备2. Maven2.1 什么是Maven2.2 为什么要学 Maven2.3 创建一个 Maven项目2.4 Maven核心功能2.4.1 项目构建2.4.2 依赖管理2.4.3 Maven Help插件 2.5 Maven 仓库2.5.1本地仓库2.5.2 中央仓库2.5.3 私有服务器, 也称为私服 2.6 Maven设置国内源…

【HarmonyOS应用开发——ArkTS语言】欢迎界面(启动加载页)的实现【合集】

目录 😋环境配置:华为HarmonyOS开发者 📺演示效果: 📖实验步骤及方法: 一、在media文件夹中添加想要使用的图片素材​ 二、在entry/src/main/ets/page目录下创建Welcome.ets文件 1. 整体结构与组件声…

【数据可视化-11】全国大学数据可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

NLP项目实战——基于Bert模型的多情感评论分类(附数据集和源码)

在当今数字化的时代,分析用户评论中的情感倾向对于了解产品、服务的口碑等方面有着重要意义。而基于强大的预训练语言模型如 Bert 来进行评论情感分析,能够取得较好的效果。 在本次项目中,我们将展示如何利用 Python 语言结合transformers库&…

各种数据库类型介绍

1.关系型数据库(Relational Databases, RDBMS) 关系型数据库是基于关系模型组织的数据库,其数据结构以表格的形式存在,表格之间通过外键等关系相互关联。它们支持复杂的SQL(Structured Query Language)查询…

创龙3588——debian根文件系统制作

文章目录 build.sh debian 执行流程build.sh源码流程 30-rootfs.sh源码流程 mk-rootfs-bullseys.sh源码流程 mk-sysroot.sh源码流程 mk-image.sh源码流程 post-build.sh 大致流程系统制作步骤 build.sh debian 执行流程 build.sh 源码 run_hooks() {DIR"$1"shiftf…

倾斜摄影相机在不动产确权登记和权籍调查中的应用

一、项目背景 1.1 项目背景 为贯彻落实中央、国务院关于实施乡村振兴战略、关于“扎实推进房地一体的农村集体建设用地和宅基地使用权确权登记颁证,完善农民闲置宅基地和闲置农房政策,探索宅基地所有权、资格权、使用权‘三权分置’”的要求&#xff0…

在K8S上部署OceanBase的最佳实践

在K8S上部署OceanBase的最佳实践 目录 1. 背景与选型 1.1 为什么选择OB1.2 为什么选择ob-operator实现OB on K8S 2. 部署实操 2.1 环境准备2.2 安装 ob-operator2.3 配置 OB 集群2.4 配置 OBProxy 集群2.5 Headless Service 和 CoreDNS 配置2.6 监控与运维 2.6.1 Promethues部…