为什么 GKMatchmaking 总是只找到最少数量的玩家?

Why does GKMatchmaking always find only the minimum number of players?

提问人:Валерий 提问时间:10/13/2023 最后编辑:Joakim DanielsonВалерий 更新时间:10/13/2023 访问量:31

问:

如果三个不同的设备尝试查找匹配项,则几乎总是只有两个用户找到匹配项,而第三个用户则找不到。 我需要在搜索比赛时,所有可用的球员都能到达那里,而不是最少的一对。

例:


GKMatchRequest *request = [[GKMatchRequest alloc] init];
    request.minPlayers = 2;
    request.maxPlayers = 4;
    
    
    GKMatchmaker *matchmaker = [GKMatchmaker sharedMatchmaker];
    [matchmaker findMatchForRequest:request withCompletionHandler:^(GKMatch *match, NSError *error) {
        if (!match) {
            _print_v("match find automatch failed! match is null");
            return;
        }
        _print_v("im finded match!!!!! <<<<<<<<");
    }];


如果三个不同的设备尝试查找匹配项,则几乎总是只有两个用户找到匹配项,而第三个用户则找不到。

所有设备都有一个唯一的帐户。这三种设备都是物理的(不是虚拟的)。

即使设备位于不同的网络上,这也不能解决问题。

在极少数情况下,有时 GameKit 会匹配比赛中的所有设备,但当同时搜索匹配项时,这种情况会发生二十分之一。

我只在两分钟内完成了比赛选择。在此期间,第三名玩家找不到匹配项。

我试图同时搜索匹配项。 我试着以五秒和十秒的间隔依次搜索匹配项。

如何解决这个问题? 99% 的指南和示例是为成对测试而设计的,或者是以成对的方式展示演示。我还没有找到一个单一的解决方案来保证超过最低数量的反对者的工作。

P.S.:SWIFT也做出了决定。

iOS Objective-C 网络 游戏套件

评论


答: 暂无答案