На этой странице объясняется, как интегрировать вход через сервисы Play Games с существующим решением для управления идентификацией или сохранения в облаке. Хотя эти рекомендации являются необязательными, они помогут вам выполнить требования к сохранению в облаке для Google Play Games на ПК. Используйте страницы с требованиями к непрерывности работы и ожидаемым поведением, чтобы убедиться, что ваша реализация соответствует этим требованиям.
Восстановить состояние игрока
В бэкэнде вашей игры игровые аккаунты, скорее всего, представлены каким-либо идентификатором, который позволяет получать и обновлять их прогресс в игре. Для краткости мы будем называть это идентификатором вашей учетной записи. Когда игрок входит в Play Games Services, вы можете использовать эту аутентификацию для получения нового идентификатора — идентификатора игрока Play Games Services, который используется для обеспечения возможности сохранения в облаке .

После входа игрока в систему через Play Games Services следует выполнить следующие действия:
- Получите код OAuth от клиента и отправьте его на свой сервер.
- Обменяйте токен аутентификации и получите подтвержденный идентификатор Play Games Services ID от сервера Play Games. Это гарантирует, что идентификатор является надежным и не принадлежит кому-либо, кто выдает себя за другого игрока, используя скомпрометированное устройство.
- Попытка определить игровой аккаунт на основе условий устройства и любых связанных идентификаторов.
В вашу игру необходимо ввести два основных новых сценария:
- Хранение идентификаторов сервисов Play Games на вашем бэкэнде и присвоение их существующим идентификаторам учетных записей каким-либо способом, например, следующим:
- Для новых игроков прогресс должен автоматически привязываться к сервисам Play Games на каком-то этапе (например, при запуске игры, после обучения или прохождения определенного количества уровней и т. д.).
- Для существующих игроков текущий прогресс должен автоматически связываться с Play Games Services после обновления игры до версии с интегрированными Play Games Services V2.
- Идентификатор сервиса Play Games Services может быть связан с одной или несколькими учетными записями, и сервис Play Games Services может быть отвязан от этих учетных записей, но он должен быть связан как минимум с одной действующей учетной записью.
- Автоматическое восстановление игрового прогресса на устройстве, не входящем в систему, или на новом устройстве на основе идентификатора игрока Play Games Services.
Способ хранения и присвоения идентификаторов Play Games Services существующим учетным записям является гибким, как показано в примерах ниже. Основные требования, которые следует учитывать, заключаются в том, что игроку не должно требоваться вручную входить в систему или создавать связь с другой системой идентификации для установления связи между его идентификатором Play Games Services и игровым прогрессом, а также в том, что игровой прогресс должен беспрепятственно восстанавливаться на разных платформах.
При разработке решения начните с анализа существующей системы и того, как она интегрирует различные поставщики идентификационных данных. Некоторые системы используют один идентификатор для каждой учетной записи, в то время как другие используют несколько идентификаторов для каждой учетной записи.
Если каждому идентификатору учетной записи можно присвоить только один идентификатор, вам потребуется добавить поддержку для связывания сервисов Play Games с этим идентификатором. Следующие решения демонстрируют, как это сделать.
Примеры решений
В качестве примеров решений приводятся решения для привязки и отзыва данных .
Привязка — это процесс постоянной или полупостоянной привязки идентификатора Play Games Services к состоянию учетной записи. В случае привязки базовая учетная запись, восстанавливаемая через Play Games Services, не изменяется для игрока без его участия, даже если он выходит из игры и входит в нее с другой учетной записью. Мы рассмотрим это здесь в разделе «Привязка учетных записей» .

При использовании функции восстановления учетных записей вы, как разработчик игры, сохраняете приблизительное соответствие между идентификатором Play Games Services и последней использованной учетной записью (учетными записями), чтобы игрок мог восстановить их при входе в систему через Play Games Services на другом устройстве. Каждый раз, когда игрок входит в другую игровую учетную запись с тем же идентификатором Play Games Services, это соответствие изменяется. Вот пример блок-схемы, которую мы подробнее рассмотрим в примере восстановления последних учетных записей ниже:


Дополнительные примеры сценариев взаимодействия пользователя прилагаются к решениям ниже.
Привязка учетной записи
Если в вашей игре не так много игроков, использующих несколько учетных записей, или если вы хотите, чтобы игроки использовали одну учетную запись, то привязка, вероятно, будет лучшим решением. В этом примере вы привязываете первую учетную запись, обнаруженную при входе в систему через Play Games Services (будь то гостевая учетная запись или учетная запись, привязанная к другой платформе идентификации), к идентификатору игрока Play Games Services. После этой привязки привязанная учетная запись автоматически восстанавливается на новых устройствах. Поскольку мы используем надежную привязку, игрок также может переключать профили Play Games Services для смены учетных записей в игре, и в этом случае вы можете запросить у игрока подтверждение.

Если возникают конфликтующие учетные записи, мы рекомендуем попросить игрока выбрать одну из них. Такие конфликтные ситуации должны возникать только у игроков, имеющих несколько учетных записей в вашей игре, и, следовательно, они, скорее всего, знают и хотят играть с определенной учетной записью.
После того, как учетная запись будет настроена, ваша игра должна запомнить выбор игрока, если только не произойдет изменение идентификаторов входа. Если профиль Play Games Services изменен или игрок входит в игру под другим идентификатором, то описанные выше шаги следует повторить, поскольку игрок дал понять, что желает сменить учетную запись.
Развязывание
Если вы хотите предоставить игроку возможность полностью контролировать свои привязки, вы можете предложить ему возможность отвязать свой идентификатор игрока Play Games Services от игровой учетной записи. Это может быть важно для некоторых игроков, использующих несколько учетных записей, если они случайно привязали свой идентификатор игрока Play Games Services к учетной записи, которая не является их основной.
Дополнительные примеры привязки учетных записей

Этот основной пример показывает, что данный идентификатор игрока Play Games Services (1) привязан к первому внутриигровому аккаунту, который был обнаружен (A), и не перепривязывается, когда игрок выходит из своего игрового прогресса, чтобы играть на другом аккаунте.
При желании вы можете разрешить игрокам повторно привязать свою учетную запись, но это не обязательно.
Переключение учетных записей на устройстве

В данном случае игрок вручную переключил учетную запись в сервисах Play Games, тем самым дав игре четкий сигнал о желании сменить внутриигровую учетную запись на другую. Реакция на это изменение соответствует желаниям игрока; учет этого сигнала приводит к улучшению игрового процесса.
Существующая привязанная учетная запись с другим идентификатором

Этот пример показывает, что даже учетные записи, привязанные к идентификаторам, не относящимся к Play Games Services, следует привязать к Play Games Services, а затем восстановить на новых устройствах. Большинство существующих игроков вашей игры с учетными записями попадают в эту категорию.
Вспомните недавние сообщения
При обсуждении решений часто возникает вопрос о работе с несколькими учетными записями. Если ваша игра побуждает опытных пользователей создавать множество учетных записей (например, гача-игры или игры с выбором вариантов развития сюжета), то привязка идентификатора игрока Play Games Services к одной учетной записи может не обеспечить наилучшего игрового опыта при переходе между устройствами.
В решении для восстановления учетных записей вы сохраняете приблизительное соответствие между идентификатором игрока Play Games Services и внутриигровой учетной записью, и игрок просто видит последние сохраненные вами учетные записи при переключении устройств или при выходе из системы.

В этом примере игрок владеет тремя учетными записями для игры, а затем переходит на новое устройство:

При предложении игроку восстановить учетную запись вы также можете предложить кнопку «Отмена» или «Создать новую», чтобы игрок мог выбрать один из вариантов для создания новой учетной записи.
Для упрощения, ваша игра может запоминать только последнюю использованную учетную запись. Это может быть сложнее в случае переключения между несколькими учетными записями, но все равно соответствует требованию непрерывности.
Дополнительные примеры отзыва
В следующем разделе приведены дополнительные примеры использования метода запоминания.
Телефоны, отличные от Android

Здесь мы покажем, как можно восстановить уже существующие учетные записи (привязанные к учетной записи стороннего сервиса) или учетные записи, созданные с другого устройства, не являющегося сервисом Play Games Services.
Более распространённый вариант — начать с телефона, не работающего на Android, и перейти к играм Google Play на ПК.

Поскольку на телефонах, отличных от Android, отсутствуют сервисы Play Games, функция повторного ввода данных неактивна, и игроку приходится вручную вводить свои учетные данные в Google Play Games на ПК.
Несколько профилей Play Games Services для одной учетной записи
Иногда может быть активно несколько профилей Play Games Services, которые ранее «восстановили» данную учетную запись. В этом случае есть два основных решения, которые будут одинаково эффективны:
В любом случае, сохраните это.
В модели "Сохранить в любом случае" мы игнорируем повторяющиеся ссылки на данную учетную запись.
Переопределите это
В модели «Переопределить» разработчику необходимо помнить о сопоставлении учетных записей Play Games Services и Account и удалять старые сопоставления в своих таблицах. Таким образом, он сможет поддерживать точное соответствие 1:1 между отозванными учетными записями и учетными записями Play Games Services.
Отзыв аналогичного устройства
Игрок, использующий несколько учетных записей, также может использовать вашу функцию быстрого переключения между игровыми аккаунтами.