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

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

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

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

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

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

2.2 Лучшая практика Сделайте достижения различимыми.

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

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

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

2.4 Лучшая практика Создавайте достижения для различных уровней сложности.

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

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

трудно получить достижение, требующее заработать 5 тысяч драгоценных камней
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 Хорошо иметь Используйте оценочные теги.

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

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