具有不同角色的实时多人 Google Play 游戏

Posted

技术标签:

【中文标题】具有不同角色的实时多人 Google Play 游戏【英文标题】:Google Play Game with real time multiplayer having different roles 【发布时间】:2017-07-13 06:38:49 【问题描述】:

我正在objective-c 中创建一个游戏应用程序,它使用Google Play Game services 实现realtime Multiplayer 功能。在应用程序中,用户必须在开始游戏之前下注一些硬币,我们希望连接的用户必须下注相同数量的硬币。 我遵循https://developers.google.com/games/services/ios/realtimeMultiplayer 的文档。该应用程序在搜索实时玩家时运行良好,无需每个玩家的特定角色(例如拥有不同硬币的玩家)。

- (void)createQuickStartRoom 
    GPGMultiplayerConfig *config = [[GPGMultiplayerConfig alloc] init];
    // Could also include variants or exclusive bitmasks here
    config.minAutoMatchingPlayers = totalPlayers - 1;
    config.maxAutoMatchingPlayers = totalPlayers - 1;

    // Show waiting room UI
    [[GPGLauncherController sharedInstance] presentRealTimeWaitingRoomWithConfig:config];

但我想搜索具有相同角色的玩家,就像每个玩家在我的应用程序中花费相同数量的硬币一样。

static uint64_t const ROLE_COIN_10 = 0x1; // 001 in binary
static uint64_t const ROLE_COIN_20 = 0x2; // 010 in binary
static uint64_t const ROLE_COIN_50 = 0x4; // 100 in binary

- (void)createQuickStartRoomWithRole:(uint64_t)role  
    GPGMultiplayerConfig *config = [[GPGMultiplayerConfig alloc] init];

    // auto-match with two random auto-match opponents of different roles
    config.minAutoMatchingPlayers = 2;
    config.maxAutoMatchingPlayers = 2;
    config.exclusiveBitMask = role;

    // create room, etc.
    // …

但找不到具有相同角色的所需玩家。它仍然提供具有不同角色的实时播放器。 请告诉我,如何实现此功能。 谢谢。

【问题讨论】:

【参考方案1】:

您想使用variant 字段来匹配请求相同(非零)值的玩家。在您的示例中,将变量设置为硬币的数量。独占位掩码用于匹配不同的类型。例如,如果您在比赛中需要“进攻”和“防守”。

【讨论】:

嗨克莱顿,谢谢。它工作得很好。你拯救了我的一天:)。 你能帮我解决这个问题吗***.com/questions/42427673/…

以上是关于具有不同角色的实时多人 Google Play 游戏的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 服务实时多人游戏的共享种子?

Google Play 游戏服务实时多人游戏停止工作

如何在实时多人游戏中移动对象? (统一的 Google Play 游戏插件)

当应用程序进入后台时,实时多人 Google Play 游戏服务对等方断开连接

如何检测客户端是不是故意离开 Google Play 游戏实时多人游戏中的房间?

如何在使用 Google Play 游戏服务的实时多人游戏中使用机器人玩家?