大多数在线游戏任意组成团队。通常由用户决定,他们会选择带有空闲插槽的快速服务器。这种行为导致不公平的团队和人们愤怒退出。通过跟踪player's statics(或可以收集的任何静态),您如何选择尽可能公平的团队?
答案 0 :(得分:10)
现在比较着名的系统之一是微软的TrueSkill algorithm。
人们也试图让Elo system适应团队配对,虽然它更适合1-v-1配对。
答案 1 :(得分:8)
在我之前的回答之后,我意识到,如果你想真正想要的话,你可以使用一个非常简单但有力的想法:Markov Chains。
使用马尔可夫链背后的直观想法是这样的:
这个想法已成功用于实现Google的页面排名算法。要描述如何使用它,请考虑以下事项:
一些警告:直接应用这个问题有几个问题,最大的问题将是分离的网(这是你的马尔可夫链不会不可简化,所以权力方法将无法保证收敛。)幸运的你,谷歌在实现他们的页面排名算法时已经解决了所有这些问题以及更多问题,所有剩下的就是如果你这么倾向于查找它们如何规避这些问题。
答案 2 :(得分:1)
一种方法是简单地创建一个在任何给定时间寻找匹配的玩家列表,按玩家等级排序。一旦你找到足够的人来开始一场新的比赛(或者可能比所需要的少两个),请将它们分组:
等。等等,直到你的团队满员为止。
如果您决定以低于要求开始新比赛,那么现在是时候让球员等待新人加入。一旦有新人加入,你就会想把它们放在开放式团队中,并且得分最少。
或者,如果你想避免在同一个团队中将好人和坏人组合在一起的游戏,你可以将所有人分成等级,(根据他们的排名分组)并且只匹配其中的人同一层。这将需要为每个额外的层提供一个新的打开/排序列表。
示例强>
游戏是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)
很难通过单一指标估算任何一个玩家的技能,这种方法很容易被滥用。但是,如果您只关心实现一些可以正常工作的简单方法,请尝试以下方法:
如果球员的输赢率为5-0而另一个为50-20,则第一个有无限百分比,而另一个有更合理的百分比。匹配系统承认这一点是有道理的,并且由于所需的一致性,后者更有信心后者具有更多技能。然而,让两个球员相互对抗可能是一件好事,因为5-0的球员可能会试图通过比较弱的球员来对抗这个系统,所以让他对抗一个优秀的球员会让每个人都做得很好。
请注意,我是根据玩魔兽争霸3等策略游戏的经验说的,这是典型的比赛制作行为。在我看来,胜过失败的百分比是匹配玩家的一个很好的指标。