Контрольный список качества для игровых сервисов Google Play

В связи с прекращением поддержки API Google Sign-In , мы удаляем SDK для игр версии 1 в 2026 году. После февраля 2025 года вы не сможете публиковать в Google Play игры, которые были интегрированы с SDK для игр версии 1. Мы рекомендуем использовать вместо него SDK для игр версии 2.
Хотя существующие игры с интеграцией предыдущих версий v1 будут продолжать работать еще пару лет, мы рекомендуем перейти на версию v2, начиная с июня 2025 года.
Данное руководство предназначено для использования SDK Play Games Services v1. Информацию о последней версии SDK см. в документации v2 .

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

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

1. Вход в систему

Следующие задачи из контрольного списка относятся к реализации функции входа игрока в вашу игру. Подробнее о том, как работает вход в систему и как его следует реализовать, читайте в разделе «Концепции входа в систему» . Примеры кода по реализации входа в систему в мобильных играх см. в разделе «Реализация входа в систему на Android» .

ИДЕНТИФИКАТОР Важность Описание
1.1 Необходимый Вход в систему осуществляется через сервисы Google Play Games.
1.1.1. Автоматически вводите игроков в систему при запуске игры; используйте ручной вход в систему в качестве резервного варианта.

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

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

1.2 Необходимый Do not request non-Play Games scopes when creating your sign-in client. This will allow players to automatically sign into your game, as requesting non-Play Games scopes will force users to use interactive sign-in.

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

// This is the proper way to do it
GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
1.3 Необходимый Разрешите игрокам оставаться авторизованными.

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

1.4 Необходимый При входе в систему отобразите всплывающее окно «Подключение» в соответствующем режиме.

На устройствах Android всплывающее окно «Подключение» Google Play Games должно отображаться при каждом запуске процесса входа в систему. Для этого необходимо вызвать метод setViewForPopups() класса GamesClient . Убедитесь, что это всплывающее окно отображается при автоматическом входе игрока в игру в начале игры. Это позволит игрокам убедиться, что они правильно входят в вашу игру.

В следующем примере показано, как может появиться всплывающее окно «Подключение» в игре для Android во время входа в систему, за которым следует короткая анимация логотипа Google Play Games Services.

На скриншоте показано всплывающее окно «Подключение к».
1.5 Необходимый Предоставьте игрокам возможность выйти из системы.

После входа в систему у игрока всегда должна быть возможность выйти из системы.

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

1.6 Передовая практика Помните, если игроки отказались от регистрации.

Если игрок отказывается войти в систему при первоначальном запуске процесса авторизации (например, если он нажал «Отмена» в интерфейсе авторизации), вы все равно должны позволить ему продолжить игру.

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

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

1.7 Передовая практика Максимально увеличить количество авторизованных игроков.

Увеличение числа игроков, входящих в Google Play Games Services, приносит пользу вашим игрокам, расширяя возможности для совместной и соревновательной игры. Чтобы максимизировать количество игроков, входящих в Google Play Games Services, настоятельно рекомендуется автоматически предлагать игрокам войти в систему, как описано выше.

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

  • Сразу после начала вашей игры.
  • Сразу после вводного этапа, например, кат-сцены или обучающего видео.
  • Когда игрок нажимает на кнопку входа в Google в любом месте вашей игры.
1.8 Полезно иметь Следуйте рекомендациям Google по фирменному стилю.

Чтобы обеспечить игрокам привлекательный и единообразный игровой процесс от начала до конца, внедрите фирменные стандарты Google Play Games Services .

1.9 Полезно иметь Напомните игрокам, что они вошли в систему.

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

1.10 Необходимый Создавайте резервные копии игрового прогресса, используя идентификатор сервиса Play Games.

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

Если пользователь не авторизован, постарайтесь сохранить его прогресс локально, а затем синхронизировать его, когда игрок наконец войдет в игру. Это поможет предотвратить потерю прогресса игрока, если он отложит вход в вашу игру.

2. Достижения

Следующие задачи из контрольного списка относятся к внедрению функции достижений в вашу игру.

ИДЕНТИФИКАТОР Важность Описание
2.1 Необходимый Убедитесь, что все цели достижимы.

Игроки должны иметь возможность разблокировать все созданные вами достижения.

2.2 Передовая практика Сделайте достижения заметными.

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

2.3 Передовая практика Оценивайте достижения пропорционально.

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

2.4 Передовая практика Разрабатываемые проекты для различных уровней сложности.

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

Например, на следующем скриншоте показано труднодостижимое достижение, которое помогает мотивировать и удерживать поклонников игры.

Сложное достижение, для получения которого нужно заработать 5000 самоцветов.
2.5 Полезно иметь Не стоит ставить достижения на первое место.

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

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

2.6 Полезно иметь Определите достижения, связанные с увлекательными внутриигровыми действиями.

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

2.7 Полезно иметь Используйте цветные значки достижений.

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

2.8 Полезно иметь Сведите к минимуму использование скрытых достижений.

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

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

«Найти 100 сундуков с сокровищами» — это более престижное достижение, чем «Найти предмет, вероятность появления которого в сундуке с сокровищами составляет 1%».

2.10 Полезно иметь Думайте как «охотник за достижениями».

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

2.11 Полезно иметь Убедитесь, что значок вашего достижения отображается корректно.

Когда значок достижения отображается во всплывающем уведомлении Android, он накладывается поверх круга, а его внешние углы скрываются. Убедитесь, что ваш значок по-прежнему хорошо выглядит в этих условиях.

3. Таблицы лидеров

Следующие задачи из контрольного списка относятся к внедрению функции таблиц лидеров в вашу игру.

ИДЕНТИФИКАТОР Важность Описание
3.1 Передовая практика Сделайте таблицы лидеров видимыми в главном меню и после ключевых переходов.

Таблицы лидеров должны быть легко доступны при загрузке игры. После важных переходов в игре (например, в конце уровня или при смерти игрока) игроки должны немедленно видеть ссылки на соответствующие таблицы лидеров.

3.2 Передовая практика Определите верхние пределы для результатов, которые можно提交.

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

3.3 Передовая практика Используйте пользовательские значки.

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

3.4 Передовая практика Необходимо поддерживать приемлемую частоту отправки результатов.

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

3.5 Полезно иметь Используйте метки результатов.

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

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

3.6 Полезно иметь Создайте свой собственный креативный интерфейс для таблицы лидеров.

Если у вас есть ресурсы, создайте собственную пользовательскую таблицу лидеров на основе данных из социальных таблиц лидеров. Социальные таблицы лидеров, как правило, обеспечивают более привлекательный пользовательский опыт, чем публичные таблицы. Сначала проверьте, есть ли какие-либо записи в социальной таблице лидеров. Если нет, используйте вместо неё публичную таблицу лидеров.

3.7 Полезно иметь Покажите игрокам, как они выглядят на фоне конкурентов.

API таблиц лидеров поддерживает отображение результатов (например, рейтинг игрока в пределах +/- 10 позиций). При создании пользовательского представления это может стать мощным способом повышения вовлеченности. Это можно показывать сразу после критического перехода в игре (например, в конце уровня или при гибели игрового персонажа). Избегайте лишних кликов между игроками и информацией об их рейтинге.

4. Друзья

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

ИДЕНТИФИКАТОР Важность Описание
4.1 Необходимый Когда игроки отображаются в списке, показывайте значок «Играть в игры» рядом с пользователями, у которых есть профиль в игре «Играть в игры».

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

4.1.1. Значок «Играть в игры» должен быть кликабельным.
Если пользователь нажимает на значок, игра должна вызвать метод getCompareProfileIntent() или getCompareProfileIntentWithAlternativeNameHints() чтобы отобразить пользовательский интерфейс, где пользователь может сравнить свой профиль с профилем другого игрока.
4.1.2. Поддержка профилей игроков и приглашений в друзья, позволяющая настраивать имена игроков в игре.
Если игрок задаёт другое имя в игре (и не использует имя своего профиля в Play Games), используйте getCompareProfileIntentWithAlternativeNameHints() чтобы предоставить это альтернативное имя в игре как текущему игроку, так и игроку, профиль которого он просматривает, в качестве контекста для просмотра профиля и любых приглашений в друзья, отправленных из него. Передавайте в качестве значений только постоянные глобальные имена игроков, а не произвольный пользовательский контент. Это требование означает, что приглашения в друзья, отправленные из игры, будут предоставлять контекст обоим игрокам:
  • Получатель увидит внутриигровое имя отправителя приглашения, а также название игры.
  • При просмотре списка друзей отправитель по-прежнему будет видеть внутриигровое имя получателя, а также игру, из которой он инициировал дружбу.
4.2 Передовая практика Используйте разные значки, чтобы показать, какие пользователи Play Games уже являются друзьями, а какие еще не являются друзьями Play Games, но вошли в систему через Play Games. Используйте два значка для пользователей Play Games: один для «Друзья» и один для «Не друзья» (или когда статус дружбы неизвестен).
значок друзей
Не значок друзей
4.3 Передовая практика Вызывайте loadFriends() каждый раз при входе в систему и отображайте список друзей, чтобы убедиться, что список друзей актуален. Убедитесь, что игроки видят обновленный список.
4.4 Передовая практика Если в вашей игре уже есть друзья, используйте API друзей, чтобы расширить список друзей, добавив друзей из Play Games. Если игрок находится в списке друзей в игре и одновременно является другом из Play Games, отобразите значок «Друзья».
4.5 Передовая практика Если игрок отклонил запрос на доступ к своему списку друзей, не показывайте диалоговое окно с запросом на доступ повторно, если пользователь не предпринял никаких действий, подтверждающих его желание предоставить доступ (например, нажав кнопку «Импортировать друзей из игр»).
4.6 Передовая практика Если игрок запретил доступ к списку друзей, предоставьте ему возможность разрешить доступ к списку друзей в будущем (например, после нажатия кнопки «Импортировать друзей из игр»).
4.7 Передовая практика Если вы используете идентификатор игрока или список друзей с бэкэнд-сервером, вам необходимо обеспечить безопасный доступ к идентификатору или списку. Кроме того, для некоторых старых игр и игроков идентификатор игрока, возвращаемый Android SDK, может отличаться от идентификатора, который видят другие игроки при просмотре этого игрока в той же игре; это особенно актуально при использовании списка друзей. Однако player_id возвращаемый в REST API, всегда остается неизменным и всегда является тем идентификатором, который виден другим игрокам.

5. Квоты и ограничение скорости

Следующие задачи из контрольного списка относятся к управлению квотой и ограничением скорости в вашей игре. Чтобы узнать, как управлять квотой вашей игры и определять, когда превышен лимит скорости, см. раздел «Управление квотой и ограничением скорости» .

ИДЕНТИФИКАТОР Важность Описание
5.1 Передовая практика Используйте клиентские библиотеки.

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

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

5.2 Полезно иметь Сочетайте частые звонки с постепенными достижениями.

Если вы разрабатываете файтинг и у вас есть достижение «Нанести 5000 ударов», не отправляйте вызов увеличения достижения каждый раз, когда кто-то наносит удар. Подождите до конца раунда, а затем отправьте один вызов increment(xxx) (где xxx — общее количество ударов, нанесенных в этом раунде), или подождите, пока не будет нанесено 50 ударов, прежде чем отправлять один вызов increment(50) .

5.3 Полезно иметь Будьте внимательны к своему потреблению.

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

  • При сохранении игровых сохранений рекомендуется делать это раз в несколько минут, а не при каждом нажатии кнопки.
  • Дождитесь окончания игры игрока, прежде чем отправлять данные о его лучшем результате.
  • Чтобы проверить ежедневную квоту вашего приложения, перейдите на панель управления проекта в Google Cloud Platform.

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

Следующие задачи из контрольного списка относятся к внедрению функции сохранений в вашу игру.

ИДЕНТИФИКАТОР Важность Описание
6.1 Необходимый Добавьте метаданные для предоставления дополнительного контекста для сохраненных игр.

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

  • Изображение на обложке — скриншот, который фиксирует игровой процесс и напоминает игрокам, на каком этапе они остановились.
  • Описание — Краткое описание, предоставляющее дополнительный контекст для изображения на обложке.
  • Отметка времени — указывает, сколько времени игрок проводит в этой сохранённой игре.
6.2 Необходимый Разрешите игрокам загружать сохраненные игры.

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