Java 基于Google turn的多人游戏自动机标准

Java 基于Google turn的多人游戏自动机标准,java,android,multiplayer,google-play-games,Java,Android,Multiplayer,Google Play Games,我已经使用谷歌基于回合的API建立了一个多人游戏。我现在想在自动匹配上添加一些限定符,并绞尽脑汁研究如何解决这个问题 我正在使用GetVariant()来区分我的游戏的Lite和Pro版本。这很容易。除此之外,我想有几个可以改变的参数。作为一个限制性示例,假设有三个难度级别和两种类型的游戏。我希望球员能够指定他们想要的,或者让选项完全开放(在指出之前,我意识到预选赛越具体,获得比赛可能需要的时间就越长) 似乎在createAutoMatchCriteria函数调用中设置exclusiveBitM

我已经使用谷歌基于回合的API建立了一个多人游戏。我现在想在自动匹配上添加一些限定符,并绞尽脑汁研究如何解决这个问题

我正在使用
GetVariant()
来区分我的游戏的Lite和Pro版本。这很容易。除此之外,我想有几个可以改变的参数。作为一个限制性示例,假设有三个难度级别和两种类型的游戏。我希望球员能够指定他们想要的,或者让选项完全开放(在指出之前,我意识到预选赛越具体,获得比赛可能需要的时间就越长)

似乎在
createAutoMatchCriteria
函数调用中设置
exclusiveBitMask
可能是解决方案(事实上,我看不到在这个任务中可能有用的任何其他东西)

我认为游戏类型可以在较低的两位中指定,难度级别可以使用接下来的三位指定。基本上,位掩码会掩盖玩家不感兴趣的难度级别和游戏类型。所以,看看我们将拥有的排他EBITMAK的低5位

011 10 - difficulty 3, game type 1
101 10 - difficulty 2, game type 1
110 01 - difficulty 1, game type 2
而难度等级(例如)可以通过不屏蔽任何难度位来保持开放

000 10 - any difficulty level, game type 1
只要一个玩家指定他想要的游戏类型,而其他玩家都保留他们的选项,这(理论上)就行了。大多数玩家可能会选择“快速匹配”,默认设置为“任意”,所以这可能不是一个问题。(例如,如果两名玩家指定相同的难度,排他位将阻止比赛。如果两名玩家指定不同的游戏类型,他们实际上将获得一场比赛,但这可以通过使用三个位指定游戏类型来克服)

但是这个系统要求每个球员在比赛开始前都必须参加比赛,这并不理想。可能是一名玩家指定了他想要的游戏类型,一名玩家指定了他想要的难度等级,三名玩家保留了所有选项。在所有玩家都准备好并知道他们各自做出了什么选择之前,我们不能初始化游戏

这就引出了问题的症结所在。如果每个玩家不进行一次空回合来将其信息传递给下一个玩家,我如何确定每个玩家使用了什么exlusiveBitMask?我希望在每个玩家加入后,排他性ebitmask可以通过逻辑OR操作进行修改,这可以通过getAutoMatchCriteria获得,但事实并非如此

所以,我的问题是

1) 这种方法虽然不好,但它是唯一一种在指定游戏类型(并且能够在规范中保留一些选项)方面似乎远为可行的方法。有没有更好、更干净的方法


2) 如果没有其他方法可用,对于如何克服警告并确定每个玩家的规格,而不让每个玩家在游戏开始时空转一圈来传递信息,是否有任何建议?

听起来是个好问题,因为我不知道gamedev.stackexchange.com。看了一下,这里的问题/答案比上面的要多得多。