Matching——网络游戏大厅匹配设计

news/2024/10/19 13:09:21/

         众所周知,网络游戏大厅匹配系统,一直是游戏很最重要的一环!在很多游戏中都是必不可少的的一环。比如,MOBA类 Dota,LOL,吃鸡 大地图这类,都少不了匹配,在服务器设计中也就成了很重要的一项功能。 这个细节的成败,直接决定了你游戏的寿命!在玩家心中是怎样的一个定位,玩家是否会买你的帐,是否愿意留下长久持续的玩下去。

        这个细节的失败!那,后果不堪设想!比如,我很开心的匹配了一把游戏,结果系统给我匹配了4个坑比,于是,我玩完直接卸载了游戏。也许,你是花钱买量直接把这个游戏推到了高潮,在各个平台连续霸榜,不停宣传,画质多么精美,玩法多么惊艳!下载,即送史诗装备!结果,玩家下下来玩了一把,发现好像并不是那么回事!!然后,就再也没回来过... 你的宣传很成功,玩家好像留下了的也并不多!

        如果,是在早期,那基本就是直接重开。如果,是在后期,浑身乏力,无力回天,没有足够技术能力,来解决此事情,那基本就是眼看这产品一步步慢慢的死去,最终消亡,然后,淹死在玩家谩骂的粪坑里!你想知道这是那款产品吗?

        匹配是一个大话题,有很多挑战,但其核心是一个非常简单的问题:谁应该和谁一起玩?
今天我想讨论一下 如何选择与你一起玩的人,结合自己上一篇的文章中大厅中提到的匹配算法。因为匹配这个问题,始终都是一个大问题,不是随便说两句。如果,你玩的游戏足够多的话, 就会发现这些竞技游戏里的每一个匹配算法都是不一样的。虽属同一类游戏,但,各有各的天枰竞技系统。我玩过的这所有的竞技系统里,只觉得Dota2天枰竞技系统,算是比较合理的一种。至于,后来的游戏,暂时就不用提了。LOL与Dota2 算是同一时代的作品,但,两家的匹配系统就有这很明显的差异化。当然,最终赢得市场的,肯定不用说了。LoL凭借这自己的免费模式和与Dota类似游戏模式,一举吸走了Dota大量玩家,占据了主导地位。这两家也是算是竞品公司,有着打不完的官司。

        这个问题很简单,但答案却相当复杂。 如今国内有很多大厂在做,但是,这些细节,他们是从来不透露的!不过,现在我也用不着向他们看齐,现在我也有足够的能力来实现自己的匹配算法了。

      现在我就想安安稳稳的打一场游戏,需要考虑那些问题?

        我们可能会考虑如下诸多的问题:

        技能相似的玩家应该一起玩吗?

        来自同一地区或语言的玩家应该一起玩吗?

        我们应该考虑预组队吗?Ping 值?

        我们应该避免匹配刚刚一起玩过的玩家吗?

        我们应该使用匹配让恶意玩家互相对抗,并让他们远离普通人吗?

        这些都需要解决!那么你最好有很多玩家!简短的回答是:数以万计的玩家同时在线,一直如此。除了最热门的游戏外,这并不现实,所以你通常需要用更少的玩家来玩,并充分利用你的匹配系统。

        我还是那王者荣耀来说吧!把上期的文章图拿过来。

        比如,现在的我就是要玩一玩ta 的游戏,我可能会选择ta的 三个模式中的其中一个。

      在服务器层面应该会怎么考虑这个问题呢?不如,大胆的设想,简单化解决一下。我们可以把这三个模式分出来,那么,就有了, 对战匹配系统——排位匹配系统——娱乐模式的匹配系统。三个模式各不相同。假如,我的服务器有10000人同时在线,玩一把游戏需要10分钟左右,有3种模式。就可以得到一个简单的,每分钟玩的匹配玩家数量

10000/3/10 =333 每分钟人数
如果对局是20分钟呢
10000/3/20 =166 每分钟匹配人数

这只是,我们最简单的开始的一步,只考虑到了两个条件。

在考虑国内同等网速下,各个玩家之间的网速情况 Ping值,是否具有同等的网络情况,Ping小于多少可以进行匹配,简单取一个250ms 下可以进行匹配吧!假设,有一半的玩家网速是良好的,可以流畅体验游戏的。我们再来算一下

333/2=166 每分钟匹配人数

再考虑是否在同等段位下,玩家等级是否都达到了可以匹配的等级。我们暂切估个一半吧!有一半的玩家是可以进行匹配的,当然随着后期,玩的等级都达到了,我们就只需要考虑同段位匹配的人数了,人数也就变多了。

166/2 = 83 每分钟匹配人数

再考虑玩家组队的情况!社交竞技类游戏,那个没有个拉人组队。这里要考虑的是,单对单,多对多的问题,组队可能具有很大的优势,因为他们的团队合作能力可能会更好。因此,在理想情况下,组队只会与其他组队进行比赛。而单人排队者则由匹配系统将完全陌生的人安排成一个队伍。假设平均四分之一的玩家参加预组队:

83/4 =20 每分钟匹配人数

我们想把匹配算法趋近于完美,还可以叠加很多条件,促使能够到达相同水平玩家的人一起游戏。实际上,顶级玩家比其他玩家要好得多,因此无法实现理想匹配。排名前 5% 的玩家比排名前 33% 的玩家要好得多。我们根据技能匹配得越精确,效果就越好。我认为,为了实现理想的匹配,我们需要做得至少比上面好三倍:

20/3=6 每分钟匹配人数

于是,我们就剩下了6个人可以匹配。有十个坑,填满才可以进行游戏。

10/6 =1.6

大于需要1.6倍的玩家(16000)数量同时在线,才能进行完美的匹配。玩家数量每天都有很大的波动,晚上深夜人数可能最多,清晨早上的时候可能人数最少。因此,如果要在淡季也能实现良好的匹配,我们仍然需要三倍以上的玩家。因此,我们需要在高峰期有48,000 名同时在线玩家才能实现良好的匹配。这可能相当于每月超过 500 万独立玩家。当然,现在的王者农药每日在线活跃数量就已经达到了百万。举例的这些数字并不是为了夸张,而是为了能足够的说明问题。

        我们把所有的问题都考虑到了,剩下的是不是就是一个并发量的问题,10000并发虽然很多,但是能匹配的人数确很少。

        在构建多人游戏时,考虑这一点很重要。理想的匹配需要大量的玩家,如果你的匹配是假设会有这么多玩家,那么你可能会做出一些对更现实的数字来说效果很差的东西。因此,理想的匹配系统是灵活的:当有大量玩家时,它可以实现完美的匹配,但也能充分利用少量玩家。

        


http://www.ppmy.cn/news/1540258.html

相关文章

2.计算机网络_IP地址

IPv4的IP地址 1、分类IP IP地址的表示方式: IP地址在整个互联网中是唯一的,指明了连接到某个网络上的一个主机。IP地址用32位二进制数表示,每一个字节代表一段,如下图IP地址即为128.11.3.31。 什么是多归属主机: 当…

重学SpringBoot3-集成Spring Security(一)

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Spring Security(一) 1. 简介与概念2. 基础配置2.1. 添加依赖2.1 基本认证与授权配置 3. 密码加密3.1. 如何加密用户密码3.2…

Git 可视化的实现:提升版本控制体验的利器

Git 是目前最流行的分布式版本控制系统,广泛应用于软件开发和项目管理中。然而,对于许多人来说,Git 命令行操作可能有些复杂且难以直观理解,特别是当涉及到复杂的分支和合并操作时。为了更好地帮助开发者掌握 Git 的操作过程&…

浅谈C#之抽象类、抽象方法

一、基本介绍 在C#中,抽象类和抽象方法是面向对象编程中的重要概念,它们提供了一种方式来定义一个类的基本框架,但不完全实现它。这允许其他类继承这个框架,并提供具体的实现细节。 二、基本用法 抽象类 抽象类是一个不能被实例…

iPad备份软件哪个好?好用的苹果备份软件推荐

苹果手机在将数据备份到电脑时,需要通过第三方的管理软件,才可以将手机连接到电脑进行备份。苹果手机备份软件有很多,常用的有:爱思助手、iMazing、iTuns等。那么这三款常用的备份软件究竟哪款更好呢?下面就给大家盘点…

06-ArcGIS For JavaScript-requestAnimationFrame动画渲染

文章目录 概述setInterval()与setTimeout()requestAnimationFrame()requestAnimationFrame在ArcGIS For JavaScript的应用结果 概述 本节主要讲解与时间相关的三个方法setTimeout()、setInterval()和requestAnimationFrame(),这三个方法都属…

【pyspark学习从入门到精通4】弹性分布式数据集_2

目录 Lambda 表达式 全局作用域与局部作用域 Transformations .map(...) 转换 .filter(...) 转换 .flatMap(...) 转换 .distinct(...) 转换 .sample(...) 转换 .leftOuterJoin(...) 转换 .repartition(...) 转换 Lambda 表达式 在这个例子中,我们将从 dat…

系统架构设计师教程 第18章 18.6 数据库系统的安全设计 笔记

18.6 数据库系统的安全设计 从数据库管理系统的 角度而言,要采取的安全策略一般为用户管理、存取控制、数据加密、审计跟踪和攻击检测。 18.6.1 数据库安全设计的评估标准 可信计算机系统评估标准 (Trusted Computer System Evaluation Criteria,TCSEC) 桔皮书 (…