Обзор миграции

В Google Play Games Services, в SDK games v1, используется вход через Google для Android, который устарел и будет удален из SDK аутентификации Google Play Services ( com.google.android.gms:play-services-auth ) в 2025 году. Новые игровые приложения могут использовать games v1 до 2025 года. Удаление входа через Google создает проблемы с зависимостями для существующих игровых приложений. Переход существующих игровых приложений с SDK games v1 на SDK games v2 решает проблемы с зависимостями, возникшие в результате удаления входа через Google.

Переход с Google Play Games Services версии 1 на версию 2 — это значительное обновление, упрощающее разработку и поддерживающее кроссплатформенные игры. Google Play Games Services v2 разделяет идентификацию платформы и внутриигровую идентификацию, выступая в качестве системы идентификации на уровне платформы, которая автоматически аутентифицирует игроков при запуске. Идентификация платформы теперь отделена от основной системы внутриигровых учетных записей, которой необходимо управлять независимо с помощью таких инструментов, как «Вход через Google» или собственных бэкэндов. Интеграция SDK Play Games Services v2 использует идентификатор игрока для таких функций платформы, как достижения и таблицы лидеров, без изменения существующих процессов регистрации или входа в систему.

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

Взаимодействие SDK

Диаграммы иллюстрируют взаимодействие между игровым приложением на Android, Google Mobile Services (GMS) Core, Play Games Services и сервером игр стороннего разработчика (3P). На них показано, как приложение использует сервисы Google для аутентификации и игровых функций, а также взаимодействует с отдельной системой стороннего разработчика.

игры v2 (текущая версия)

Взаимодействие между игровым приложением на Android, GMS Core, Play Games Services, и игровым сервером стороннего разработчика (3P).
Взаимодействие между игровым приложением на Android, GMS Core, Play Games Services и сторонним (3P) игровым сервером. (нажмите для увеличения).

игры версии 1 (устаревшая версия)

Взаимодействие между игровым приложением на Android, GMS Core, Play Games Services, и игровым сервером стороннего разработчика (3P).
Взаимодействие между игровым приложением на Android, GMS Core, Play Games Services и сторонним (3P) игровым сервером. (нажмите для увеличения).

Ниже приведён краткий обзор компонентов и SDK:

  • Игровое приложение.
    • Это означает, что игровое приложение пользователя работает на устройстве под управлением Android.
    • Он состоит из двух основных компонентов:
      • SDK для игр версии 1 или 2. Клиентский SDK, отвечающий за взаимодействие с сервисами Play Games.
      • SDK аутентификации. SDK аутентификации сервисов Google Play отвечает за обработку процессов аутентификации и авторизации пользователей в играх версии 1.
    • Оба SDK взаимодействуют с использованием AIDL (Android Interface Definition Language), что указывает на схему обмена данными между различными процессами или службами.
  • GMS Core также называется Google Play Services.
    • Это собственная разработка Google на платформе Android.
    • В игровом приложении используются два модуля GMS Core:
      • Игровой модуль предоставляет функции, специфичные для каждой игры, такие как таблицы лидеров, достижения и управление состоянием игры.
      • Модуль аутентификации. Обрабатывает операции аутентификации и авторизации пользователей.
    • SDK для игр и аутентификации в игровом приложении взаимодействуют с соответствующими модулями, используя интерфейсы AIDL , что указывает на межпроцессное взаимодействие (IPC).

  • Шлюз сервисов Play Games.
    • Логический шлюз, обеспечивающий связь между ядром GMS и сервером Play Games Services.
    • Обрабатывает API-запросы, выполняет преобразование данных и аутентификацию для взаимодействия с сервером.
  • Сервер Play Games Services.
    • Представляет собой серверные службы Play Games Services, отвечающие за хранение игровых данных, управление учетными записями пользователей и обеспечение работы многопользовательских функций.
  • Платформа для сторонних игр.
    • Если ваше игровое приложение относится к категории сторонних (3P) приложений, клиентская библиотека взаимодействует с серверами Play Games Services через серверы сторонних игр.
    • Это означает, что приложение также может проходить аутентификацию у другого поставщика услуг.
  • Сторонний игровой сервер.
    • Представляет собой необязательный внешний сервер, с которым может взаимодействовать игровое приложение, вероятно, для реализации пользовательских функций или управления данными.
    • Взаимодействие с приложением осуществляется через сторонний игровой шлюз.

Зачем переводить вашу игру на Play Games Services v2?

Переход от Play Games Services v1 к v2 представляет собой масштабную архитектурную модернизацию, которая упрощает разработку и поддерживает кроссплатформенные игры.

В отличие от версии 1, которая служила основной системой идентификации в игре, Play Games Services v2 разделяет идентификацию на уровне платформы и внутриигровую идентификацию. Она действует как система идентификации на уровне платформы , которая автоматически аутентифицирует игроков при запуске для управления такими функциями, как достижения и таблицы лидеров.

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

Сравните аутентификацию на платформе и внутриигровую аутентификацию.

В Play Games Services v2 концепция «входа в систему» ​​разделена на два отдельных уровня:

  • Идентификация платформы. SDK обрабатывает аутентификацию платформы.
  • Идентификация в игре.

Аутентификация платформы

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

  • Бесшумный и автоматический режим: аутентификация происходит автоматически в фоновом режиме при запуске игры. Для работы сервисов Play Games Services не требуется нажимать кнопку «Войти» вручную.
  • Идентификатор игрока: После успешной аутентификации на платформе Play Games Services предоставляет стабильный идентификатор игрока . Этот идентификатор остается неизменным на разных устройствах для одной и той же игры, но его следует использовать в основном для отслеживания статистики платформы (например, прогресса в достижениях).
  • Разделение функций: Play Games Services v2 не должен использоваться в качестве основной системы идентификации вашей игры для управления внутриигровой учетной записью игрока, его игровым прогрессом или инвентарем. Play Games Services v2 действует исключительно как вторичный, постоянный идентификатор платформы.

Внутриигровая аутентификация

Разработчики отвечают за управление «внутриигровым аккаунтом» (IGA). Это система идентификации, которая связывает прогресс игрока, инвентарь и валюту в вашей игре.

  • Основной способ авторизации: В качестве основного метода входа в систему вы можете использовать собственную серверную часть, вход через Google (SiWG) или других поставщиков.
  • Независимость: Игрок может войти в систему Play Games Services (идентификация платформы), чтобы зарабатывать достижения, используя любую конкретную внутриигровую учетную запись. Например, гостевую учетную запись или определенную учетную запись SiWG.
  • Управление несколькими внутриигровыми учетными записями: Сервисы Play Games отвечают только за аутентификацию платформы, а ваша игра управляет основной аутентификацией игроков в их внутриигровых учетных записях (IGA). Это означает, что существующие процессы переключения игроков между внутриигровыми учетными записями в вашей игре останутся неизменными. Во время переключения игроки будут по-прежнему аутентифицированы на платформе Play Games с помощью сервисов Play Games, а вы продолжите отправлять их данные, связанные с достижениями и другими функциями сервисов Play Games, используя постоянный идентификатор игрока.

Требование для миграции: привяжите внутриигровые учетные записи к Google Open ID вместо Play Games Services Player ID.

В Play Games Services v1 разработчики использовали Play Games Services в качестве основного поставщика идентификационных данных. Кнопка «Google Play» напрямую связывала внутриигровой аккаунт игрока (IGA) с его Player ID .

В версии 2 сервисов Play Games Services это исправлено за счет автоматической, незаметной аутентификации платформы при запуске. Полученный Player ID теперь используется исключительно для таких функций платформы, как таблицы лидеров и достижения, отдельно от входа в основную учетную запись.

Теперь игры должны самостоятельно управлять основной идентификацией через специальный экран входа в систему, предлагающий такие методы, как «Вход через Google» (SiWG) или другие учетные записи социальных сетей. Крайне важно, чтобы Play Games Services v2 не использовался в качестве основной системы идентификации .

Этот архитектурный сдвиг требует соответствующего изменения в том, как разработчики структурируют данные своих учетных записей. Игровая учетная запись (IGA) должна быть отделена от привязки к Player ID .

Вместо этого, IGA теперь должен быть привязан к стабильному основному идентификатору, независимому от Play Games Services. Рекомендуемым идентификатором является Open ID предоставляемый процессом входа через Google (SiWG). Этот Open ID служит уникальным, постоянным ключом для основной учетной записи игрока в вашей системе.

Однако IGA по-прежнему можно связать с Player ID в качестве дополнительной привязки. Эта дополнительная связь выполняет две важные функции:

  1. Это позволяет игре продолжать отслеживать и обновлять прогресс по функциям Play Games (достижениям и т. д.), связанным с конкретным игроком.
  2. Это активирует функцию "Бесшовное восстановление", позволяющую игре автоматически входить в систему игрока в его последнем использованном IGA-файле только на новом устройстве или после переустановки.

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

Сравнение характеристик

В этой таблице представлено сравнение функций SDK игр версии 1 и версии 2:


Особенность

игры v1 SDK

игры v2 SDK

Аутентификация

Требуется интеграция с play-services-auth .

Упрощенная и оптимизированная система; не требуется play-services-auth .

Авторизация

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

Управление осуществляется с помощью SDK.

Токен доступа к серверу

Можно запросить дополнительные области действия OAuth 2.0 с помощью GoogleSigninClient .

Дополнительный код для обработки ошибок во время аутентификации.

При запросе доступа к веб-API сервисов Play Games через GamesSignInClient можно запросить три основных области идентификации OAuth 2.0.

Для получения дополнительной информации см. разделы «Доступ к сервисам Play Games на стороне сервера» и «Получение кодов аутентификации сервера» .


Процесс входа в систему

Использует GoogleSigninClient .

Дополнительный код для обработки шаблонного кода автоматической аутентификации и обработки ошибок.

Использует GamesSignInClient .

SDK обрабатывает шаблонный код, автоматическую аутентификацию и обработку ошибок. Процесс "входа в систему" разделен на два отдельных уровня:
  • Аутентификация платформы: обрабатывается SDK Play Games Services v2.
  • Аутентификация в игре: обрабатывается игрой.

Всплывающее окно приветствия

Требуется дополнительный код.
Разработчики могут контролировать его размещение и время появления.

Дополнительный код не требуется. Единый пользовательский интерфейс во всех играх, настроенных с помощью SDK для игр версии 2.

Зависимости

Требуется play-services-auth .

Модуль Games отвечает за авторизацию и аутентификацию. Вам не нужно добавлять никаких дополнительных зависимостей.
Выход

Использует GoogleSignInClient.signOut .

API для выхода из системы не требуется, поскольку Play Games Services v2 обеспечивает постоянную идентификацию платформы.

Учетные записи и настройки для каждой игры в рамках сервиса Multiple Play Games Services.

Управление учетной записью возможно прямо в игре.

Пользователи могут изменить профиль сервиса Play Games в настройках мобильного устройства. Для получения дополнительной информации см. раздел «Как переключать профили Play Games на мобильном устройстве» .