zoukankan      html  css  js  c++  java
  • Dota2 比赛匹配

    转载:http://cn.dota2.com/2013/12/比赛匹配/

    过去几个月我们一直在做匹配系统的改进工作。在接下来的博文里,我们希望能与大家分享一下现在工作的具体进度,同时还有全新匹配系统先睹为快。

    竞技匹配系统即将来临

    下一个大版本更新中游戏将加入全新的竞技匹配模式。本模式将为高手玩家提供一个竞技性更强的环境,同时拥有公开的竞技积分。其实Dota 2的普通匹配系统一直在使用匹配积分来进行匹配,而在竞技匹配中积分将对玩家可见。

    下面是竞技匹配模式的几点设定:

    • 竞技匹配模式在普通匹配总局数达到150场时解锁。
    • 如果是组队匹配,所有人必须都已经解锁了竞技匹配模式。
    • 目前该模式下能选择的有全阵营选择(AP),队长征召(RD)和队长模式(CM)。
    • 如果处于低匹配队列中(小黑屋)将无法选择竞技匹配。
    • 竞技匹配中将不能邀请教练进行指导。
    • 普通匹配模式中的匹配积分将不会影响竞技匹配中的竞技积分,反之亦然。
    • 竞技积分只有您自己和好友可以查看。普通匹配采用的积分依然是隐藏的。
    • 当首次开始竞技匹配时,前10场比赛是校准积分阶段。这段时间内无法查看竞技积分。

    您的匹配积分

    Dota 2使用标准技术对玩家的游戏水平进行量化和统计。每个玩家只要开始匹配比赛都会获得系统分配的匹配积分,有了积分就能对Dota 2的游戏水平进行量化。每场比赛结束后,根据比赛中的表现积分就会变化。总的来说,比赛赢了,积分变高;比赛输了,积分变低。比赛的输赢是积分变化的重要依据。但是个人发挥同样是一大因素,尤其是在积分的不确定值很高的时候。有时候比赛输了积分会增加,赢得会减少,不过总体来说,比赛中赢的一方五人的平均积分将会增加,另一方将会减少。

    我们也会记录匹配积分的不确定性。新手玩家和刚开始竞技匹配的玩家拥有的积分都具有很高的不确定值。而他们每经过一场比赛积分都会有大幅变化,不确定值较低的积分每次的变化幅度也会较小。而积分和不确定值都能为下一场比赛的发挥情况进行预测。积分是发挥的均值,而不确定值就是标准误差。只要比赛的结果(包括输赢和个人发挥)与我们的预期相匹配,那么不确定值将会不断降低。如果比赛的结果出人意料,不确定值就会增加。

    每一名玩家的匹配积分将分为四类:

    • 单人普通匹配
    • 开黑普通匹配
    • 单人竞技匹配
    • 开黑竞技匹配

    上述的两个竞技匹配积分都需要进行一段时间的校准。在某些特殊情况下,如果我们认为竞技积分计算有误,那还将重新进行校准。

    下图是每个积分下的玩家所占的百分比,从中可以看成积分的分布情况。

     5% 1100
    10% 1500
    25% 2000
    50% 2250
    75% 2731
    90% 3200
    95% 3900
    99% 4100

    值得注意的是,上述的分布情况来自于普通匹配。目前还不能确定竞技匹配中的分布情况。进行竞技匹配的玩家水平会更高,经验也更丰富。我们预计到时候每个玩家相比进行普通匹配,他们的预期发挥和实际发挥都将有所变化。

    如何才算是质量局?

    Dota 2的自动匹配机制最终是为了让玩家享受游戏。匹配机制的匹配规则如下(以下几点不分先后):

    1. 双方水平相当。(双方获胜的几率都是50%)
    2. 比赛中水平最高和最低的玩家之间水平的差距将做到最小化。这与双方水平有关,但不尽相同。
    3. 比赛中局数最多和最少的玩家之间局数的差距将做到最小化。详情下面还会说明。
    4. 天辉方水平最高的玩家与夜魇方水平最高的玩家水平尽量接近。
    5. 队伍双方组队匹配(开黑)的人数会尽量一致,打个比方,匹配系统将尽量避免将五人黑店与5个单排的玩家匹配到一起。
    6. 玩家的语言偏好也会列入考虑。匹配系统会尽量避免将选择的语言没有重叠的玩家匹配做队友。同时也尽量避免选择语言不同的玩家做对手,不过优先级不高。
    7. 等待时间不能过长。

    一般情况下匹配系统都不能完美地达成上述所有目标。在进行匹配时,匹配系统会为上述每个目标计算出一个得分,再将所有分数综合,得出加权平均数。当平均数超过一定数值时,匹配系统就会判定已找到“比较不错”的比赛,将所有人匹配到一起。我们一直在试验和比较不同的比赛因素,将各自的优先级进行排序。

    匹配系统并不会直接尝试使玩家的胜率达到某一特定数值。但是,我们一直努力让每场比赛中双方队伍都有50%的获胜机会(上述第一点)。我们并不会检测玩家是否处于连胜/连负,并尝试进行终止。但是在连胜的时候,匹配积分很可能是持续上升,这就会让您匹配到水平很高的对手和队友。胜率并不能有效地衡量玩家的水平。

    比赛局数也不是显示水平的实用标准,而匹配时考虑局数并非意味着局数就代表水平。在匹配玩家时考虑局数(上述第三点)主要是因为我们发现水平相同但是局数不同的玩家在每场比赛中预期发挥不尽相同。我们会采用游戏局数的对数函数来计算匹配时所需的参数。局数介于40局到120局与介于120局到280局经过计算参数基本相同。

    看下面的图表就能直观地发现目标中第二点和第三点的影响,横坐标是游戏局数,纵坐标是匹配积分。如果两名玩家在积分非常接近,那么他们匹配到一起的可能性就很高。如果两名玩家差距很大,那匹配到一起就糟了。Dota 2的新手玩家典型的积分曲线是随着他局数不断上升,匹配积分缓慢地上升。而对于使用新帐号的老玩家来说,他们的曲线将有所不同。在一定局数内他们的匹配积分会快速增长,不用经过很长时间他们就能匹配到局数相当而且水平很高的玩家。

    哥的积分因为过于酷炫这渣电脑算不出所以没能放到图里

    那组队匹配又如何?

    谈到组队匹配(开黑),情况就更复杂了。黑店里的玩家之间水平和局数的差距一般都很大。为了能够更好地对上述的第二点和第三点进行衡量,匹配系统会算出每个黑店水平和局数的综合分数,这分数只在匹配黑店时使用。一般来说,一个玩家单独匹配到了水平参差不齐的黑店,那他的水平与黑店平均水平肯定非常接近。如果您发现比赛中有一名玩家的水平明显不如其他人,那很有可能他是和其他人开黑。

    另外,玩家开黑时他们的整体表现相比同等水平但是互不相识的玩家要高出不少。这是通过两种方法得出的结论。第一,对于玩家单独匹配和开黑匹配,我们记录的是两组独立的数据。第二,我们在比赛结束后会根据黑店中玩家的数量和他们在比赛中的发挥对匹配积分进行结算。

    下面的示例来自今天的比赛,可以对上述的两种方法进行示范。(队伍编号相同代表处于相同队伍中)

            天辉方                        夜魇方
      队伍编号  积分      调整后积分   队伍      积分    调整后积分
      D        2994     3003        C        3046    3062
      F        2788     2788        C        2920    2936
      A        2687     2687        E        2716    2716
      F        2626     2627        B        2672    2672
      D        2401     2410        C        2100    2116
      总分               13515       总分             13502

    可以看出,经过调整后的匹配积分数值,平均为2700。使用经过调整的积分后,单独匹配的玩家将会安插在黑店玩家之间;而且,匹配积分的跨度较小(队伍F)容易与跨度较大(队伍D)的队伍匹配到一起。当然,因为队伍D的积分跨度较大,积分的调整幅度也比较大。而队伍F,其中的玩家水平更为平均,调整幅度较小。上述调整是使用了数据工具来实现(详情下面会描述),不过需要说明的一点是,与水平高出很多的玩家开黑后水平的提升速度相比与水平接近的玩家开黑会快很多。

    根据数据设计匹配系统

    如何确认匹配是否成功是非常困难的。玩家对于匹配质量的判定,跟他们最近的获胜率有密切相关。这点连Dota 2项目组的成员也不例外!为了避免情绪上,或者小范围的数据采样让我们误认为”匹配系统效果很好;最近我一直在赢”,我们尽量客观地使用数据来做各种游戏设计方面的决定。幸运的是,我们收集了大量的数据。打个比方,对于如何得出玩家开黑的发挥会比单排好这样的结论,您肯定很好奇我们是如何决定会去对有效的匹配积分进行调整的。我们使用的是一款叫逻辑回归的数据工具,可以创建方程对比赛获胜的几率进行计算。方程中有若干系数,决定了如何对黑店里玩家的积分进行调整。然后我们使用数值处理技巧得出方程中系数的数值,从而能够较为准确地预计比赛结果。

    接下来另一个数据帮助我们设计匹配过程的示例是帮助我们决定比赛是否“够质量”,是否能被玩家接受,以及是否能让您一直希望匹配到更好的比赛。为了协调上述的评判标准,我们开始对比赛质量进行衡量。匹配系统的终极目标是为玩家带来快乐,所以我们使用了若干项数据对比赛质量进行衡量。其中的一项是基于双方团队金钱差的局势平衡值(Balance)。准确地说,是时间对金钱差异的积分,从上一次游戏中双方金钱差为0开始计算。这在金钱差异的面板上能够很直观地表现。找到差异曲线变为0的时间点,再测出曲线与纵轴形成的面积。一般来说,这块面积越小,两方赢得比赛的几率就越接近。

    局势平衡值

    尽管比赛中夜魇方达到过1万的经济领先,但是天辉扭转了局势,经济实现了反超。尽管双方队伍都实现过巨大的经济领先情况,但是经过我们对局势平衡值的计算,我们判定这场比赛势均力敌。

    有了这项数据后,我们可以试验来优化等待时间。我们对评定标准进行调整,然后通过计算出比赛中局势平衡值的结果来观察这对比赛的质量有什么影响。如果其中对某些比赛的结果进行了误判(判定为势均力敌实际是碾压到底),这并不重要,我们关注的只是做出改动后的综合变化。

    结语

    我们希望您在读完这篇博文后能大致了解匹配系统的工作机制,还有我们评定成功的标准以及设计匹配系统的过程。就像我们所做的其他大多数工作一样,匹配机制需要不断的进行重新评估。匹配系统永远做不到尽善尽美,而这篇博文中提及的技术细节也反映了当前遇到的问题,在我们找到更好的方法后将会继续进行优化。我们会一直倾听您的反馈,我们也不断致力于让游戏进步。

  • 相关阅读:
    mysql5.7创建用户授权删除用户撤销授权
    什么是分表和分区 MySql数据库分区和分表方法
    linux命令大全之watch命令详解(监测命令运行结果)
    netstat统计的tcp连接数与⁄proc⁄pid⁄fd下socket类型fd数量不一致的分析
    ss is one another utility to investigate sockets(特适合大规模tcp链接)
    /proc/net/sockstat 里的信息是什么意思?
    linux平台下server运维问题分析与定位
    strace命令解析
    MySQL常见错误代码及代码说明
    自动化部署必备技能—定制化RPM包
  • 原文地址:https://www.cnblogs.com/bodboy/p/5011335.html
Copyright © 2011-2022 走看看