Google Play Juegos para PC requiere que modifiques tu juego para la optimización y compatibilidad con PCs. Estos cambios garantizan que el juego pueda ejecutarse en una PC y que la experiencia del usuario esté optimizada en la plataforma.
Además, Google Play Juegos para PC tiene requisitos de gráficos, entrada de dispositivos y juego multidispositivo. Para obtener más información, consulta la guía de introducción.
Cuando realices cambios de optimización y compatibilidad para PCs (aparte de la compatibilidad con x86-64), podrás configurar tu juego para que detecte Google Play Juegos para PC, y, luego, inhabilitar o habilitar funciones específicas de la plataforma. De esta manera, podrás usar el mismo APK o paquete de aplicación en las versiones de Android para PC y dispositivos móviles.
A continuación, se presenta un resumen de los requisitos y las recomendaciones de esta página:
- Incluir ABI x86-64 (obligatorio)
- Detectar Google Play Juegos durante el tiempo de ejecución (recomendado)
- Controlar el evento onPause (recomendado)
- Actualizar los elementos de la IU (obligatorio)
- Inhabilitar los diálogos de los permisos de la app para Android (obligatorio)
- Inhabilitar funciones y permisos de Android no compatibles (obligatorio)
- Reemplazar WebViews por intents de navegador (recomendado)
- Inhabilitar las APIs de Servicios de Google Play que no son compatibles (obligatorio)
- Habilitar el almacenamiento específico (obligatorio)
- Migrar a Google Analytics 4 (recomendado)
Cómo incluir la arquitectura ABI x86-64
Obligatorio para el proceso de lanzamiento
Todas las bibliotecas incluidas en el juego deben tener versiones compatibles con ABI x86-64 para garantizar un rendimiento y una estabilidad óptimos en la plataforma.
Si técnicamente es inviable que tu juego envíe un ejecutable x86 de 64 bits, debes comunicarte con el equipo de revisión para obtener una excepción. Si bien el juego no puede obtener la certificación completa, con una excepción, se puede colocar en el catálogo como un juego "jugable".
Compilación de la biblioteca
Para garantizar la máxima compatibilidad con el procesador x86-64, no utilices el conjunto de instrucciones de Atom cuando compiles las bibliotecas. Por ejemplo, cuando uses gcc
, evita usar -march=atom
y, en su lugar, usa -march=x86-64
.
Arquitectura de objetivos en Unity
Algunas versiones de Unity 2019 y 2020 no admiten la arquitectura x86-64 en Android. Asegúrate de usar Unity 2019.4.31f1, 2020.3.19f1 o una versión posterior.
Si el juego usa una versión compatible del motor de juego de Unity, haz lo siguiente para habilitar los objetivos de x86-64 de Android:
Ve a Player Settings > Other Settings > Configuration > Scripting Backend y selecciona IL2CPP en el menú desplegable para habilitar el backend de secuencias de comandos IL2CPP.
Habilita los objetivos de x86-64 de Android para tu versión de Unity:
Unity 2018 y versiones anteriores: Ve a Player Settings > Other Settings > Target Architecture y selecciona la casilla de verificación x86. Dado que Unity 2018 solo admite objetivos x86, no podrás compilar x86-64. Esta compilación requerirá una excepción del equipo de revisión. Comunícate con tu contacto de Google para solicitar una excepción de x86.
Asistencia a largo plazo (LTS) de Unity 2019 y versiones posteriores: Ve a Player Settings > Other Settings > Target Architectures y habilita x86-64 (ChromeOS).
Cómo detectar Google Play Juegos para PC
Puedes detectar la plataforma de Google Play Juegos para PC en el tiempo de ejecución, lo que te permite habilitar o inhabilitar funciones específicas de la plataforma en tu juego.
Busca la función com.google.android.play.feature.HPE_EXPERIENCE
del sistema para determinar si tu juego se ejecuta en la plataforma de Google Play Juegos para PC:
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");
Cómo controlar eventos de ciclo de vida de Android
Es importante controlar el evento onPause
(c++) en el entorno de Google Play Juegos para PC. El juego es visible cuando un jugador activa la superposición del emulador, por lo que, si no se escucha el evento onPause
, la experiencia del usuario podría ser deficiente.
Cómo actualizar la IU
Algunos elementos de la IU y gestos no son adecuados para PCs y deben actualizarse.
Obligatorio:
- Reemplaza las acciones de la IU que necesiten dos o más dedos (gestos de varios toques). Por ejemplo, debes reemplazar la función de pellizcar para hacer zoom y otros gestos de varios toques por la entrada del mouse y del teclado correspondientes. Para obtener más información sobre los cambios de entrada en los dispositivos, consulta Compatibilidad con entradas.
Recomendado:
- Todo el texto que vea el usuario debe decir "Haz clic" en lugar de "Presiona".
- Las listas desplazables deben tener barras de desplazamiento.
- Las áreas en las que los usuarios pueden desplazarse deben tener barras de desplazamiento o alguna otra manera de recorrer grandes distancias rápidamente.
- No muestres un teclado en pantalla en el que se pueda hacer clic para ingresar texto.
- Todas las entradas de texto deben estar dentro de los límites del campo de texto.
- Requisitos para clics en elementos visibles:
- Se debe aceptar el clic en cualquier lugar dentro de los límites visibles del elemento.
- No se debe aceptar el clic en el área fuera del elemento visible.
- Los diálogos deben tener un botón de cierre visible. No se debe detectar un clic fuera de los límites del diálogo.
Inhabilita la mayoría de los diálogos de permisos
A excepción del permiso del micrófono, Google Play Juegos para PC no muestra diálogos de permisos, por lo que no debes intentar mostrarlos ni solicitar permisos durante el tiempo de ejecución. Si antes mostrabas los diálogos de permisos, debes actualizar el juego para que ya no los muestre en las PCs.
Funciones y permisos de Android no compatibles
Obligatorio para el proceso de lanzamiento
Algunas funciones de hardware comunes en teléfonos celulares y tablets no están disponibles en PCs. Esto incluye funciones de hardware, como la cámara o la ubicación del jugador. Los juegos que requieran funciones faltantes no se pueden descargar ni instalar en la PC del jugador. Las solicitudes por funciones faltantes en una PC fallan automáticamente.
Para ver una lista completa de las funciones disponibles, escribe lo siguiente:
adb shell pm list features
Para que el juego sea compatible con las PCs, se requieren los siguientes cambios:
Marca las funciones como opcionales en el manifiesto de tu app. Para ello, agrega
android:required="false"
a la declaración<uses-feature>
. Esto solo se aplica a las funciones ya declaradas en el manifiesto de la app.No intentes usar las funciones que faltan durante el tiempo de ejecución. Si usas el mismo APK en los segmentos para PCs y para dispositivos móviles, detecta el entorno de PC durante el tiempo de ejecución y evita las instrucciones de código relevantes.
No solicites permisos de Android no compatibles durante el tiempo de ejecución. Si usas el mismo APK en los segmentos para PCs y para dispositivos móviles, detecta el entorno de PC durante el tiempo de ejecución y evita las instrucciones de código relevantes. No es necesario que actualices el manifiesto.
Para obtener más información acerca de la compatibilidad con el manifiesto de la app, consulta la guía sobre compatibilidad con el manifiesto de la app para Chromebook.
Requisitos de las pruebas funcionales
Quita estas funciones de hardware antes de enviar la primera compilación de prueba a Google Play Console:
android.hardware.wifi
android.hardware.bluetooth
android.hardware.camera
android.hardware.location
Algunas de estas funciones pueden mostrarse como compatibles cuando se ejecuta pm list features
por razones de compatibilidad, pero no están implementadas por completo. Puedes obtener más información sobre cómo quitar la función android.hardware.wifi
en Cómo supervisar el estado de conectividad y la medición de la conexión. Para obtener una lista completa de las funciones no compatibles, consulta la guía sobre compatibilidad con el manifiesto de la app para Chromebook.
Requisitos de las pruebas de calidad
Estas funciones de hardware de uso general no son compatibles con las PCs, por lo que debes quitarlas antes de enviar la versión final a 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
Permisos no compatibles
Los siguientes permisos de uso general no se admiten en PCs, por lo que el juego debe inhabilitarlos para Google Play Juegos para PC:
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
Sitios web externos y WebViews
Un intent del navegador se cargará en el navegador web nativo de la PC, en lugar de en el entorno de Google Play Juegos para PC. Esta es una experiencia ideal para los jugadores en la mayoría de las situaciones.
Para facilitar la portabilidad, Google Play Juegos para PC admite WebView. Como este comando se abre en el entorno de Google Play Juegos para PC, no contará con el típico navegador para computadoras. Si anteriormente usabas WebView
para compartir las Condiciones del Servicio, la Política de Privacidad o algún otro contenido similar, debes invocar un intent del navegador.
Cómo inhabilitar las APIs de Servicios de Google Play que no son compatibles
Obligatorio para el proceso de lanzamiento
Google Play Juegos para PC incluye su propia variante de los Servicios de Google Play, que solo contiene un subconjunto de las APIs de Servicios de Google Play. Debes comprobar que tu aplicación no depende en gran medida de módulos que se omiten o que no son compatibles en PC. Ten en cuenta que es posible que algunos módulos estén disponibles, pero que sus funcionalidades no se admitan en todo momento. Por ejemplo, Firebase Cloud Messaging no funcionará cuando se cierre Google Play Juegos para PC.
Módulos compatibles
Por el momento, estos módulos están disponibles y son compatibles con Google Play Juegos para PC. Además, tenemos planes de agregar compatibilidad con funciones adicionales:
- Acceso con Google (no incluye transferencia de cuenta, SmartLock, verificación por SMS ni cálculo de la complejidad de contraseña)
- Cronet
- Servicios de juego de Google Play
- Tasks
- Vision
- Google Pay
Compatibilidad limitada
Los siguientes módulos son funcionales de manera parcial. Haremos todo lo posible para que sean compatibles con Google Play Juegos para PC, pero no podemos garantizar su funcionalidad.
- Google Cloud Messaging (obsoleto, se recomienda usar Firebase Cloud Messaging)
- Firebase Authentication (la autenticación del número de teléfono no funciona)
- Firebase Cloud Messaging
- Bibliotecas comunes de Firebase
- AA de Firebase
- Firebase Remote Config
- Firebase Analytics
No compatibles
Estos módulos no son compatibles con Google Play Juegos para PC, pero no causan problemas cuando fallan:
- Google Analytics (obsoleto; se recomienda usar Firebase Analytics)
- Google Cast
- API de Awareness
- Drive (obsoleto; se quitará pronto)
- FIDO
- Firebase Realtime Database
- Firestore
- Firebase A/B Testing
- Google Fit
- API de Address
- API de Instant Apps
- API de Location
- SDK de Google Maps
- Nearby
- Panorama
- Places
- Google+
- SafetyNet (obsoleto; completa el formulario de interés para habilitar la próxima API de Play Integrity)
- Google Tag Manager
- Wear OS
Comportamiento inesperado
Obligatorio para el proceso de lanzamiento
No debes usar estos módulos en PCs porque pueden provocar un comportamiento inesperado en Google Play Juegos para PC.
Cómo habilitar el almacenamiento específico
Obligatorio para el proceso de lanzamiento
Esta sección se aplica si el juego lee o escribe en un almacenamiento externo. Se requiere aplicar el almacenamiento específico como una manera alternativa de leer y escribir el almacenamiento. De esta manera, no es necesario solicitarle al jugador estos permisos sensibles:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
Consulta lo siguiente para obtener más información sobre el almacenamiento específico:
- Cómo habilitar el almacenamiento específico
- Prácticas recomendadas para controlar archivos que no son de contenido multimedia
Analytics
Los productos heredados de Google Analytics no funcionan en Google Play Juegos para PC. Si esto se aplica a tus juegos, debes migrar a Google Analytics 4.
Esto solo debería afectar al juego si actualmente usas Google Analytics 360. Si usas el SDK de Firebase para realizar un seguimiento de los eventos de Analytics en el juego y puedes verlo como una propiedad en la consola de Google Analytics, no es necesario que tomes medidas adicionales.