有没有一种方法可以使用Google Play游戏服务根据玩家在游戏中的技能水平来匹配玩家?我已经在本地存储了每个球员的球员级别,并希望一个球员与他/她的排名最接近的球员相匹配。
例如:排名10 (初学者)的玩家应该与排名最接近的玩家(例如5到15)配对,而不是专家级别100的玩家,这样我们就可以有一个平衡的竞争。
发布于 2016-05-09 22:49:25
可以设置两个变量来影响配对:
首先,您可以使用RoomConfig.Builder.setVariant()设置游戏的变体。此方法接受一个指示匹配类型的非负值。指定的变体需要与其他参与者完全匹配,才能进行自动匹配。我想你可以在配对时严格要求,并使用变种作为玩家的关卡。这样,玩家将只与相同级别的玩家匹配。另一种选择是在一个范围内将级别分组在一起,例如级别1-5可以相互玩,同样组6-8,等等。
第二个变量是exclusiveBitMask。在调用RoomConfig.CreateAutoMatchCritera()时传入。此方法获取要匹配的最小和最大玩家数量以及exclusiveBitMask。当与其他玩家进行逻辑与运算时,此掩码将等于0。这是用于基于角色的游戏(需要有一个进攻和一个防守)。一种可能的用途是屏蔽高级别与低级别的功能,这样就不会出现严重的不匹配。
发布于 2016-05-10 02:44:50
我认为克莱顿·威尔金森的答案是完全正确的,我对它投了赞成票。
但是,我想OP希望有一种方法来进行基于技能的匹配,而不是将玩家基础分成几个部分。
不幸的是,答案是不,你不能。选择是使用其他的配对系统或拆分你的玩家基础。如果你选择拆分你的玩家群,那么你需要大量的并发用户,以避免让你的玩家等待很长时间。
在最近的一个游戏中,我们推出了自己的基于Raknet的配对服务,因为我们想要更细微的配对。虽然这有很多麻烦,而且GPGS在其他方面都很棒,所以在你考虑放弃GPGS之前,基于技能的匹配必须是一个非常高的优先级。
https://stackoverflow.com/questions/37116200
复制相似问题