一种针对MOBA类游戏的玩家在线匹配方法和系统与流程

文档序号:15163390发布日期:2018-08-14 17:06阅读:996来源:国知局

本发明涉及网络游戏技术领域,具体涉及一种针对moba类游戏的玩家在线匹配方法和系统。



背景技术:

近年来随着电子竞技产业的飞速发展,玩家对于竞技类游戏的公平性也越来越关注,其中多人在线战术竞技类(multiplayeronlinebattlearena,简称moba)游戏广受全球玩家的青睐。竞技类网络游戏的基本原则是将水平相当的玩家匹配在一起,尽量避免出现双方实力相差过大的碾压局面。匹配所依据的是玩家的排位赛段位或者积分,其中段位属于较粗粒度的划分,而积分是较准确的对玩家水平的评价分数,目前电竞游戏的匹配系统都以玩家积分算法为技术核心。

积分算法中elo算法被普遍运用,其基本思想是所有玩家水平服从近似于正态分布的logistic分布,这样积分为ra和rb的两个玩家对战时a战胜b的期望可以表示为:

其中400为调整对战胜率区间的参数,该值为400时积分相差1000分以上的对局视为碾压。用实际胜负结果与获胜期望的差值来调整积分的增减。目前主流moba游戏dota2和lol的积分都运用elo算法。

基于elo积分算法的匹配系统虽然能大致对玩家水平进行定位,但也表现出许多不适应性,造成了不良体验。究其原因在于elo算法是上世纪六十年代的产物,它的应用背景仅仅是一对一的二元对弈评级,对于当今电竞多对多二元对战甚至多元对战的复杂结果不能很好地评价。

moba类游戏是10名玩家分为两个阵营的组队游戏,属于二元零和博弈。与弈棋的不同之处在于,第一它是原子可分的,每个队伍都可以分成5个玩家;第二玩家每局游戏可以选择不同的英雄,而玩家使用不同英雄的水平是不同的,所以玩家表现出来的水平具有较强的不稳定性;第三,阵容构成对胜负的影响是不可忽略的。因此5名玩家的平均水平不能准确反映队伍整体水平,每名玩家本局英雄水平也不能代表自己的平均水平,阵容结构对胜负的影响也无法体现,所以运用elo算法评价算法误差很大,导致玩家积分与玩家实力不相符,匹配后双方实力相差过大。



技术实现要素:

本发明实施例提供一种针对moba类游戏的玩家在线匹配方法和系统,用于解决现有的moba类游戏在线匹配系统中,一局比赛后玩家积分变化与所表现出的实力不相符的问题,使玩家积分能准确反映自己的竞技水平,从而总体上优化匹配结果。

为解决上述技术问题,所采用的技术方案为:

一方面,提供一种针对moba类游戏的玩家在线匹配方法,包括:

获取每位玩家的积分,将积分相近的2n名玩家匹配到同一个游戏房间,n正整数;

将所述2n名玩家分为积分总和接近的两个阵营,每个阵营n名玩家组成一个队伍;

根据每名玩家对于所选择英雄的熟练度,以及每个队伍所选择英雄的阵容,计算两个队伍各自的获胜期望;

对两个队伍的战局表现进行评价,计算每位玩家的评价得分:

根据两个队伍的胜负情况以及每个队伍的获胜期望,计算队伍积分;根据队伍积分和每位玩家的评价得分,计算和更新每位玩家的积分。

另一方面,还提供一种针对moba类游戏的玩家在线匹配系统,包括:

队伍匹配模块,用于获取每位玩家的积分,将积分相近的2n名玩家匹配到同一个游戏房间,n正整数;以及,将所述2n名玩家分为积分总和接近的两个阵营,每个阵营n名玩家组成一个队伍;

积分更新模块,用于根据每名玩家对于所选择英雄的熟练度,以及每个队伍所选择英雄的阵容,计算两个队伍各自的获胜期望;对两个队伍的战局表现进行评价,计算每位玩家的评价得分:根据两个队伍的胜负情况以及每个队伍的获胜期望,计算队伍积分;根据队伍积分和每位玩家的评价得分,计算和更新每位玩家的积分。

从以上技术方案可以看出,本发明实施例具有以下优点:

匹配积分系统运用elo算法计算时,同一方的5名玩家积分变化量是完全相同的,并不能区分每名玩家表现的优劣。而本发明技术方案,考虑到了每个玩家的占据表现评价得分,计算出的积分每名玩家都是不同的,胜利方表现好的玩家会获得更多的积分,表现不好的玩家会获得较少的积分;失败方表现好的玩家会扣除较少的积分,表现不好的玩家会扣除较多的积分。使每名玩家的积分更快地向自己的真实水平靠拢,这样就为玩家下次匹配提供了更准确的数值依据。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例提供的一种针对moba类游戏的玩家在线匹配方法的流程示意图;

图2是本发明实施例提供的一种针对moba类游戏的玩家在线匹配系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面通过具体实施例,分别进行详细的说明。

本发明实施例提供一种针对moba类游戏的玩家在线匹配系统以及方法。

本发明的一个实施例中:

在线匹配系统分可为两个模块,第一个是队伍匹配模块,用于根据玩家积分进行在线匹配,将玩家匹配为两个队伍进行对战;第二个是积分更新模块,用于对战结束后根据玩家表现更新玩家的积分,以便进行下一局的匹配;这两个模块交替运作。

队伍匹配模块可分为两个功能单元,执行两个步骤:第一步,由房间匹配单元将2n名积分相近的玩家匹配到同一房间,具体操作为设定每个房间的积分阈值为b,第一个玩家进入房间后,只有与房间内玩家积分均值相差不超过b的其它玩家才能被匹配入房间,直到房间满2n人为止。第二步,由队伍匹配单元将2n名玩家分为两个阵营,组成两个队伍,使两阵营总分最接近。其中,n为正整数,本文中以n等于5,共10名玩家为例。可选的,一种队伍匹配的简单方法是交替匹配,即积分自高到低排名第一、四、五、八、九的玩家隶属a队,第二、三、六、七、十的玩家隶属b队,当然,也可以用严格的分类算法将双方分组。

积分更新模块可分为多个单元,执行以下步骤:

第一步,为系统计算双方的获胜期望:

elo算法对胜利期望的衡量是基于实际战力的,所以要根据双方阵容计算队伍的实际战力。玩家选择英雄后系统应该先对个人战力做一次校正,一般来说拿手英雄胜率会高于平均胜率,不常用英雄胜率会低于平均胜率。但是单英雄胜率的样本往往不大,在沿袭lol(英雄联盟)英雄单系成长的游戏中,担任同一位置的一类英雄相似度较高,可以作为一个整体来考虑。

设英雄熟练度校正系数为α,校正区间为[αl,αh],当前英雄所属位置胜率为wr,玩家总胜率为wr,则α服从:

阵容选择也会改变队伍的实际战力,lol系不支持位置变化,所以队伍构成的最优解就是每种英雄例如ad(物理系伤害型英雄)、ap(法术系伤害型英雄)、肉、野、辅各一名,其余构成严格说来都不是合理阵容。阵容中每个位置的重要程度是不同的,用权重向量来表示w=[wad,wap,wt,wj,ws],英雄位置重叠时发育会受到影响且导致其他位置缺失,假设此时只能获得部分权重,折扣因子为η,根据最优解约束有:

η×max{wad,wap,wt,wj,ws}<min{wad,wap,wt,wj,ws}

对于每个玩家,系统检测其所选英雄的对应位置,玩家分到的权重即该位置的权重,如果位置重叠则乘以折扣因子,权重校正系数为:

例如阵容中有多个ad英雄,则每个人的战力权重为ηwad。队伍总实际战力等于:

根据elo算法的思路,将所有队伍的实际战力看成logistic分布,则实际战力为scorer_a的队伍战胜scorer_b的队伍的期望是:

第二步,为系统对战局表现进行客观评价,得出战场评分:

传统moba的评价算法对kda(击杀死亡助攻得分)依赖很大,尤其是lol单局人头数很少,依赖性更强。但是随着moba朝快节奏发展,冲突爆发更早更激烈,kda受死亡数影响较大的缺点逐渐显现,评分算法考虑的因素也更为全面。我们提出的评价算法分三大方面:个人操作得分、团队贡献得分、特殊贡献得分。

个人操作得分,也称为击杀破塔得分,可包含kda、连杀得分、多杀得分、破塔得分和控龙得分,机器提取这些数据记作x1=[x11,x12,x13,x14,x15],权重向量为w1;团队贡献得分包含资源输出比值、参战率,记作x2=[x21,x22],权重向量为w2;特殊贡献得分包括承受伤害占比、治疗量占比、惊险救治得分、决胜控制得分与团控得分,记作x3=[x31,x32,x33,x34,x35],权重向量为w3。

特别地,对于击杀破塔得分,为了降低极端kda数值的扰动,可用生长函数的变形对其进行饱和校正,具体函数为:

最终得分为三部分得分的加权平均,加权向量为w,为了直观表达最后的得分会放大w0倍,机器根据以下总公式计算每位玩家的评价得分:

evaluationscore=w0w[g(w1x1t),w2x2t,w3x3t]t

第三步,为系统计算玩家的积分变化:

电竞比赛一般不存在平局,所以胜负结果是二元的0或1,记为s。根据elo算法,对于队伍a,赛后队伍积分变化量为k(sa-ea)。

需要解决的问题是将队伍积分变化映射到个人积分上,目前将两者完全等同的做法非常粗暴。首先电竞比赛受发挥影响很大,要避免玩家异常发挥造成的积分震荡,尤其这种异常变化会影响匹配结果,进而对其他玩家的积分造成影响。一局比赛后,发挥越稳定的玩家其表现出的水平越接近真实水平,所以应该获得较大幅度的积分变化。

假设玩家的发挥服从正态分布n(μ,σ),具体表现为每局的战场评分evaluationscore,运用贝叶斯原理对正态分布的方差进行估计,以衡量发挥的稳定性。将玩家较大样本的历史表现作为其先验分布,正态分布的共轭分布仍是正态分布,所以设先验分布服从n(θ,ξ),其近期表现作为分布抽样n(ζ,τ),将后验分布视为真实分布。现通过估算ξ和τ来确定σ,设历史表现取样本量为n局游戏的战场评分,近期表现取样本量为m局游戏的战场评分,则ξ和τ的无偏估计为:

后验分布的方差为:

用σ表示玩家发挥的稳定程度,σ值越大发挥越不稳定,设稳定性的标准值为σ0,稳定性校正系数表示为:

心理学表明,人对于损失的敏感度远大于收益,所以对于胜利方的成员,没有必要进一步校正积分,玩家获得各自的γk(s-e)即可。

对于失败方,英雄熟练度不足和阵容搭配不当都是导致实际战力低于匹配战力的原因,所以这部分玩家应失去更多的积分,而选择拿手英雄兼顾阵容搭配的玩家失去较少的积分,总积分更新公式如下:

其中,score为玩家的评价得分,α为玩家使用的英雄的熟练度校正系数,β为根据玩家使用的英雄所属位置是否与队友重叠而确定的权重校正系数。

玩家的积分更新后,可以用新的积分进行下一局匹配,找到更为势均力敌的对手。

值得说明的是,以上算法中各参数的取值可以但不限于如下面表1所示:

表1

基于上文所述,本发明实施例提供一种针对moba类游戏的玩家在线匹配方法,如图1所示,该方法可包括:

11、获取每位玩家的积分,将积分相近的2n名玩家匹配到同一个游戏房间,n正整数;

12、将所述2n名玩家分为积分总和接近的两个阵营,每个阵营n名玩家组成一个队伍;

13、根据每名玩家对于所选择英雄的熟练度,以及每个队伍所选择英雄的阵容,计算两个队伍各自的获胜期望;

14、对两个队伍的战局表现进行评价,计算每位玩家的评价得分:

15、根据两个队伍的胜负情况以及每个队伍的获胜期望,计算队伍积分;根据队伍积分和每位玩家的评价得分,计算和更新每位玩家的积分。

可选的,步骤13具体可包括:

设英雄熟练度校正系数为α,校正区间为[αl,αh],当前英雄所属位置胜率为wr,玩家总胜率为wr,则α服从:

根据阵容中每个位置的重要程度分配权重w,检测每个队伍中每个玩家所选英雄的对应位置,按照位置是否重叠确定权重校正系数β,若位置单一则β等于1,若位置重叠则β等于折扣因子η,其中,ηwmax<wmin,wmax和wmin分别是最大权重和最小权重;

计算每个队伍的实际战力为:其中,m为队伍中玩家的个数,i=1,2……m,scorei为第i名玩家的战力;

则战力为scorer_a的队伍a战胜战力为scorer_b的队伍b的获胜期望是:

可选的,步骤14具体包括:

根据以下总公式计算每位玩家的评价得分:

score=w0w[g(w1x1t),w2x2t,w3x3t]t

其中,x1为个人操作得分,w1为个人操作得分的权重向量,x2为团队贡献得分,w2为团队贡献得分的权重向量,x3为特殊贡献得分,w3为特殊贡献得分的权重向量,w为个人操作得分、团队贡献得分和特殊贡献得分这三个部分的权重向量,w0为预设值。

可选的,步骤15中“根据两个队伍的胜负情况以及每个队伍的获胜期望,计算队伍积分”,可包括:

计算队伍积分为k(s-e),其中,e为队伍的获胜期望,k为系数,s为胜负得分,根据队伍胜或负s等于1或0;

可选的,步骤15中“根据队伍积分和每位玩家的评价得分,计算和更新每位玩家的积分”,可包括:

根据每名玩家n局游戏的评价得分,计算该玩家的稳定程度和稳定性校正系数γ;

对于获胜队伍的玩家,计算每名玩家的积分为的γk(s-e);

对于失败队伍的玩家,计算每名玩家的积分为:

其中,score为玩家的评价得分,α为前文所述玩家使用的英雄的熟练度校正系数,β为前文根据玩家使用的英雄所属位置是否与队友重叠而确定的权重校正系数。

基于上文所述,本发明实施例还提供一种针对moba类游戏的玩家在线匹配系统,如图2所示,该系统可包括:

队伍匹配模块20,用于获取每位玩家的积分,将积分相近的2n名玩家匹配到同一个游戏房间,n正整数;以及,将所述2n名玩家分为积分总和接近的两个阵营,每个阵营n名玩家组成一个队伍;

积分更新模块30,用于根据每名玩家对于所选择英雄的熟练度,以及每个队伍所选择英雄的阵容,计算两个队伍各自的获胜期望;对两个队伍的战局表现进行评价,计算每位玩家的评价得分:根据两个队伍的胜负情况以及每个队伍的获胜期望,计算队伍积分;根据队伍积分和每位玩家的评价得分,计算和更新每位玩家的积分。

其中,队伍匹配模块30,可包括:

房间匹配单元201,用于获取每位玩家的积分,将积分相近的2n名玩家匹配到同一个游戏房间,n正整数;以及,队伍匹配单元202,用于将所述2n名玩家分为积分总和接近的两个阵营,每个阵营n名玩家组成一个队伍;

积分更新模块30,可包括:

获胜期望计算单元301,用于根据每名玩家对于所选择英雄的熟练度,以及每个队伍所选择英雄的阵容,计算两个队伍各自的获胜期望;

评价得分计算单元302,用于对两个队伍的战局表现进行评价,计算每位玩家的评价得分:

队伍积分计算单元303,用于根据两个队伍的胜负情况以及每个队伍的获胜期望,计算队伍积分;

玩家积分计算更新单元304,用于根据队伍积分和每位玩家的评价得分,计算和更新每位玩家的积分。

可选的,所述积分更新模块30包括:

获胜期望计算单元301,用于计算队伍的获胜期望,包括:

设英雄熟练度校正系数为α,校正区间为[αl,αh],当前英雄所属位置胜率为wr,玩家总胜率为wr,则α服从:

根据阵容中每个位置的重要程度分配权重w,检测每个队伍中每个玩家所选英雄的对应位置,按照位置是否重叠确定权重校正系数β,若位置单一则β等于1,若位置重叠则β等于折扣因子η,其中,ηwmax<wmin,wmax和wmin分别是最大权重和最小权重;

计算每个队伍的实际战力为:其中,m为队伍中玩家的个数,i=1,2……m,scorei为第i名玩家的战力;

则战力为scorer_a的队伍a战胜战力为scorer_b的队伍b的获胜期望是:

可选的,所述积分更新模块30包括:

评价得分计算单元302,用于根据以下总公式计算每位玩家的评价得分:

score=w0w[g(w1x1t),w2x2t,w3x3t]t

其中,x1为个人操作得分,w1为个人操作得分的权重向量,x2为团队贡献得分,w2为团队贡献得分的权重向量,x3为特殊贡献得分,w3为特殊贡献得分的权重向量,w为个人操作得分、团队贡献得分和特殊贡献得分这三个部分的权重向量,w0为预设值。

可选的,所述积分更新模块30包括:

队伍积分计算单元303,用于计算队伍积分为k(s-e),其中,e为队伍的获胜期望,k为系数,s为胜负得分,根据队伍胜或负s等于1或0;

可选的,所述积分更新模块30包括:

玩家积分计算更新单元304,用于根据每名玩家n局游戏的评价得分,计算该玩家的稳定程度和稳定性校正系数γ;对于获胜队伍的玩家,计算每名玩家的积分为的γk(s-e);对于失败队伍的玩家,计算每名玩家的积分为:

其中,score为玩家的评价得分,α为前文所述玩家使用的英雄的熟练度校正系数,β为前文根据玩家使用的英雄所属位置是否与队友重叠而确定的权重校正系数。

综上,本发明实施例公开了一种针对moba类游戏的玩家在线匹配方法和系统,从以上技术方案可以看出,本发明实施例具有以下优点:

匹配积分系统运用elo算法计算时,同一方的5名玩家积分变化量是完全相同的,并不能区分每名玩家表现的优劣。而本发明技术方案,考虑到了每个玩家的占据表现评价得分,计算出的积分每名玩家都是不同的,胜利方表现好的玩家会获得更多的积分,表现不好的玩家会获得较少的积分;失败方表现好的玩家会扣除较少的积分,表现不好的玩家会扣除较多的积分。使每名玩家的积分更快地向自己的真实水平靠拢,这样就为玩家下次匹配提供了更准确的数值依据。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

上述实施例仅用以说明本发明的技术方案,而非对其限制;本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1