GameSparks Ручная сборка - PullRequest
0 голосов
/ 11 мая 2018

моя команда и я создаем игру в Unity и используем GameSparks для внедрения в нашу игру сетевых технологий. Мы пытаемся реализовать создание соответствия вручную, чтобы при совпадении GameSparks автоматически не сопоставляло игроков для нас. Мы хотим сами это контролировать.

Итак, согласно их документам, сначала мы должны вызвать запрос MatchMakingRequest

new GameSparks.Api.Requests.MatchmakingRequest()
        .SetMatchShortCode("match_name")
        .SetSkill(0) // 
        .Send((response) => {
            if (response.HasErrors)
            { // check for errors
                    Debug.LogError("GSM| MatchMaking Error \n" + response.Errors.JSON);
            }
            else
            {
                    Debug.Log("MatchMakingRequest response: " + response.JSONString);
            }
        });

Это создаст совпадение с идентификатором совпадения (например, идентификатором совпадения для вновь созданного совпадения будет 1). После того, как нам нужно вызвать FindPendingMatchesRequest.

new GameSparks.Api.Requests.FindPendingMatchesRequest()
      .SetMatchShortCode("MP_match")
      .Send((response) =>
    {
        if (response.HasErrors)
        {
                Debug.Log("Matchmaking error: " + response.Errors.JSON);
        }
        else
        {
                Debug.Log(response.JSONString);
        }
    });

При этом в соответствии с их документами предполагается найти ожидающее совпадение, которое в этом случае будет совпадением, созданным с идентификатором 1. Однако вместо этого создается новое ожидающее совпадение с идентификатором 2.

Так, например, если два игрока пытаются играть:

-Player 1 автоматически вызывает MatchMakingRequest и создает совпадение с идентификатором 1. Но он также вызывает FindPendingMatchesRequest, который создает новое совпадение с идентификатором 2.

-Player 2 теперь вызывает FindPendingMatchesRequest и вместо поиска совпадений с ID 1 или ID 2 создает новое совпадение с ID 3.

Это будет продолжаться с каждым новым игроком, который ищет ожидающий матч, поэтому они никогда не присоединяются к сеансам друг друга.

Итак, мой вопрос: как мне получить запрос FindPendingMatches, чтобы фактически найти ожидающее совпадение вместо создания совершенно нового?

1 Ответ

0 голосов
/ 10 июля 2018

Я думаю, что есть несколько вещей, которые вы неправильно поняли. Во-первых, на стороне сервера происходит настраиваемая логика сопоставления, которую вы можете настроить в GameSpark -> Configurator -> Multiplayer -> Matches.

Там вы можете настроить минимальный / максимальный плеер, пороговые значения (минимальное, максимальное время ожидания), пользовательский сценарий и так далее. Пользовательский сценарий - это место, где вы настраиваете логику поиска совпадений вручную.

Причина, по которой вы можете столкнуться, может заключаться в том, что что-то не так с настройкой ваших матчей, вы можете обратиться сюда, чтобы увидеть учебник:

https://docs.gamesparks.com/tutorials/multiplayer/matching-players.html#customizing-matching

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...