查看原文
其他

程序丨《王牌英雄》匹配系统分析:修复常见漏洞

2017-11-27 潘阿杰 Gad-腾讯游戏开发者平台

翻译:潘阿杰(一个大写的萌比)

审校:周青荣(11111)


目前我们正在重新制作王牌英雄的整个匹配系统,菜单和活动系统,拥有重制版匹配系统的新版本王牌英雄在Steam上叫做Galactron,这是一个巨大的工程尤其当这个匹配系统高度复杂的时候。目前为止我们已经完成一系列测试版本并于上周将它开放给大众正式上线运行了48小时,48小时后我们下架了该版本,并对运行结果进行分析,读取玩家的反馈意见并且修复漏洞。今天我想与大家讨论一些最受关注的问题。


我将在未来的一篇博文中介绍一下新的匹配机制具体是如何运作,但今天我们只讨论上周的测试版本中遇到的一些问题。


关于强制退出和中途迟加入


这应该是测试版本中饱具争议的一个话题,中途加入或许是老版本的王牌英雄最受玩家诟病的一点,所以我们取消了该功能,在新版本中玩家不会被匹配到一场正在进行中的游戏。同时我们新增了重新连接的功能方便让因为网络连接异常导致的掉线玩家重新回到游戏中。因此如果玩家中途离开了比赛,那么他只能重新连接回同一场比赛中而不能加入到其它比赛。很多玩家表示对此调整很满意,但仍有一小部分声音强烈反对取消中途加入功能和加重对游戏中途强制退出的惩罚。


由于对游戏期望不同,我们很难做到同时让各方都满意。一些玩家建议我们提供两种游戏模式:一种是允许强制退出和迟加入而另一种不允许。然而这个解决方式并不适用于本游戏,因为我们的玩家基数还不够大到分流到两种模式。如果我们有像英雄联盟那样的游戏玩家群体的数量或许可以尝试,但以我们现有的玩家数量并不能承受分离开,否则的话无论哪一种模式的匹配机制都会变得很糟糕。


讨论完反馈的意见后,我们继续看一些比较严峻的问题。玩家普遍抱怨在没有中途迟加入功能后,如果某个玩家离开了比赛而没有重新连接的话,那么该场比赛将会保持3vs2直到比赛结束,然而在旧版本中系统会自动匹配进一个新的玩家来替换退出的那个玩家。尽管这样的替换机制也不会经常发生:在旧版本的匹配系统中也并不是全都是3vs3。我们对这种情况统计了数据,一起来看看:



王牌英雄匹配系统分析


如图显示为每场比赛每分钟统计一次玩家的数量,新版本上线当天百分之83的时间里都是完整对的6人次比赛,相比较以前的旧匹配制度中只有百分之74的时间是完整比赛。


很明显在新版本一天中为3v3比赛的时间明显高于旧版本的匹配系统,换句话说,玩家对于中途离开比赛可能会导致比赛持续不完整的担心是多余的,从新版本的总体统计结果来看可得知完整比赛的次数比以前更多了。因此可以猜想出玩家们不喜欢强制退出带来的惩罚,同时有些玩家对于游戏会因为中途离开而导致不完整的抱怨也是不公正的评价。


高网络延时


玩家对于新版本的另一个主要抱怨是网络延时太高。然而新版本理应可以降低平均网络延迟,为什么玩家普遍反应却偏高了呢。让我们再次用统计的数据来看事实是否如此。



王牌英雄匹配系统分析


如图所示为统计的每场比赛每分钟的网络延迟时间。时间数值越小越好,然而新版本中表现得很不好。


这次统计的数据证实了玩家们抱怨的问题确实存在:新版本中的平均网络延迟确实有明显提升。这是我们急需解决的一个重大问题,同时这个结果也让我们开发团队很惊讶:新版本中运用了很多先进的技术为玩家提供更好的匹配体验,然而为什么没有生效呢?


过去几天我们内部对这个问题开展了广泛的讨论和研究并且得出一些推测,但还没有形成最终的答案。同时我们发现新版本匹配系统似乎并没有收集到足够的网络数据包。当玩家在等待匹配的时候服务器会连接每一个其它同样在等待的玩家,我们期望会返回至少百分之75的所有可能连接,但实际上只有大概百分之50左右,这意味着新版本没有足够的数据来顺利匹配玩家。查明这种现象的原因已经成为我们目前的首要任务。


另一种可能是新版本在匹配时过多考虑玩家的技术水平,服务器基于网络连接数和玩家水平作为标准来匹配出最合适的比赛。它不能在所有时间段都完美地匹配玩家所以会计算出一个平衡点。我们可以通过调整每个标准所占的分量来改变网络连接延迟问题,因为目前来看在考虑匹配因素时玩家水平可能太被看重了。


最后一个问题是我们在寻找一个方式来处理网速很差的玩家。当你和某个在地球另一端的玩家一起对局的时候可能会有高网络延迟,然而有时候你会遇到你的对手和谁都有很高的网络延迟,甚至是和他身边的人。无论新版本服务器将这类网络环境很差的玩家匹配给谁,游戏的网络连接体验都会很差。我们还没有决定如何处理这种现象,一种方式是让这类玩家只匹配给其它网络环境也很差的玩家并且让他们不参与进其它正常的匹配,但这会在排行榜中造成一种奇怪的排名因为他们总是和相同的人对局。等以上其它问题被修复后我们将继续关注这类玩家群体并寻找解决方法。


技术水平匹配


这是新版本目前看来做得比较成功的一方面:匹配得非常平衡。虽然仍然存在一些双方玩家技术水平差异很大的情况,但这普遍是因为那些技术水平悬殊的玩家事先组好队等待匹配造成的。我们不可能去拆散这样的组队所以这个从根源上不能解决,我们能做的就是让这样组队的玩家和其它也是类似结构的队伍匹配在一起,或者和其它总体技术水平分数差不多的队伍匹配。事实证明新版本确实经常做了这样的操作,玩家自行组队匹配另外的队伍也变得比以前更加频繁。


如果可以把这类结果和日益剧增的统计数据进行比较是很好的一件事,但不幸的是由于我们的疏忽这些并没有在新版本中被记录下来。我们仅仅收集了一些常规的数据比如某只队伍击败对手的次数,或者输掉的队伍没有摧毁任何炮塔的次数。可以把匹配情况的数据在新版本中呈现将会是很棒的一件事,所以在上个版本中没有记录这些的确为一件遗憾的事情。


等待时间


我们注意到有一些玩家抱怨说在新版本里等待匹配的时间变长了。匹配系统大约每隔5分钟进行一次匹配,也就是说如果你恰好在匹配系统准备进行新一轮匹配之前加入等待那么将很快成功分配,但如果恰好在之后加入那就得等满5分钟进行下一轮了。平均下来等待匹配的时间大约是2.5分钟,这和旧版本相比一点也不久,在以前的匹配系统平均大约需要等待4分钟才能开始进入比赛,甚至可能更久如果不是恰好赶在这一轮匹配开始之前加入等待的话。


其实要减少等待时间的话也很简单:我们可以把原来的每隔5分钟一次匹配运作调整为4分钟一次,但是我们不确定是否应该这样做:减少等待时间意味着匹配质量的下降。我们需要在相应速度和匹配质量之间寻求一个平衡点,目前为止我们认为5分钟是最佳的选择。如果在将来继续看到很多关于这个的投诉反馈我们将重新考虑并有可能将它调整为4分钟,因此请尽情在下方评论区发表你的意见和建议吧。


游戏崩溃


我们收到了一些新版本中游戏崩溃的错误报告,经过调查后得出目前为止大部分崩溃是由于驱动问题和从Steam上下载了不完整的游戏包造成的,这个稍后可以运行Steam的游戏下载包完整性检测工具来修复。


至于驱动问题,根据目前有数据的崩溃案例分析来看我的猜测是玩家在按了alt+tab组合键后造成的,很可惜我们的崩溃转储日志没有记录在崩溃前是否按下了alt+tab组合键,因此还不能得出最终结论。


如果真的是由于alt+tab组合键造成的,那么你的屏幕显卡驱动是不正常的。解决方法很简单,在最大化窗口界面运行游戏而不是在全屏模式下。最大化窗口模式下游戏界面仍然包含了整个屏幕,这和全屏模式相比看起来视觉没有什么区别。最大化窗口模式下按alt+tab组合键更加稳定并且相应速度更快。一般来说我们建议绝不要使用全屏模式来运行此游戏,除非最大化窗口模式给你带来困扰。我们可能会给游戏设置选项重新命名来提示这一点,因为可能还有很多玩家不清楚最大化窗口是什么意思。


我们仍然会继续研究游戏崩溃的错误报告日志,如果发现了是由游戏本身原因引起的崩溃,那么我们会第一时间修复它的。


漏洞


除了上面提到的几个热议问题,新版本中还存在着一些随机出现的游戏漏洞,其中大部分漏洞现在已经被我们修复了,或者正在被修复中。一些典型的漏洞如下:


全球聊天功能一半时间不能正常使用;


在基础教程的其中一个菜单页面不支持任何按钮操作,如果你恰好进入这个页面了就什么也不要操作等待动画结束吧(抱歉!);


一些菜单的页面对控制器支持不是很好,只有键盘+鼠标起作用。


以上就是王牌英雄新版本的最新情况反馈,如果你有更多的疑问,投诉或建议请务必在下方评论区发表出来。我们计划在未来1.5周完成新的版本,希望那个版本能够良好运行不至于我们再次关闭服务器下架游戏来调整,视最终运行效果而定,目前最主要的是新版本需要更多的完善来推出新的升级版。


【版权声明】
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权。


----------------------

今日推荐


探索游戏中的抽取算法

大咖答疑专场:游戏开发中的物理系统

ET开源服务器框架跨平台部署Centos7

游戏编程中的数学:如何解决任天堂的CodinGame挑战?


添加小编微信,可享双重福利

1.加入GAD程序猿交流基地

获取行业干货资讯,观看大牛分享直播

2.领取60G独家程序资料,地址在小编朋友圈

包括腾讯内部分享、文章教程、视频教程等全套资料

↓长按添加小编GAD苏苏↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存