根据玩家排名/技能在Google Play服务中匹配玩家

时间:2016-05-09 12:45:29

标签: unity3d google-play-services google-play-games multiplayer

有没有办法可以根据玩家在游戏中的技能水平来匹配使用Google Play游戏服务的玩家? 我在本地存储了每个玩家的玩家等级,并希望玩家与他/她最接近的玩家匹配。

例如:排名第10的玩家(初学者)应与最接近的排名玩家(例如5到15)配对,而不是专家级别100玩家,这样我们才能有平衡的竞争。

2 个答案:

答案 0 :(得分:2)

可以设置两个变量来影响匹配:

首先,您可以使用RoomConfig.Builder.setVariant()设置游戏的变体。此方法采用指示匹配类型的非负值。指定的变体需要与其他参与者完全匹配才能进行自动匹配。我想你可以严格控制你的比赛,并将变量用作玩家的等级。通过这种方式,玩家只能与同级别的玩家匹配。另一种方法是将一个级别组合在一个范围内,例如1-5级可以相互发挥,同样是6-8组等。

第二个变量是exclusiveBitMask。调用RoomConfig.CreateAutoMatchCritera()时会传入此消息。此方法使最小和最大玩家数匹配,并使用exclusiveBitMask。当与其他玩家进行逻辑上的“和”时,此面具将等于0.这用于基于角色的游戏(需要1次攻击和1次防御)。一种可能的用途是掩盖高级别与低级别的能力,这样就不存在令人发指的不匹配。

答案 1 :(得分:2)

我认为克莱顿威尔金森的回答是正确的,我投了赞成票。

但是,我认为OP希望能够通过某种方式进行基于技能的匹配,而无需将玩家基础划分为多个细分市场。

可悲的是,答案是否定的。选择是使用其他一些配对系统或拆分你的玩家群。如果您选择拆分播放器基础,那么您需要大量并发用户,以避免让您的玩家等待很长时间。

在最近的一个标题上,我们推出了基于Raknet的自己的配对服务,因为我们想要更细致的配对。虽然这很麻烦,但GPGS非常好,所以在你考虑放弃GPGS之前,基于技能的匹配必须是一个非常高的优先级。