GameSparks Ручная сборка
Мы с моей командой создаем игру в 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 ответ
Я думаю, что есть несколько вещей, которые вы неправильно поняли. Во-первых, на стороне сервера происходит настраиваемая логика сопоставления, которую вы можете настроить в GameSpark -> Configurator -> Multiplayer -> Matches.
Там вы можете настроить минимальное / максимальное количество игроков, пороги (минимальное, максимальное время ожидания), пользовательский сценарий и так далее. Пользовательский сценарий - это место, где вы настраиваете свою логику поиска совпадений
Возможно, причина кроется в том, что с настройкой совпадений что-то не так, вы можете обратиться сюда, чтобы увидеть учебник:
https://docs.gamesparks.com/tutorials/multiplayer/matching-players.html