Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Play游戏:定制房间配置,玩家数量灵活_Android_Google Play Services_Real Time_Google Play Games_Multiplayer - Fatal编程技术网

Android Play游戏:定制房间配置,玩家数量灵活

Android Play游戏:定制房间配置,玩家数量灵活,android,google-play-services,real-time,google-play-games,multiplayer,Android,Google Play Services,Real Time,Google Play Games,Multiplayer,我正在开发一个实时多人游戏。游戏本身运行良好。我正在努力调整房间的配置。我使用google play games作为框架。游戏理念是在一个单人房间内管理2到7名玩家。这个游戏是一种棋盘游戏。因此,如果多个玩家连接在一起就更好了。否则游戏会很无聊。我有可能使用谷歌的配对标准: final int MIN_OPPONENTS = 1, MAX_OPPONENTS = 6; Bundle autoMatchCriteria = RoomConfig .createAutoMatchCriter

我正在开发一个实时多人游戏。游戏本身运行良好。我正在努力调整房间的配置。我使用google play games作为框架。游戏理念是在一个单人房间内管理2到7名玩家。这个游戏是一种棋盘游戏。因此,如果多个玩家连接在一起就更好了。否则游戏会很无聊。我有可能使用谷歌的配对标准:

final int MIN_OPPONENTS = 1, MAX_OPPONENTS = 6;
Bundle autoMatchCriteria = RoomConfig
    .createAutoMatchCriteria(MIN_OPPONENTS, MAX_OPPONENTS, 0);
RoomConfig.Builder rtmConfigBuilder = RoomConfig.builder(this);
....
如果我设置MIN_Operators=1和MAX_Operators=6,那么在大多数情况下,游戏将以两名玩家开始。在一篇SO帖子中,一位谷歌开发者提到:

自动机算法并不努力使比赛中的玩家数量最大化

我有可能使用MIN_对手=6和MAX_对手=6。在这种设置下,只有当7名玩家连接到一个房间时,游戏才会开始。我的游戏提供了很多游戏变体和很多难度等级。因此,我假设并非总是有7名球员可用。我需要一个灵活的解决方案,在那里游戏的开始总是有保证的

同一个谷歌家伙描述了一个使用计时器的解决方案:

我不知道从哪里开始这个概念。我应该在哪里启动计时器? 有人成功地实现了这个概念吗?如果这个人能和我分享一些代码片段或提供一些进一步的解释,那就太好了也欢迎其他建议。

2019年更新:仍在寻求改进。请给出提示。

我的gradle文件包含:

implementation 'com.google.android.gms:play-services-appstate:6.5.87'
implementation 'com.google.android.gms:play-services-games:16.0.0'
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.android.gms:play-services-auth:16.0.1'
implementation 'com.google.android.gms:play-services-ads:16.0.0'
这就是我开始多人游戏的方式:

    void startQuickGame() {
    final int MAX_OPPONENTS = 6;
    int min_opponents = 1;
    Bundle autoMatchCriteria = RoomConfig.createAutoMatchCriteria(min_opponents,
            MAX_OPPONENTS, 0);
    RoomConfig.Builder rtmConfigBuilder = RoomConfig.builder(this);
    rtmConfigBuilder.setMessageReceivedListener(this);
    rtmConfigBuilder.setRoomStatusUpdateListener(this);
    rtmConfigBuilder.setAutoMatchCriteria(autoMatchCriteria);
    rtmConfigBuilder.setVariant(variant);
    switchToScreen(R.id.mpGamescreen_wait);
    keepScreenOn();

    Games.RealTimeMultiplayer.create(mGoogleApiClient, rtmConfigBuilder.build());
    }
我在这里发现了一个提示:
他们提到了一些自定义计时器。

您希望它“更加努力”形成更大的游戏,还是让它有可能加入游戏中期?我希望它更加努力形成更大的游戏。