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

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

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

1. Войти

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

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

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

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

1,2 Хорошо иметь Следуйте рекомендациям Google по брендингу.

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

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

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

1,4 Необходимый Резервное копирование прогресса игрока с помощью идентификатора игровых сервисов 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 , либо в пользовательском интерфейсе выбора сохраненных игр по умолчанию.