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

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

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

1. Войти

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

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

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

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

1,2 Необходимый Не запрашивайте области, не связанные с Play Games, при создании клиента входа. Это позволит игрокам автоматически входить в вашу игру, так как запросы областей, не связанных с Play Games, заставят пользователей использовать интерактивный вход.

Если вы уже запрашиваете области действия, не связанные с 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.

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

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

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

1,6 Лучшая практика Помните, если игроки отказались войти в систему.

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

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

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

1,7 Лучшая практика Увеличьте количество зарегистрированных игроков.

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

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

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

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

1,9 Хорошо иметь Напомните игрокам, что они вошли в систему.

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

1.10 Необходимый Резервное копирование прогресса игрока с помощью идентификатора игровых сервисов Play.

Чтобы гарантировать, что игроки не потеряют свой прогресс при переключении или сбросе устройств, или если они играют на нескольких устройствах, убедитесь, что их прогресс копируется в решение для облачного сохранения, и используйте идентификатор 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 используют версии значков достижений в оттенках серого, чтобы показать, заработаны они или нет. Если вы ограничены использованием только черных (или полностью белых) значков достижений, отображайте их на цветном фоне.

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 Хорошо иметь Используйте теги результатов.

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

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

3,6 Хорошо иметь Креативно разработайте собственный интерфейс таблицы лидеров

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

3,7 Хорошо иметь Покажите игрокам, как они выглядят на фоне конкурентов.

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

4. Друзья

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

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

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

4.1.1. Значок Play Games должен быть кликабельным.
Если пользователь нажимает значок, игра должна вызвать getCompareProfileIntent() или getCompareProfileIntentWithAlternativeNameHints() , чтобы показать пользовательский интерфейс, где пользователь может сравнить себя с профилем другого игрока.
4.1.2. Профили игроков и поддержка приглашений друзей для настраиваемых имен игроков в игре.
Если игрок устанавливает другое имя в игре (и не использует имя своего профиля в Play Games), используйте getCompareProfileIntentWithAlternativeNameHints() , чтобы предоставить это альтернативное игровое имя как для текущего игрока, так и для игрока, которого они просматривают, в качестве контекста. для просмотра профиля и любого приглашения в друзья, отправленного из него. В качестве значений следует передавать только постоянные глобальные имена игроков, а не произвольный пользовательский контент. Это требование означает, что приглашения в друзья, отправленные из игры, будут предоставлять контекст обоим игрокам:
  • Получатель увидит внутриигровое имя отправителя приглашения вместе с названием игры.
  • При просмотре дружбы отправитель по-прежнему будет видеть внутриигровое имя получателя, а также игру, из которой он ее инициировал.
4.2 Лучшая практика Используйте разные значки, чтобы показать, какие пользователи Play Игр уже являются вашими друзьями, а какие еще не являются друзьями Play Игр, но вошли в Play Игры. Используйте два значка для пользователей Play Games: один для «Друзей» и один для «Не друзья» (или когда статус дружбы неизвестен).
Значок друзей
Значок "Не друзья"
4.3 Лучшая практика Вызывайте loadFriends() каждый раз, когда вы входите в систему и отображаете список друзей, чтобы убедиться, что список друзей актуален. Убедитесь, что игроки видят обновленный список.
4.4 Лучшая практика Если в вашей игре уже есть друзья в игре, используйте API друзей, чтобы расширить список друзей, добавив друзей из Play Игр. Если игрок находится в списке друзей в игре и является другом Play Games, отобразите значок «Друзья».
4,5 Лучшая практика Если игрок отклонил запрос на доступ к своему списку друзей, не показывайте диалоговое окно с запросом на доступ снова, пока пользователь не предпримет действие, указывающее, что он хочет предоставить доступ (например, нажав кнопку «Импортировать друзей из Play Games»). ).
4.6 Лучшая практика Если игрок запретил доступ к списку друзей, дайте ему возможность предоставить доступ к списку друзей в будущем (например, после нажатия кнопки «Импортировать друзей из Play Games»).
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. Даже если вы избегаете ограничения скорости, частые вызовы могут привести к высокому сетевому трафику и ускоренному разряду аккумулятора устройства. Чтобы этого избежать, можно использовать следующие приемы:

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

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

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

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

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

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

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