对接会是大多数现代多人游戏的主要组成部分。 一旦开发人员认真对待他,事实证明,新来者经常在战斗中遇到专业人士,有些球员必须永远等待才能进入比赛。 另外,由于需要考虑许多因素,因此在启动之前很难进行测试和分析。 玩家在地理上如何分布? 他们准备排队等待多长时间? 哪种ping最适合舒适的游戏? 这些因素和其他因素影响对接会的质量。

在此基础上,我们将首先讨论在多人游戏中选择战斗的一般做法,然后分享我们在为《战争机器人》组织对接会方面的经验。
选择哪个标准?
那么,什么决定了良好的对接会? 当然,这取决于游戏的平台和体裁功能,但是通常,开发人员必须遵循以下条件:
- 等待时间短;
- 低平
- 玩家的经验,技能和进步之间的最小差异:如果游戏中有游戏划分,则可以在总体上和针对特定类别考虑游戏的体验;
- 反对对方-预先组建的旨在协调工作的玩家团体;
- 所有玩家同时开始比赛。
其他要求也是可能的,例如:
- 挑选说相同语言的玩家;
- 考虑到球员最后一场比赛的结果以及等级的依从系数:如果一名球员输掉了最后几场比赛,他现在可能已经变形了,一段时间后他应该让对手更轻松;
- 在进行比赛时要考虑到球队的组成:如果一个球队缺少战车或治疗师,则寻找对手组成相同的球队;
- 将巨魔,步兵和抓手放在一起,以免干扰其他玩家;
- 使球员的组成多样化,以使同一个人不会经常在不同的比赛中相遇;
- 使用语音聊天将玩家聚集在一起。
同时满足所有这些要求是不可能的。 而且,许多要求总是与实现短等待时间的要求背道而驰。 即使游戏非常成功,并且每分钟都有数百人在等待比赛,但仍然可能没有足够的时间来满足某些要求。 例如,如果您想为一支澳大利亚人球队寻找另一支令人满意的澳大利亚人队,等待时间会大大增加。
在这方面,从所有期望的要求中,有必要为特定项目选择最重要的。 缩短此列表将导致更好地符合其余要求并缩短等待时间。
此外,在开发多人游戏时,要记住,添加各种游戏模式会将玩家群分成几个队列,从而导致等待时间增加,从而导致对接质量下降。 因此,在将这种模式添加到游戏中之前,请再考虑一下,是否值得让玩家有机会在它们之间进行选择。
减少对接会的需求数量不是减少等待时间的唯一方法。 例如,您可以在Drop-In-Drop-Out系统上实现多人游戏,以便用户可以随时加入游戏并随时退出游戏。 如果这不可能,并且比赛持续时间很短,则可以允许玩家在等待过程中与机器人一起玩。 当然,这不会解决期望问题,但至少可以让我们度过时光。
如何评估是否符合所选标准?
因此,我们有一定数量的球员,我们必须将他们分配给比赛。 如何做得更好? 哪个更合适:相同水平的技能或低ping? 我们如何平衡这些要求,以便各方互相竞争?
为了进行比较,我们需要一个特定的指标。 所有这些条件都必须以某种方式收敛于一个参数,系统可以通过该参数进行搜索。 接下来,我们将其称为比赛得分。
为了获得此评估的价值,您必须首先计算各个指标。 考虑多种因素的组合:
- 具有相同技能水平的团队。 这是婚介中最明显的标准。 对于每个游戏,计算此参数的方法都是单独的。 最简单的方法之一:将每个团队的平均经验水平与另一个团队的相同价值进行比较。 差异越大,匹配越差,所需指标越低。
- 具有相同技能水平的玩家。 即使两支球队之间达到了完美的平衡,例如,由两名专业人员和一名初学者组成,两支球队技能的平均指标也将相同,但良好的比赛仍然行不通。 因此,我们引入的另一个参数不是针对整个团队,而是针对每个球员,或者针对团队内部技能水平的差异。
- 聚会。 理想情况下,长时间一起比赛的小组应反对同一小组的另一小组,而不是与三个单独的选手对抗。 这很容易计算:如果一个团队很长时间一直在比赛,我们的指标等于100%。 如果一个由三个人组成的团队与两个朋友和一个随机玩家对抗,我们将获得60%的收益。 如果以前没有一个玩家玩过,则该值为0%。
- 平对手。 对于每个用户,我们都要与对方球队的所有三名球员进行ping检查。 ping越高,分数越低。
- 对手的可变性。 为了满足更高的优先级要求,对接系统通常可以使相同的团队以最高的匹配率彼此对抗。 因此,为了避免让玩家不断打扰熟悉的面孔而感到无聊,值得跟踪他们在比赛中相遇的次数。
一场比赛的示例,其中团队有100%的派对指标,这是该团队平均技能的良好指标,但各个球员的技能之间的相关性较弱:在蓝色团队中,他们之间的差异很大如何考虑标准的模糊性?
因此,对于每个条件,我们的得分都从0%(非常差的巧合)到100%(最佳),但是最后我们只需要得到一个数字。 为此,我们将使用加权平均值。 然后,我们可以为每个标准设置重要性的优先级。
在计算估计值时,值得考虑是否要获得参数的线性相关性。 例如,将ping从210毫秒提高到200毫秒是否值得,从110毫秒提高到100毫秒呢? 两种选择均提高了10 ms,但ping值本身的差异是原来的两倍。
有趣的是,在某些标准的情况下,与其他标准相比,更容易获得显着的性能差异。 因此,为了使技能水平提高0%,比赛中需要收集三名专业球员和三名初学者,这非常罕见。 但是,按照聚会的标准获得0%的难度要容易得多,因为为此,您需要有一个由三名单打球员组成的长队。 这方面也值得考虑。
一个如何根据技能水平组成团队的示例 。 玩家之间绿色和黄色显示ping现在,基于每个需求的指标值,我们可以计算最终分数。
由于此数字是主要标准,因此该算法会产生某些偏好。 如果两名球员的交换将一场比赛的评估参数提高了5%,但在另一场比赛中却将其降低了10%,则系统将不会执行此操作,因为总的来说结果会变得更糟。 但是,在某些情况下这可以忽略。 因此,将一个指标从50%(非常糟糕)提高到55%或将另一个指标从90%降低到80%(仍然很不错)可能是合适的。 例如,这可以通过计算评估到平均阶段的所有指标的平方根来实现。 因此,改善不良匹配比重要匹配更重要。
这在战争机器人中如何发生?
由于我们正在谈论一种应该快速进行所有操作的手机游戏,因此主要优先考虑的是上战前的等待时间短。 为此,对接系统应尽可能简单。 目前,War Robots的媒人只考虑玩家的选择评分(MMR)并尝试专注于聚会,但由于它们在游戏中并不广泛,因此此标准是次要的:如果您无法匹配实力相同的聚会,则系统会尝试彼此结合一些政党或根本不关注这一标准。 如果有一名球员离开战斗,他们将接替另一名符合条件的球员,但只在比赛开始时进行。
选择球员的等级取决于赢/输的次数和在球队中的位置,并且取决于比赛的结果,它可以增加或减少。 根据此评分,将球员分为联赛和联赛。 在部门内部,媒人正在寻找可能得分最高的球员,逐步扩大搜索范围并覆盖下一个部门。 值得注意的是,媒人试图通过根据行为特征跟踪他们来阻止故意低估自己等级的低级联赛球员:通常,失败次数大于每天平均联赛战斗次数。
简化战争机器人对战匹配流程图该系统曾经无法正常工作。 主要标准是机器人和武器的力量,从比赛结果中仅考虑了最后五场。 该系统更容易受到操纵。 如果经验丰富的玩家只是将武器更改为较弱的武器,他们可能会与新玩家同战,反之亦然,如果是第一级机器人的新手可以安装第12武器并最终与专业人员进行战斗,而没有时间去发展游戏技能。 在这方面,基于胜利和失败的真实经验的评级系统被证明是更加诚实的,尽管不可能马上提出来:对接过程的完全重组是一个激进的步骤,因此,起初仍然试图简单地为系统设置附加条件。
正在优化和改善War Robots中的配对的工作。 也许将来可能会结合使用旧方法和新方法来查找比赛,但不要忘记,对接质量的任何提高都会导致等待时间的增加。 因此,只有在不显着影响系统性能的情况下,才建议开发这种解决方案。