用于优化十人在线竞技游戏匹配机制的方法与流程

文档序号:20836823发布日期:2020-05-22 16:58阅读:338来源:国知局
用于优化十人在线竞技游戏匹配机制的方法与流程

本发明涉及游戏匹配机制优化领域。

技术背景

随着生活节奏的加快,快节奏的在线竞技游戏已经成为人们特别是青少年日常生活的一部分,适当的游戏有益身心健康。然而,目前的匹配机制不完善,存在着双方玩家的游戏水平经常差距较大和玩家争抢角色职业的问题,造成很不好的对抗体验,背离了游戏服务于生活的目的,同时也阻碍着游戏产业前进的步伐。

当下,在线竞技游戏发展前景良好,人群基数必定会随着时间的推移而迅速增加。因此,如何优化匹配机制,解决双方玩家实力差距较大的现象,降低玩家角色职业选择冲突的概率,提高玩家的游戏体验成为游戏开发商急需解决的问题。



技术实现要素:

本发明的目的在于一种用于优化十人在线竞技游戏匹配机制的算法方法,可有效地提升玩家的对抗体验,增加竞技游戏的趣味性,促进游戏产业的发展。

为达到以上目的,本发明采用的技术方案是:

一种用于优化十人在线竞技游戏匹配机制的算法方法,其特征在于,包括以下步骤:

1)玩家游戏信息的采集

采集某个时间进入的每名玩家最近n场的游戏信息,这里游戏信息指两个方面,一是最近n场游戏的评分score,二是最近n场游戏的角色职业选择情况;提供给步骤2);

2)评分的1-d卷积

用1行n列1-d模板分别对每名玩家的n场评分score进行卷积运算,所述模板的系数与每名玩家的n场评分score一一对应,得出与步骤1)中匹配人数相等的卷积运算结果,记卷积结果为g;所有玩家执行同样操作后,步骤1)中每名匹配玩家都有一个g值;提供给步骤3)、步骤6);

3)评分的区间设定

从步骤2)中的所有匹配玩家随机抽样得到十名玩家的g值,即抽取十个g值,利用图4模板对该十个g值进行1-d卷积,记卷积结果为a,设定a±20%为评分区间;提供给步骤6);

4)角色职业的函数映射

分别对步骤1)中匹配的所有玩家执行同样操作,对步骤1)中每名玩家n场游戏角色职业的选择进行函数映射,映射函数形式为t=e(角色职业),其中e为函数关系,t为映射结果,五类职业中每种职业的t具有唯一性,对相同的t进行统计,得到每个t对应的数量d,即图5t-d表,步骤1)中匹配的所有玩家都有一个各自的图5t-d表;提供给步骤5);

5)玩家组合的生成

通过最大值函数得到步骤4)中每名玩家d(d1,d2,d3,d4,d5)值的最大值dmax,其对应的t为000、001、010、011、100中的一个,记为tdmax;算术匹配五个不同的tdmax为一个玩家组合,遍历步骤1)所有匹配玩家,生成五人一组的玩家组合,即得到初步玩家组合,提供给步骤6)筛选;

6)最终玩家组合的得出

将步骤5)得出的初步玩家组合中的每一组玩家的g值记为g1,g2,g3,g4,g5,计算gave=(g1+g2+g3+g4+g5)/5,若gave处在步骤3)中区间,那么该组玩家组合即为最终玩家组合。

步骤5)中,所述算数匹配算法实现五个不同tdmax的组合,由以下步骤实现:

步骤5.2.1,将1)中匹配的所有玩家的tdmax组成一个队列,队列的长度与玩家数量一致,设定一个标志p指向队列的第一名玩家的tdmax。

步骤5.2.2,利用p取出第一名玩家的tdmax,记为t1,保留t1,第一名玩家的tdmax从队列中消失,随后p向后移动一位,指向第二名玩家的tdmax。

步骤5.2.3,再次利用p取出第二名玩家的tdmax,若t1与第二名玩家的tdmax不同,则保留第二名玩家的tdmax,记为t2,t2与t1形成组合,第二名玩家的tdmax也从队列中消失;否则,将第二名玩家的tdmax退回队列的原位置。将p后移一位。

步骤5.2.4,重复步骤5.2.3,得到t3,t4,t5,那么t1,t2,t3,t4,t5对应的5名玩家即为一组玩家组合。

步骤5.2.4-1如果p指向队列最后一名玩家的tdmax,即第一次遍历结束,就发现无法组成一组玩家组合,那么将已经取出的玩家、该队列剩余的玩家和下一批进入匹配的玩家重新执行本发明所有流程,不执行步骤5.2.5、步骤5.2.6以及步骤6);如果第一次遍历之后至少生成了一组玩家组合,则继续执行步骤5.2.5、步骤5.2.6以及步骤6)。

步骤5.2.5,此时再次将p移动指向队列剩余玩家中第一名玩家的tdmax,重复以上步骤5.2.1至步骤5.2.4步骤即可实现遍历所有玩家这一目标。

步骤5.2.6,当p指向队列最后一名玩家的tdmax时,发现已经无法再得到一组t1,t2,t3,t4,t5组合,那么将已经取出的玩家、该队列剩余的玩家、步骤6)中不满足步骤3)中评分区间的玩家组合和下一批进入匹配的玩家重新执行本发明所有流程。

采用本发明可以有效地减小双方玩家平均游戏水平差距,并且降低了一方玩家角色职业选择发生冲突的概率,提高了双方玩家的游戏体验。本发明意义:一方面,对于玩家个人来说,在有限的时间里更加充分地放松身心,增加了玩家的游戏体验,符合游戏服务于生活的产业宗旨,同时也一定程度上加快了和谐社会的建设步伐。另一方面,多人在线竞技游戏随着时间的推移,其人群基数必定不断扩大。而本发明的使用,促进了该类游戏在游戏市场发展和壮大,间接地推动了整个游戏产业的发展。

附图说明

图1是本发明的操作流程示意图

图2是实施例的1行30列的1-d模板系数图

图3是实施例的1行30列1-d模板示意图

图4是实施例的1行10列滤波模板

图5是实施例的t-d示意图

图6是本发明步骤5)流程示意图

具体实施方式

实施例

一种用于优化十人在线竞技游戏匹配机制的算法方法,其特征在于,包括以下步骤:

1)玩家游戏信息的采集

采集在某匹配时间之间(本实施例5s-60s)进入的每名玩家最近若干n场(本实施例n设定30场)的游戏信息,这里游戏信息指两个方面,一是最近n场(实施例30场)游戏的评分score,二是最近n场(实施例30场)游戏的角色职业选择情况;提供给步骤2);

2)评分的1-d卷积

用图3中的1行30列1-d模板分别对每名玩家的30场评分score进行卷积运算,所述模板的系数与每名玩家的30场评分score一一对应,得出与步骤1)中匹配人数相等的卷积运算结果,记卷积结果为g;所有玩家执行同样操作后,步骤1)中每名匹配玩家都有一个g值;提供给步骤3)、步骤6);

3)评分的区间设定

从步骤2)中的所有匹配玩家随机抽样得到十名玩家的g值,即抽取十个g值,利用图4模板对该十个g值进行1-d卷积,记卷积结果为a,设定a±20%为评分区间;提供给步骤6);

4)角色职业的函数映射

分别对步骤1)中匹配的所有玩家执行同样操作,对步骤1)中每名玩家三十场游戏角色职业的选择进行函数映射,映射函数形式为t=e(角色职业),其中e为函数关系,t为映射结果,五类职业中每种职业的t具有唯一性,对相同的t进行统计,得到每个t对应的数量d,即图5t-d表,步骤1)中匹配的所有玩家都有一个各自的图5t-d表;提供给步骤5);

5)玩家组合的生成

通过最大值函数得到步骤4)中每名玩家d(d1,d2,d3,d4,d5)值的最大值dmax,其对应的t为000、001、010、011、100中的一个,记为tdmax;算术匹配五个不同的tdmax为一个玩家组合,遍历步骤1)所有匹配玩家,生成五人一组的玩家组合,即得到初步玩家组合,提供给步骤6)筛选;

6)最终玩家组合的得出

将步骤5)得出的初步玩家组合中的每一组玩家的g值记为g1,g2,g3,g4,g5,计算gave=(g1+g2+g3+g4+g5)/5,若gave处在步骤3)中区间,那么该组玩家组合即为最终玩家组合。

各步骤以下详述之

步骤2)中,每名玩家评分的卷积运算:图3模板的尺寸应和游戏场次一致,即为30。另外,根据时间上越近的游戏场次与当前游戏水平相关度越大的特点,图3模板系数和步骤1)中的每名玩家的30场评分一一对应指的是图3模板由大到小的系数和时间上由近及远的每名玩家的30场评分一一对应。

具体方法为:

通过图2模板卷积得出的g值应该反映出步骤1)每名匹配玩家当前的游戏水平。而当前游戏水平和时间点越近的评分相关度必然越高,和时间点越远的评分相关度必然越低,这是符合逻辑的。为了实现以上逻辑,将步骤1)中每名玩家的30场评分按照时间点由远及近的顺序记为第1场、第2场......第n场......第30场,与图3模板系数f(1)、f(2)......f(n)......f(30)相对应,f(n)的值由下式确定:

f(n)=(1/2)f(n-1)+(1/4)f(n-2)+(1/8)f(n-3)+......+(1/2n-1)f(1)+1(f(1)=1,n=2,3,4......30),最终确定图2也就是图3中模板系数的值。

score(n)表示第n场的评分,则对于步骤1)每名匹配玩家g=(1/(f(1)+f(2)+......+f(30)))*(f(1)*score(1)+f(2)*score(2)+......+f(30)*score(30))。

步骤3)意义:

步骤3)中的卷积结果a代表了步骤1)中所有匹配玩家的平均水平,为实现这一目标,可进行如下步骤:

步骤3.1,记步骤3)该十名玩家的g值为g0,g1,......g9,图4模板的系数分别为a0,a1,a2......a9;

步骤3.2,g0和a0,g1和a1......g9和a9一一对应;

步骤3.3,将图4模板系数归一化:记t=g0+g1+......+g9,

通过计算a0=g0/t,a1=g1/t,......a9=g9/t确定图4模板系数;

步骤3.4,之后a由下式确定:a=g0*a0+g1*a1+......+g9*a9。

步骤4):

所述角色职业,可总体分为五类,这与十人在线竞技游戏一方的玩家数量相一致。本实施例是针对十人在线竞技游戏而提出的,玩家分为两个阵营,每个阵营为五人,每个人都有其游戏任务,对应五种不同职业。

步骤4)中,t采取三位二进制编码,五个不同的t分别对应于000、001、010、011、100,对应于d1、d2、d3、d4、d5。

t采取000001010011100这五个三位二进制数进行编码,分别和五种角色职业一一对应,因此函数自变量和因变量的对应关系e为单对单。

步骤1)中匹配的所有玩家都各有一张图5所示的匹配自身的t-d表,确切反应最近三十场次玩家对各职业的使用频率,d值越大,代表玩家更青睐于对应职业,d值越小,代表玩家更抵触对应职业。

步骤5):

所述的算术匹配,其特点是,可以从与步骤1)中匹配玩家个数相一致的所有tdmax中匹配五个不同的tdmax作为一组玩家组合且直到剩余玩家无法满足五个不同的tdmax这一条件为止。

假设现在步骤1)匹配了101名玩家,他们各自dmax对应了各自的tdmax(dmax对应的t记为tdmax),也就是说,共有101个tdmax,

此时在这101个tdmax中,可能甚至没办法找到五个不同的tdmax组成一组,也有可能找到一组两组三组......但是最多找到二十组,因为必然受进场总人数101限制的。无论如何都会剩余至少一名玩家无法参与组合,之后只需把这些没法组合的玩家和下一轮匹配的玩家再次进行所有流程即可。

步骤1)中匹配的玩家数量和步骤5)生成的tdmax的数量一致,该算数匹配算法实现五个不同tdmax的组合,由以下步骤实现:

步骤5.2.1,将1)中匹配的所有玩家的tdmax组成一个队列,队列的长度与玩家数量一致,设定一个标志p指向队列的第一名玩家的tdmax。

步骤5.2.2,利用p取出第一名玩家的tdmax,记为t1,保留t1,第一名玩家的tdmax从队列中消失,随后p向后移动一位,指向第二名玩家的tdmax。

步骤5.2.3,再次利用p取出第二名玩家的tdmax,若t1与第二名玩家的tdmax不同,则保留第二名玩家的tdmax,记为t2,t2与t1形成组合,第二名玩家的tdmax也从队列中消失;否则,将第二名玩家的tdmax退回队列的原位置。将p后移一位。

步骤5.2.4,重复步骤5.2.3,得到t3,t4,t5,那么t1,t2,t3,t4,t5对应的5名玩家即为一组玩家组合。

步骤5.2.4-1如果p指向队列最后一名玩家的tdmax,即第一次遍历结束,就发现无法组成一组玩家组合,那么将已经取出的玩家、该队列剩余的玩家和下一批进入匹配的玩家重新执行本发明所有流程,不执行步骤5.2.5、步骤5.2.6以及步骤6);如果第一次遍历之后至少生成了一组玩家组合,则继续执行步骤5.2.5、步骤5.2.6以及步骤6)。

步骤5.2.5,此时再次将p移动指向队列剩余玩家中第一名玩家的tdmax,重复以上步骤5.2.1至步骤5.2.4步骤即可实现遍历所有玩家这一目标。

步骤5.2.6,当p指向队列最后一名玩家的tdmax时,发现已经无法再得到一组t1,t2,t3,t4,t5组合,那么将已经取出的玩家、该队列剩余的玩家、步骤6)中不满足步骤3)中评分区间的玩家组合和下一批进入匹配的玩家重新执行本发明所有流程。

所述最大值函数形式为dmax=f(d1,d2,d3,d4,d5),作用是得到每名玩家d1,d2,d3,d4,d5中的最大值或者最大值之一。f是函数对应关系,其运算法则由以下步骤组成:

步骤5.1.1,首先dmax=d1,即假定d1是最大值或者最大值之一。

步骤5.1.2,将dmax与d2相比较,若d2大于dmax,则令dmax=d2,否则dmax值不变。

重复步骤步骤5.1.2,dmax依次和d3,d4,d5比较,最终得到d1,d2,d3,d4,d5中的最大值或者最大值之一dmax。

举例某名玩家,他有一份图5所示的t-d表,这份表中有5个d值,记为d1,d2,d3,d4,d5,5个d值中的最大值或者最大值之一记为dmax

那应该怎么确定dmax呢?

假设此玩家的d值分别是45665,

假定dmax=4,4相当于d1,dmax和d2比较,即4和5比较,因为5>4,所以更新dmax,让dmax=5;dmax和d3比较,即5和6比较(因为dmax已经更新了),因为6>5,继续更新dmax,dmax=6;dmax和d4比较,即6和6比较,因为6=6,不更新dmax,dmax仍然是6;dmax和d5比较,即6和5比较,因为5<6,不更新dmax,dmax仍然是6;

因此dmax=6,即d3,对应的t为010。

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