Поскольку Google прекратил поддержку пошаговых и многопользовательских игр в реальном времени, я пытаюсь создать свой собственный простой пошаговый сервер.
Для того, чтобы совпадение было добавлено на сервер, я нужны 2 идентификатора игрока игроков в матче.
Локальный идентификатор игрока получается с помощью playersClient.getCurrentPlayer()
и player->getPlayerId()
.
Идентификатор игрока противника получается игроком A с помощью playersClient.getPlayerSearchIntent()
для поиска игрока и успешно возвращается из ArrayList<Player>plist
, а затем plist.get(0).getPlayerId()
Все это завершается без ошибок.
К сожалению, значения не совпадают между двумя игроками поэтому я не могу использовать их для управления матчами. Игрок B думает, что его playerId отличается от того, что думает игрок A.
Вот пример.
Игрок A
playersClient.getCurrentPlayer()->player->getPlayerId()
возвращает playerId a_7674078903545749486
getPlayerSearchIntent(Player B)
возвращает ID игрока g03545126365615724180 для игрока (B).
Итак, на сервере создается игра между игроками a_7674078903545749486 и g03545126365615724180
Игрок B
playersClient.getCurrentPlayer()->player->getPlayerId()
возвращается playerId 100452365691239690498
Затем они просматривают сервер, чтобы найти игры для 100452365691239690498, но ничего не находят, несмотря на то, что в них запущена игра.
Есть ли способ получить надежные идентификаторы игроков? Это то же самое для всех пользователей. Я прочитал статью о миграции с G +, но это не помогло в этой ситуации.
Спасибо,
Стив.