Интегрируйте игровые сервисы Play с существующим решением для идентификации.

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

Восстановить состояние игрока

В серверной части вашей игры игровые учетные записи, скорее всего, представлены неким идентификатором, который позволяет вам получать и обновлять их прогресс в вашей игре. Для краткости мы будем называть это идентификатором вашей учетной записи. Когда игрок входит в игровые сервисы Play, вы можете использовать эту аутентификацию, чтобы получить новый идентификатор — идентификатор игрока игровых сервисов Play, который используется для выполнения требований сохранения в облаке .

Рабочий процесс с несколькими идентификаторами игровых сервисов Play

Когда игрок входит в систему с помощью игровых сервисов Play, вам следует продолжить следующее:

  1. Получите код OAuth от клиента и отправьте его на свой сервер.
  2. Обменяйте токен аутентификации и получите подтвержденный идентификатор игровых сервисов Play с игрового сервера Play. Это гарантирует, что идентификатору доверяют, а не кому-то, кто притворяется другим игроком, используя взломанное устройство.
  3. Попытайтесь разрешить игровую учетную запись на основе состояния устройства и любых связанных идентификаторов.

В вашу игру необходимо ввести два основных новых сценария:

  • Сохранение идентификаторов игровых сервисов Play на вашем сервере и присвоение их существующим идентификаторам учетных записей каким-либо образом, например:
    • Для новых игроков прогресс в какой-то момент должен быть автоматически связан с игровыми сервисами Play. (например, при запуске игры, после прохождения обучения или некоторого количества уровней и т. д.).
    • Для существующих игроков текущий прогресс должен быть автоматически связан с игровыми сервисами Play после того, как игрок обновится до версии вашей игры со встроенными игровыми сервисами Play V2.
    • Идентификатор игровых сервисов Play можно связать с одной или несколькими учетными записями, а привязку игровых сервисов Play можно отсоединить от этих учетных записей, но он должен быть связан хотя бы с одной действующей учетной записью.
  • Автоматическое восстановление игрового прогресса на вышедшем из системы или новом устройстве на основе идентификатора игрока игровых сервисов Play.

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

При разработке решения начните с рассмотрения существующей системы и того, как она объединяет различных поставщиков удостоверений. Некоторые системы используют один идентификатор для каждой учетной записи, в то время как другие используют несколько идентификаторов для каждой учетной записи.

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

Примеры решений

Примеры решений включают решения привязки и отзыва .

Привязка — это процесс постоянной или полупостоянной привязки идентификатора игровых сервисов Play к состоянию учетной записи. В случае привязки базовая учетная запись, восстановленная через игровые сервисы Play, не меняется для игрока без его действий, даже если он выйдет из системы и войдет в нее под другой учетной записью в вашей игре. Здесь мы рассмотрим это привязкой учетной записи .

Сильный поток связывания

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

Вызов потокаНапомним блок-схему

Дополнительные примеры пользовательского потока прикреплены к решениям ниже.

Привязка аккаунта

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

Рабочий процесс разрешения учетной записи игровых сервисов Play

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

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

Развязывание

Если вы хотите предоставить игроку возможность полностью контролировать свои привязки, вы можете предложить ему возможность отменить привязку идентификатора игрока игровых сервисов Play к игровой учетной записи. Это может быть важно для некоторых игроков с несколькими учетными записями, если они случайно связали свой идентификатор игрока игровых сервисов Play с учетной записью, которая не является их основной учетной записью.

Дополнительные примеры привязки учетной записи

Сильный поток связывания

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

При желании вы можете разрешить игрокам перепривязывать свои учетные записи, но это не обязательно.

Переключение учетных записей на устройстве

Сильная привязка потока смены учетных записей

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

Существующая привязанная учетная запись с другим идентификатором

Сильная привязка существующего потока счетов

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

Вспомнить недавние аккаунты

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

В решении для отзыва вы сохраняете свободное сопоставление идентификатора игрока игровых сервисов Play и внутриигровой учетной записи, и игрок просто видит последние сохраненные вами учетные записи при переключении устройств или выходе из системы.

Напомним блок-схему

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

Вызов потока 2

Когда вы предлагаете игроку восстановить учетную запись, вы также можете предложить игрокам кнопку «Отменить» или «Создать новую», чтобы они могли выбрать создание новой учетной записи.

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

Дополнительные примеры отзыва

В следующем разделе приведены дополнительные примеры использования отзыва.

Телефоны без Android

Вызов потока, отличного от Android

Здесь мы иллюстрируем как отзыв учетных записей, которые уже существуют (связанная сторонняя учетная запись), так и те, которые были созданы на другом устройстве, не входившем в игровые сервисы Play.

Более распространенным вариантом может быть запуск с телефона без Android и переход на Google Play Games на ПК.

Напомним, Flow 2 не для Android

Поскольку на телефоне, отличном от Android, нет игровых сервисов Play, активный отзыв не активен, и игроку приходится вручную вводить свои учетные данные из Google Play Games на ПК.

Несколько профилей игровых сервисов Play для одной учетной записи

Иногда может быть несколько активных профилей игровых сервисов Play, которые ранее «отозвали» определенную учетную запись. В этом случае есть два основных решения, которые будут работать одинаково хорошо:

Сохраните это в любом случае Вызов нескольких профилей Сохранить в любом случае Flow Мы игнорируем повторяющиеся указатели на данную учетную запись в модели «Все равно сохранить».

Переопределить это Вызов нескольких профилей, переопределение потока В модели «Переопределить» разработчику необходимо запомнить сопоставления игровых сервисов Play с учетной записью и удалить старые сопоставления в своих таблицах в модели «Переопределить». Таким образом, они могут обеспечить четкое сопоставление отозванных учетных записей и учетных записей игровых сервисов Play в соотношении 1:1.

Отзыв того же устройства Вызов того же устройства Игрок с несколькими учетными записями также может использовать вашу реализацию отзыва для быстрого переключения между своими игровыми учетными записями.