Google Play Games на ПК требует внесения изменений в совместимость с ПК и оптимизацию вашей игры. Эти изменения гарантируют, что ваша игра может работать на ПК, а пользовательский опыт оптимизирован для платформы.
Кроме того, Google Play Games на ПК имеет требования к графике, устройству ввода и кросс-девайсной игре. Для получения дополнительной информации см. Руководство по началу работы .
При внесении изменений в совместимость и оптимизацию ПК (кроме поддержки x86-64) вы можете настроить игру на обнаружение Google Play Games на ПК , а затем отключить или включить функции, специфичные для платформы. Это позволяет использовать один и тот же APK или App bundle для мобильных Android-релизов и ПК-релизов.
Ниже приведен краткий обзор требований и рекомендаций на этой странице:
- Включить x86-64 ABI (обязательно)
- Обнаружение игр Google Play во время выполнения (рекомендуется)
- Обработать событие onPause (рекомендуется)
- Обновить элементы пользовательского интерфейса (обязательно)
- Отключить диалоговые окна разрешений приложений Android (обязательно)
- Отключить неподдерживаемые функции и разрешения Android (обязательно)
- Заменить WebViews на намерения браузера (рекомендуется)
- Отключить неподдерживаемые API сервисов Google Play (обязательно)
- Включить хранилище с ограниченной областью действия (обязательно)
- Перейти на Google Analytics 4 (рекомендуется)
Включить архитектуру x86-64 ABI
Требуется для процесса выпуска
Все библиотеки, включенные в вашу игру, требуют версий, совместимых с 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, выполните следующие действия, чтобы включить поддержку Android x86-64:
Перейдите в Настройки проигрывателя > Другие настройки > Конфигурация > Scripting Backend и выберите IL2CPP в раскрывающемся меню, чтобы включить IL2CPP Scripting Backend.
Включите цели Android x86-64 для вашей версии Unity:
Unity 2018 и более ранние версии: перейдите в Player Settings > Other Settings > Target Architecture и установите флажок x86 . Поскольку Unity 2018 поддерживает только цели x86, вы не сможете собрать x86-64. Для этой сборки потребуется исключение от группы проверки. Пожалуйста, свяжитесь с вашим контактом в Google, чтобы запросить исключение x86.
Выпуск Unity 2019 с долгосрочной поддержкой (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
может привести к плохому пользовательскому опыту.
Обновите пользовательский интерфейс
Некоторые элементы пользовательского интерфейса и жесты не подходят для ПК и должны быть обновлены.
Необходимый:
- Замените действия пользовательского интерфейса, требующие двух или более пальцев (жесты мультитач). Например, вам следует заменить жесты pinch-to-zoom и другие жесты мультитач на соответствующий ввод с помощью мыши и клавиатуры. Подробнее об изменениях ввода с устройств см. в разделе Поддержка ввода .
Рекомендуется:
- Весь видимый пользователю текст должен содержать слово «щелчок» вместо «коснитесь».
- Прокручиваемые списки должны иметь полосы прокрутки.
- Области, которые пользователи могут перемещать, должны иметь полосы прокрутки или какой-либо другой способ быстрого перемещения на большие расстояния.
- Не отображайте на экране интерактивную клавиатуру для ввода текста.
- Все текстовые записи должны находиться в пределах текстового поля.
- Клики по видимым элементам должны:
- Принять щелчок в любом месте видимых границ элемента.
- Не принимать щелчок в области за пределами видимого элемента.
- Диалоги должны иметь видимую кнопку закрытия. Не обнаруживать щелчок за пределами границ диалога.
Отключить большинство диалоговых окон разрешений
За исключением разрешений на микрофон и уведомления, 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 (не включая перенос аккаунта , SmartLock , проверку по SMS , расчет сложности пароля )
- Кронет
- Игровые сервисы Google Play
- Задачи
- Зрение
- Google Pay
Ограниченная поддержка
Следующие модули частично функциональны. Мы сделаем все возможное, чтобы поддерживать их в Google Play Games на ПК, но мы не можем гарантировать их функциональность.
- Google Cloud Messaging (устарело, используйте Firebase Cloud Messaging)
- Аутентификация Firebase (аутентификация по номеру телефона не работает)
- Облачный обмен сообщениями Firebase
- Общие библиотеки Firebase
- FirebaseML-система
- Удаленная настройка Firebase
- Аналитика Firebase
Не поддерживается
Эти модули не поддерживаются в Google Play Games на ПК, но не вызывают проблем в Google Play Games на ПК в случае их сбоя:
- Google Analytics (устарело, используйте Firebase Analytics)
- Google Каст
- API осведомленности
- Диск (устарело, скоро будет удалено)
- ФИДО
- База данных Firebase Realtime
- Пожарный склад
- Тестирование Firebase A/B
- Гугл Фит
- API адресов
- API мгновенных приложений
- API местоположения
- SDK Google Карт
- Рядом
- Панорама
- Места
- Гугл+
- SafetyNet (устарело, пожалуйста, заполните форму для регистрации в предстоящем API Play Integrity )
- Диспетчер тегов Google
- Носить ОС
Сломанный
Требуется для процесса выпуска
Вы не должны использовать эти модули на ПК, поскольку они могут вызвать неожиданное поведение в Google Play Games на ПК.
Включить хранилище с ограниченной областью действия
Требуется для процесса выпуска
Этот раздел применяется, если ваша игра считывает или записывает данные на внешнее хранилище. Принудительное применение хранилища Scope требуется как альтернативный способ считывания и записи данных на хранилище. Это устраняет необходимость запрашивать у игрока эти конфиденциальные разрешения:
-
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 , то вам не нужно предпринимать никаких дополнительных действий.