在线游戏的公平匹配

时间:2010-07-03 19:16:08

标签: algorithm statistics

大多数在线游戏任意组成团队。通常由用户决定,他们会选择带有空闲插槽的快速服务器。这种行为导致不公平的团队和人们愤怒退出。通过跟踪player's statics(或可以收集的任何静态),您如何选择尽可能公平的团队?

4 个答案:

答案 0 :(得分:10)

现在比较着名的系统之一是微软的TrueSkill algorithm

人们也试图让Elo system适应团队配对,虽然它更适合1-v-1配对。

答案 1 :(得分:8)

在我之前的回答之后,我意识到,如果你想真正想要的话,你可以使用一个非常简单但有力的想法:Markov Chains。

使用马尔可夫链背后的直观想法是这样的:

  1. 创建图表G =(V,E)
  2. 让V中的每个顶点代表一个实体
  3. 让E中的每个边代表实体之间的转换概率。这意味着每个顶点的出度之和必须为1.
  4. 在开始时(时间t = 0),为每个实体分配单位值1
  5. 在每个时间步骤,通过3中定义的转移概率转换实体i,j。
  6. 设t->无穷大,则t =无穷大时每个实体的值是均衡(即向实体过渡的机会与从实体过渡的总机会相同。)< / LI>

    这个想法已成功用于实现Google的页面排名算法。要描述如何使用它,请考虑以下事项:

    1. V =玩家E =根据相对赢/输比率将玩家转换为玩家的概率
    2. 每个玩家都是一个顶点。
    3. 玩家A到B的边缘(B不等于A)具有概率X / N,其中N是A玩的游戏总数,X是输给B的总游戏数。 A概率为M / N,其中M是A赢得的游戏总数。
    4. 在开始时为每位玩家分配1级技能等级。
    5. 使用Power Method查找由3中定义的概率构造的链接矩阵的主要特征向量。
    6. 主导特征向量是每个玩家在t =无穷大时的技能,即 一旦马尔可夫链达到平衡,每位球员的技术数量。这是使用赢/输空间拓扑结构衡量每个玩家技能的非常有力的方法。
    7. 一些警告:直接应用这个问题有几个问题,最大的问题将是分离的网(这是你的马尔可夫链不会不可简化,所以权力方法将无法保证收敛。)幸运的你,谷歌在实现他们的页面排名算法时已经解决了所有这些问题以及更多问题,所有剩下的就是如果你这么倾向于查找它们如何规避这些问题。

答案 2 :(得分:1)

一种方法是简单地创建一个在任何给定时间寻找匹配的玩家列表,按玩家等级排序。一旦你找到足够的人来开始一场新的比赛(或者可能比所需要的少两个),请将它们分组:

  1. 删除最佳和最差玩家并将其置于第1组
  2. 删除现在最好的,现在最差的玩家(真的是次佳和第二差)并将他们放在第2队
  3. 如果只剩下两个玩家,则将每个玩家放在不同的团队中,具体取决于谁具有最低的综合得分。否则,请重复:
  4. 删除现在最好的,现在最差的并将它们放在第1组
  5. 删除现在最好的,现在最差的并将它们放在第2组
  6. 等。等等,直到你的团队满员为止。

    如果您决定以低于要求开始新比赛,那么现在是时候让球员等待新人加入。一旦有新人加入,你就会想把它们放在开放式团队中,并且得分最少。

    或者,如果你想避免在同一个团队中将好人和坏人组合在一起的游戏,你可以将所有人分成等级,(根据他们的排名分组)并且只匹配其中的人同一层。这将需要为每个额外的层提供一个新的打开/排序列表。

    示例

    游戏是4v4

      

    A - 1000 pnts

         

    B - 800 pnts

         

    C - 600 pnts

         

    D - 400 pnts

         

    E - 200 pnts

         

    F - 100 pnts

    一旦你得到这六个,就把他们分成小组:

      

    第1组:A,F,D(综合得分1500)

         

    第2组:B,E,C(合并得分1600)

    现在,我们等待另外两名球员加入。

    首先,球员E带有500个支柱。他去了第一队,因为他们的综合得分较低。

    然后,玩家F带有800个支撑。他去了第2队,因为他们是唯一开放的队伍。

    团队总数:

      

    第1组:A,F,D,E(综合得分2000)

         

    第2组:B,E,C,F(合计得分2400)

    请注意,在最后两个队伍进入之前,球队实际上是相当公平的。说实话,最好的方式只是在你有足够的球员开始时才创造比赛。但是等待时间对于玩家来说可能太长了。

    在形成比赛前调整你需要多少。较低=等待时间减少,更可能是不公平。更高=等待时间越长,可能不公平。

    如果你有一个游戏前的屏幕,那么较低的人也会有更多的时间让人们在等待时与他们的未来队友聊天和交谈。

答案 3 :(得分:1)

很难通过单一指标估算任何一个玩家的技能,这种方法很容易被滥用。但是,如果您只关心实现一些可以正常工作的简单方法,请尝试以下方法:

  1. 跟踪输赢
  2. 使用胜利与失败的百分比作为匹配玩家的统计数据(在某种意义上说匹配,即具有相似百分比的组玩家)
  3. 如果球员的输赢率为5-0而另一个为50-20,则第一个有无限百分比,而另一个有更合理的百分比。匹配系统承认这一点是有道理的,并且由于所需的一致性,后者更有信心后者具有更多技能。然而,让两个球员相互对抗可能是一件好事,因为5-0的球员可能会试图通过比较弱的球员来对抗这个系统,所以让他对抗一个优秀的球员会让每个人都做得很好。

    请注意,我是根据玩魔兽争霸3等策略游戏的经验说的,这是典型的比赛制作行为。在我看来,胜过失败的百分比是匹配玩家的一个很好的指标。