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

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

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

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

Вот краткое изложение требований и рекомендаций на этой странице:

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

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

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

Если для вашей игры технически невозможно выпустить 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, выполните следующие действия, чтобы включить целевые устройства Android x86-64:

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

  2. Включите целевые устройства Android x86-64 для вашей версии 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")
  

Ява

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

С#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

adb shell pm list features

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

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

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

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

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

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

Удалите эти аппаратные функции перед отправкой первой тестовой сборки в консоль Google Play:

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

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

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

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

  • 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, который содержит только часть API-интерфейсов сервисов Google Play. Вам необходимо подтвердить, что ваше приложение не сильно зависит от модулей, которые отсутствуют или не поддерживаются на ПК. Учтите, что некоторые модули могут быть доступны, но их функциональность поддерживается не всегда. Например, 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 Играх на ПК. Если это относится к вашим играм, вам следует перенести их в Google Analytics 4 .

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