Чтобы опубликовать игру в Google Play Играх на компьютере, необходимо оптимизировать ее и обеспечить совместимость с ПК. Эти изменения гарантируют, что игра будет работать на ПК и будет оптимизирована для этой платформы.
Кроме того, в Google Play Играх на компьютере есть требования к графике, устройствам ввода и кроссплатформенной игре. Дополнительную информацию можно найти в кратком руководстве.
При оптимизации игры для ПК и обеспечении совместимости с ним (кроме поддержки x86-64) вы можете настроить игру так, чтобы она распознавала Google Play Игры на компьютере, а затем включала или отключала функции, предназначенные для определенных платформ. Это позволяет использовать один и тот же APK-файл или набор App Bundle для выпусков на мобильных устройствах Android и ПК.
Ниже приведены требования и рекомендации, описанные на этой странице.
- Включить ABI x86-64 (рекомендуется).
- Обнаружение Google Play Игр во время выполнения (рекомендуется)
- Обработка события onPause (рекомендуется)
- Обновление элементов интерфейса (обязательно)
- Отключить диалоговые окна разрешений для приложений Android (обязательно)
- Отключите неподдерживаемые функции и разрешения Android (обязательно)
- Замените компоненты WebView на намерения браузера (рекомендуется)
- Отключите неподдерживаемые API сервисов Google Play (обязательно)
- Включить области хранения данных (обязательно)
- Перейти на Google Аналитику 4 (рекомендуется)
Добавьте архитектуру ABI x86-64
По возможности убедитесь, что все библиотеки, включенные в игру, созданы для x86-64. Это позволяет избежать использования уровней трансляции и обеспечить максимальную производительность и стабильность.
Подборка из библиотеки
Чтобы обеспечить максимальную совместимость с процессорами 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:
Чтобы включить IL2CPP Scripting Backend, перейдите в раздел Player Settings (Настройки проигрывателя) > Other Settings (Другие настройки) > Configuration (Конфигурация) > Scripting Backend (Серверная часть скриптов) и в раскрывающемся меню выберите IL2CPP.
Включите целевые платформы x86-64 Android для вашей версии Unity:
Unity 2018 и более ранние версии. Выберите Player Settings (Настройки проигрывателя) > Other Settings (Другие настройки) > Target Architecture (Целевая архитектура) и установите флажок x86. Поскольку Unity 2018 поддерживает только целевые платформы x86, вы не сможете создать сборку x86-64. Для этой сборки потребуется исключение от команды проверки. Чтобы запросить исключение для x86, обратитесь к своему контактному лицу в Google.
Unity 2019 Long Term Support (LTS) и более поздние версии. Перейдите в раздел Player Settings (Настройки проигрывателя) > Other Settings (Другие настройки) > Target Architectures (Целевые архитектуры) и включите x86-64 (ChromeOS).
Обнаружение Google Play Игр на компьютере
Вы можете определить, запущена ли игра через Google Play Игры на компьютере, и включить или отключить функции, предназначенные для этой платформы.
Чтобы определить, запущена ли игра на платформе "Google Play Игры на компьютере", проверьте системную функцию com.google.android.play.feature.HPE_EXPERIENCE:
Kotlin
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 Игр на компьютере важно обрабатывать событие onPause (C++). Когда игрок активирует оверлей эмулятора, игра остается видимой, поэтому, если не прослушивать событие onPause, это может привести к ухудшению пользовательского опыта.
Обновление интерфейса
Некоторые элементы интерфейса и жесты не подходят для ПК, и их нужно изменить.
Обязательно:
- Замените действия в интерфейсе, для которых требуется два или более пальцев (жесты с несколькими касаниями). Например, замените жест сведения пальцев и другие жесты с несколькими касаниями на соответствующие действия с мышью и клавиатурой. Подробнее о поддержке ввода…
Рекомендуется:
- В тексте, который виден пользователям, должно быть слово "нажмите", а не "коснитесь".
- У списков с прокруткой должны быть полосы прокрутки.
- Области, которые пользователи могут панорамировать, должны иметь полосы прокрутки или другой способ быстрого перемещения на большие расстояния.
- Не показывать на экране клавиатуру для ввода текста.
- Все текстовые записи должны находиться в пределах текстового поля.
- Клики по видимым элементам должны:
- Регистрировать клик в любом месте в пределах видимых границ элемента.
- Не регистрировать клик в области за пределами видимого элемента.
- В диалоговых окнах должна быть видимая кнопка закрытия. Не регистрировать клик за пределами диалогового окна.
Отключить большинство диалоговых окон с запросом разрешений
За исключением разрешений на доступ к микрофону и разрешений на уведомления, Google Play Games на компьютере не показывают диалоговые окна разрешений, поэтому не пытайтесь их отображать или запрашивать разрешения во время выполнения. Если в вашей игре ранее показывались диалоговые окна с запросом разрешений, обновите ее, чтобы они не появлялись на ПК.
Неподдерживаемые функции и разрешения Android
Требуется для процесса выпуска.
Некоторые аппаратные функции, которые есть на мобильных телефонах и планшетах, недоступны на ПК. Это касается и аппаратных функций, таких как камера или определение местоположения игрока. Если игра требует отсутствующих функций, ее нельзя скачать и установить на ПК. Запросы на отсутствующие функции на ПК автоматически отклоняются.
Чтобы посмотреть полный список доступных функций, введите:
adb shell pm list featuresЧтобы сделать игру совместимой с ПК, необходимо внести следующие изменения:
Рекомендуется помечать функции как необязательные в манифесте приложения, добавляя
android:required="false"в декларацию<uses-feature>. Это касается только функций, уже объявленных в манифесте приложения.Не пытайтесь использовать отсутствующие функции во время выполнения. Если вы используете один и тот же APK-файл для мобильных устройств и ПК, определите среду ПК во время выполнения и избегайте соответствующих путей выполнения.
Не запрашивайте неподдерживаемые разрешения Android во время выполнения. Если вы используете один и тот же APK-файл для мобильных устройств и ПК, настройте определение среды ПК во время выполнения и избегайте соответствующих путей выполнения кода. Обновлять манифест не нужно.
Дополнительную информацию о совместимости манифеста приложения можно найти в руководстве по совместимости манифеста приложения Chromebook.
Требования к функциональному тестированию
Перед отправкой первой тестовой сборки в Google Play Console удалите следующие аппаратные функции:
android.hardware.wifiandroid.hardware.bluetoothandroid.hardware.cameraandroid.hardware.location
Некоторые из этих функций могут быть указаны как поддерживаемые при запуске pm list features по соображениям совместимости, но не полностью реализованы. Подробнее о том, как удалить функцию android.hardware.wifi, рассказывается в статье Как отслеживать статус подключения и лимитные подключения. Полный список неподдерживаемых функций можно найти в руководстве по совместимости манифеста приложения для Chromebook.
Требования к тестированию качества
Эти часто используемые аппаратные функции несовместимы с ПК, поэтому их необходимо удалить перед окончательной отправкой в Google Play Console:
android.hardware.audio.proandroid.hardware.bluetoothandroid.hardware.cameraandroid.hardware.consumerirandroid.hardware.locationandroid.hardware.nfcandroid.hardware.sensor.lightandroid.hardware.sensor.accelerometerandroid.hardware.sensor.barometerandroid.hardware.sensor.compassandroid.hardware.sensor.gyroscopeandroid.hardware.sensor.proximityandroid.hardware.telephonyandroid.hardware.touchscreenandroid.hardware.usb.accessoryandroid.hardware.usb.hostandroid.hardware.wifiandroid.software.midi
Неподдерживаемые разрешения
Следующие часто используемые разрешения не поддерживаются на ПК, поэтому их нужно отключить в версии игры для Google Play Games на компьютере:
android.permission.ACCESS_COARSE_LOCATIONandroid.permission.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_WIFI_STATEandroid.permission.BLUETOOTHandroid.permission.CAMERAandroid.permission.FOREGROUND_SERVICEandroid.permission.GET_ACCOUNTSandroid.permission.INSTALL_PACKAGESandroid.permission.READ_CONTACTSandroid.permission.READ_EXTERNAL_STORAGEandroid.permission.READ_PHONE_STATEandroid.permission.RECEIVE_BOOT_COMPLETEDandroid.permission.REQUEST_INSTALL_PACKAGESandroid.permission.SYSTEM_ALERT_WINDOWandroid.permission.USE_CREDENTIALSandroid.permission.WRITE_EXTERNAL_STORAGEandroid.permission.WRITE_SETTINGScom.google.android.gms.permission.ACTIVITY_RECOGNITION
Внешние сайты и компоненты WebView
Намерение браузера загружается в собственном веб-браузере ПК, а не в среде Google Play Игр на компьютере. Это идеальный вариант для игроков в большинстве ситуаций.
Чтобы упростить перенос, Google Play Игры на компьютере поддерживают WebView. Поскольку она открывается в среде Google Play Игр на компьютере, в ней не будет обычного браузера для ПК. Если вы ранее использовали WebView, чтобы показывать пользователям Условия использования, Политику конфиденциальности или другой подобный контент, то теперь вам нужно вызывать намерение браузера.
Отключить неподдерживаемые API сервисов Google Play
Требуется для процесса выпуска.
В Google Play Играх на компьютере используется собственная версия сервисов Google Play, которая содержит только часть API сервисов Google Play. Вам нужно подтвердить, что ваше приложение не зависит от модулей, которые не поддерживаются на ПК или не включены в версию для ПК. Учтите, что некоторые модули могут быть доступны, но их функциональность не всегда поддерживается. Например, Firebase Cloud Messaging не будет работать, если Google Play Игры на компьютере закрыты.
Поддерживаемые модули
В настоящее время в Google Play Играх на компьютере доступны и поддерживаются следующие модули:
- Вход с аккаунтом Google (не включая перенос аккаунта, SmartLock, подтверждение по SMS, оценку сложности пароля)
- Cronet
- Игровые сервисы Google Play
- Задачи
- Нарушения зрения
- Google Pay
Ограниченная поддержка
Следующие модули работают частично. Мы постараемся обеспечить их поддержку в Google Play Играх на компьютере, но не можем гарантировать, что они будут работать.
- Google Cloud Messaging (поддержка прекращена, используйте Firebase Cloud Messaging)
- Firebase Authentication (аутентификация по номеру телефона не работает)
- Firebase Cloud Messaging
- Общие библиотеки Firebase
- Firebase ML
- Firebase Remote Config
- Firebase Аналитика
Не поддерживается
Эти модули не поддерживаются в Google Play Играх на компьютере, но не вызывают проблем, если не работают:
- Google Аналитика (устарела, используйте Firebase Аналитика)
- Google Cast
- Awareness API
- Диск (поддержка прекращена, скоро будет удален)
- FIDO
- Firebase Realtime Database
- Firestore
- A/B-тестирование в Firebase
- Google Fit
- Address API
- Instant Apps API
- Location API
- Google Maps SDK
- Рядом
- Панорама
- Места
- Google+
- SafetyNet (поддержка прекращена; заполните форму, чтобы получить доступ к Play Integrity API)
- Google Менеджер тегов
- Wear OS
Не функционирует
Требуется для процесса выпуска.
Не используйте эти модули на ПК, так как они могут привести к непредвиденным ошибкам в Google Play Играх на компьютере.
Включить области хранения данных
Требуется для выпуска приложения.
Этот раздел предназначен для тех, чья игра считывает данные с внешнего накопителя или записывает их на него. Принудительное применение областей хранения данных необходимо в качестве альтернативного способа чтения и записи в хранилище. В этом случае вам не нужно будет запрашивать у игрока следующие разрешения на доступ к конфиденциальной информации:
android.permission.READ_EXTERNAL_STORAGEandroid.permission.WRITE_EXTERNAL_STORAGE
Дополнительную информацию об областях хранения данных можно найти в следующих статьях:
- Как включить области хранения данных
- Рекомендации по работе с файлами, не относящимися к медиаконтенту
Аналитика
Устаревшие продукты Google Аналитики не работают в Google Play Играх на компьютере. Если это относится к вашим играм, перейдите на Google Аналитику 4.
Это изменение затронет вашу игру, только если вы используете Google Аналитику 360. Если вы используете Firebase SDK для отслеживания событий аналитики в игре и видите ее как ресурс в консоли Google Аналитики, то вам не нужно ничего делать.