Совместимость с ПК и оптимизация для Google Play Games на ПК

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

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

При внесении изменений в совместимость и оптимизацию для ПК (помимо поддержки x86-64) вы можете настроить игру так, чтобы она обнаруживала игры Google Play на ПК , а затем отключать или включать функции, специфичные для платформы. Это позволит вам использовать один и тот же APK-файл или пакет приложения для мобильных устройств Android и ПК.

Ниже приведено краткое изложение требований и рекомендаций, представленных на этой странице:

Включает архитектуру ABI x86-64

Требуется в процессе выпуска.

Для обеспечения наилучшей производительности и стабильности на платформе все библиотеки, включенные в вашу игру, должны иметь версии, совместимые с архитектурой x86-64 ABI.

Если технически невозможно выпустить 64-битную версию игры для архитектуры x86, вам необходимо обратиться в группу проверки за исключением. Без исключения игра не получит полной сертификации , но может быть включена в каталог как «играбельная» игра.

Составление библиотеки

Для обеспечения максимальной совместимости с процессорами x86-64 не используйте набор инструкций atom при компиляции библиотек. Например, при использовании gcc избегайте использования -march=atom и вместо этого используйте -march=x86-64 .

Целевая архитектура в Unity

В некоторых версиях Unity 2019 и 2020 отсутствует поддержка архитектуры x86-64 на Android. Убедитесь, что вы используете Unity 2019.4.31f1, 2020.3.19f1 или более позднюю версию.

Если ваша игра использует совместимую версию игрового движка Unity, выполните следующие действия, чтобы включить поддержку архитектуры x86-64 для Android:

  1. Перейдите в «Настройки плеера» > «Другие настройки» > «Конфигурация» > «Бэкенд скриптов» и выберите IL2CPP из выпадающего меню, чтобы включить бэкенд скриптов IL2CPP.

  2. Включите поддержку архитектуры x86-64 Android для вашей версии Unity:

    • Unity 2018 и более ранние версии: перейдите в «Настройки плеера» > «Другие настройки» > «Целевая архитектура» и установите флажок «x86» . Поскольку Unity 2018 поддерживает только архитектуру x86, сборка для x86-64 невозможна. Для этой сборки потребуется разрешение от команды проверки. Пожалуйста, свяжитесь со своим контактом в Google, чтобы запросить разрешение для архитектуры x86.

    • Для версий Unity 2019 Long Term Support (LTS) и более поздних : перейдите в Настройки плеера > Другие настройки > Целевые архитектуры и включите x86-64 (ChromeOS) .

Обнаружение игр Google Play на ПК

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

Проверьте наличие системной функции com.google.android.play.feature.HPE_EXPERIENCE , чтобы определить, работает ли ваша игра на платформе Google Play Games на ПК:

Котлин

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

Java

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

Обработка событий жизненного цикла Android

В среде Google Play Games на ПК важно обрабатывать событие onPause ( c++ ). Ваша игра становится видимой, когда игрок активирует оверлей эмулятора, поэтому игнорирование события onPause может привести к ухудшению пользовательского опыта.

Обновите пользовательский интерфейс.

Некоторые элементы пользовательского интерфейса и жесты несовместимы с ПК и требуют обновления.

Необходимый:

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

Рекомендуется:

  • Весь видимый пользователю текст должен содержать слово «click» вместо «tap».
  • Списки с прокруткой должны иметь полосы прокрутки.
  • Области, которые пользователи могут перемещать по экрану, должны иметь полосы прокрутки или какой-либо другой способ быстрого перемещения на большие расстояния.
  • Не отображайте на экране интерактивную клавиатуру для ввода текста.
  • Все текстовые поля должны находиться в пределах границ текстового поля.
  • При нажатии на видимые элементы должны:
    • Разрешается щелчок мышью в любом месте в пределах видимой области элемента.
    • Не принимать клики в области за пределами видимого элемента.
  • Диалоговые окна должны иметь видимую кнопку закрытия. Не допускайте щелчков за пределами границ диалогового окна.

Отключить большинство диалоговых окон для запроса разрешений

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

Неподдерживаемые функции и разрешения Android

Требуется в процессе выпуска.

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

Полный список доступных функций можно просмотреть, набрав:

adb shell pm list features

Для обеспечения совместимости вашей игры с ПК необходимы следующие изменения:

  • Чтобы пометить функции как необязательные в манифесте вашего приложения, добавьте android:required="false" к объявлению <uses-feature> `. Это относится только к функциям, уже объявленным в манифесте вашего приложения.

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

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

Для получения дополнительной информации о совместимости манифестов приложений см. руководство по совместимости манифестов приложений Chromebook .

Требования к функциональному тестированию

Перед отправкой первой тестовой сборки в Google Play Console удалите следующие аппаратные компоненты:

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location

Некоторые из этих функций могут быть указаны как поддерживаемые при выполнении команды pm list features в целях совместимости, но они не полностью реализованы. Для получения дополнительной информации о том, как удалить функцию android.hardware.wifi , см. раздел «Мониторинг состояния подключения и учет трафика» . Полный список неподдерживаемых функций см. в руководстве по совместимости манифеста приложения для Chromebook .

Требования к контролю качества

Эти часто используемые аппаратные компоненты несовместимы с ПК, поэтому их необходимо удалить перед окончательной отправкой в ​​Google Play Console:

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

Неподдерживаемые разрешения

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

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_WIFI_STATE
  • android.permission.BLUETOOTH
  • android.permission.CAMERA
  • android.permission.FOREGROUND_SERVICE
  • android.permission.GET_ACCOUNTS
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_CONTACTS
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.READ_PHONE_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.WRITE_SETTINGS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION

Внешние веб-сайты и WebViews

Интент браузера загружается в собственном веб-браузере компьютера, а не в среде Google Play Games на ПК. Это идеальное решение для игроков в большинстве ситуаций.

Для упрощения переноса, Google Play Games на ПК поддерживает WebView . Поскольку игра открывается в среде Google Play Games на ПК, в ней отсутствует стандартный настольный браузер. Если вы ранее использовали WebView для публикации условий использования, политики конфиденциальности или другого подобного контента, вам следует вместо этого использовать намерение браузера .

Отключите неподдерживаемые API сервисов Google Play.

Требуется в процессе выпуска.

Google Play Games на ПК поставляется со своей собственной версией Google Play Services, которая содержит лишь часть API Google Play Services. Вам необходимо убедиться, что ваше приложение не сильно зависит от модулей, которые отсутствуют или не поддерживаются на ПК. Учтите, что некоторые модули могут быть доступны, но их функциональность может поддерживаться не всегда. Например, Firebase Cloud Messaging не будет работать, если Google Play Games на ПК закрыт.

Поддерживаемые модули

В настоящее время эти модули доступны и поддерживаются Google Play Games на ПК, а в планах — добавление новых функций:

Ограниченная поддержка

Следующие модули функционируют частично. Мы приложим все усилия для их поддержки в Google Play Games на ПК, но не можем гарантировать их работоспособность.

Не поддерживается

Эти модули не поддерживаются в играх Google Play на ПК, но при сбоях в играх Google Play на ПК проблем не возникает:

Сломанный

Требуется в процессе выпуска.

Не используйте эти модули на ПК, так как они могут вызывать некорректную работу игр Google Play на компьютере.

Включить хранилище с ограниченной областью действия

Требуется в процессе выпуска.

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

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

Для получения дополнительной информации об ограниченном объеме хранилища см.:

Аналитика

Устаревшие версии Google Analytics не работают в Google Play Games на ПК. Если это относится к вашим играм, вам следует перенести их на Google Analytics 4 .

Это должно повлиять на вашу игру только в том случае, если вы используете Google Analytics 360. Если вы используете Firebase SDK для отслеживания аналитических событий в вашей игре и видите свою игру как свойство в консоли Google Analytics , то вам не нужно предпринимать никаких дальнейших действий.