Сохранение в облаке

Игроки играют на нескольких устройствах и устанавливают игру на одно и то же устройство несколько раз. В результате им всегда приходится начинать игру с последнего этапа. Для этого необходимо реализовать в игре облачное сохранение.

В вашей игре необходимо реализовать решение для облачного сохранения, состоящее из двух частей:

  1. Сохранить в облаке

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

  2. Разрешение конфликтов для нескольких состояний игры

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

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

Сохраненные игры

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

Этот сервис предлагает несколько ключевых преимуществ как для игроков, так и для разработчиков:

  • Синхронизируйте игровые данные на нескольких устройствах. Например, игрок может начать игру на телефоне Android и продолжить её на планшете, не теряя прогресса.
  • Обеспечьте сохранность данных. Игроки смогут продолжить игру, даже если их устройство потеряно, сломано или обменено на более новую модель.

Чтобы узнать, как реализовать сохраненные игры для вашей платформы, см. раздел Клиентские реализации .

Основы сохраненных игр

Сохраненная игра состоит из двух частей:

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

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

Изображения на обложке

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

Описания

Вы можете добавить краткое текстовое описание содержания конкретной сохранённой игры. Это описание будет показано игрокам и должно отражать состояние, которое представляет сохранённая игра, например, «Сражение с гоблинами в тёмном лесу».

Квота

Разработчики не платят за сохранённые игровые данные, хранящиеся в облаке. Вместо этого эти данные учитываются в квоте Google Диска игрока — вам не нужно об этом беспокоиться. Единственная квота, о которой стоит беспокоиться разработчикам игр, — это квота API Google Диска.

Изоляция чтения и записи

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

Оффлайн поддержка

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

Разрешение конфликтов

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

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

Пределы

Сервисы Google Play Games устанавливают ограничения на размер двоичных данных и изображений обложек: 3 МБ и 800 КБ соответственно.

Сохраненные метаданные игры

Структурированные метаданные сохраненной игры содержат следующие свойства:

Свойство Описание
ИДЕНТИФИКАТОР Уникальная строка, сгенерированная игровыми сервисами Google Play для этой сохранённой игры. Используйте этот идентификатор для ссылки на сохранённую игру в ваших игровых клиентах.
Имя Короткое имя сохранённой игры, предоставленное разработчиком, например, «Слот сохранения 1» или «ИмяИгрока_Save1». Оно не отображается игрокам.
Описание Описание сохраненной игры, предоставленное разработчиком.
Последнее изменение Временная метка в миллисекундах, сгенерированная сервисами Google Play Games, указывающая на момент последнего обновления сохраненной игры.
Игровое время

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

Например, значение игрового времени 3600000 будет отображаться в сервисах Google Play Games Services как «1 час».

Изображение на обложке Это необязательное свойство, предоставляемое разработчиком, которое содержит информацию об изображении обложки .

Клиентские реализации

Чтобы узнать, как реализовать сохраненную игру на вашей платформе, ознакомьтесь со следующими ресурсами: