Google Play Juegos 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 tiene requisitos de gráficos, entrada de dispositivos y juegos 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), podrás configurar tu juego para que detecte Google Play Juegos 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 la arquitectura ABI x86 (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)
- Inhabilitar los anuncios para dispositivos móviles en PCs (recomendado)
- Migrar a Google Analytics 4 (recomendado)
Cómo incluir la arquitectura ABI x86
Obligatorio para el proceso de lanzamiento
Todas las bibliotecas incluidas en el juego deben tener versiones compatibles con ABI x86 para garantizar un rendimiento y una estabilidad óptimos en la plataforma. Google Play Juegos admite tanto la versión de 32 bits como la de 64 bits, pero solo debes elegir una para cumplir con el requisito.
Compilación de la biblioteca
Para garantizar la máxima compatibilidad con el procesador x86, no utilices el conjunto de instrucciones de Atom cuando compiles las bibliotecas. Por ejemplo, cuando uses gcc
, evita usar el elemento -march=atom
y, en su lugar, utiliza -march=x86
o -march=x86-64
.
Arquitectura de objetivos en Unity
Algunas versiones de Unity 2019 y 2020 no admiten la arquitectura x86 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/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 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.
Asistencia a largo plazo (LTS) de Unity 2019 y versiones posteriores: ve a Player Settings > Other Settings > Target Architectures y habilita x86 (ChromeOS) y x86-64 (ChromeOS).
Para maximizar la compatibilidad con motores de juego, te recomendamos que habilites la compatibilidad con x86 y x86-64, o solo x86-64, para que no te limite un espacio de memoria de 32 bits.
Dado que Unity 2018 solo admite objetivos x86, puedes omitir la compatibilidad con x86-64. Sin embargo, no puedes lanzar esa compilación en Android debido al requisito de 64 bits. En ese caso, debes mantener una compilación independiente para Google Play Juegos.
Cómo detectar Google Play Juegos
Puedes detectar la plataforma de Google Play Juegos 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:
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. 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 correspondiente. 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 clics 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.
Cómo inhabilitar los diálogos de permisos
Google Play Juegos no muestra diálogos de permisos, por lo que no debes intentar mostrarlos antes de solicitar permisos. Si antes los mostrabas, 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
En una PC, no se podrá acceder a algunas funciones de Android disponibles en teléfonos celulares o tablets, lo que incluye funciones de hardware (por ejemplo, la cámara) y de otro tipo, como la ubicación del usuario. Como resultado, el juego no debe depender de funciones ni permisos de Android no compatibles. En una PC, si el juego solicita acceso a un permiso no compatible, la solicitud falla automáticamente.
Para que el juego sea compatible con las PCs, se requieren los siguientes cambios:
En el manifiesto de la app, agrega
android:required="false"
a la declaración<uses-feature>
para todas las funciones que no admita Google Play Juegos. Esto solo se aplica a las funciones ya declaradas en el manifiesto de la app.Inhabilita las funciones del juego que dependan de funciones de hardware y software no compatibles en las PCs. Si usas el mismo APK que el juego para dispositivos móviles, puedes inhabilitarlos de forma condicional en las PCs.
Inhabilita en el juego las solicitudes de permisos de Android no compatibles y las funciones que dependen de esos permisos. Si usas el mismo APK que tu juego para dispositivos móviles, puedes realizar estos cambios, de manera condicional, para PCs, y no debes realizar cambios en los permisos que se declararon en 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
android.hardware.microphone
Puedes obtener más información para 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.microphone
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:
android.permission.FOREGROUND_SERVICE
android.permission.INSTALL_PACKAGES
android.permission.READ_PHONE_STATE
android.permission.USE_CREDENTIALS
android.permission.CAMERA
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.WRITE_SETTINGS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SYSTEM_ALERT_WINDOW
android.permission.READ_CONTACTS
com.google.android.gms.permission.ACTIVITY_RECOGNITION
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.GET_ACCOUNTS
android.permission.RECORD_AUDIO
android.permission.RECEIVE_BOOT_COMPLETED
Sitios web externos y WebViews
Un intent del navegador se cargará en el navegador web nativo de la PC, en lugar de uno en el entorno de Google Play Juegos. Esta es una experiencia ideal para los jugadores en la mayoría de las situaciones.
Para facilitar la portabilidad, Google Play Juegos admite WebView. Como este comando se abre en el entorno de Google Play Juegos, 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 Google Play Service que no son compatibles
Obligatorio para el proceso de lanzamiento
Google Play Juegos 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.
Módulos compatibles
Por el momento, estos módulos están disponibles y son compatibles con Google Play Juegos, así como planes de 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
- Visión
- 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, pero no podemos garantizar su funcionalidad.
- Google AdMob (anuncios para dispositivos móviles, ID del anuncio)
- 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, 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
- Panorámica
- 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.
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
Cómo inhabilitar los anuncios para dispositivos móviles en la versión para PC del juego
Obligatorio para el proceso de lanzamiento
A fin de optimizar tu juego para PCs, debes inhabilitar los anuncios para dispositivos móviles en la versión para PC, ya que no son compatibles. Esto incluye todas las unidades de anuncios que proporcionan los SDKs de anuncios para dispositivos móviles. No es necesario que realices ningún cambio en los anuncios de la versión para dispositivos móviles del juego. Te recomendamos que uses marcas de funciones a fin de limitar los cambios solo a la versión para PC del juego. De todos modos, puedes conservar los anuncios para dispositivos móviles en ChromeOS.
Para quitar los anuncios para dispositivos móviles, debes seguir estos pasos:
Inhabilita todos los bloques de anuncios para dispositivos móviles, incluidos los banners, los anuncios intersticiales y los anuncios recompensados.
Inhabilita las funciones del juego que dependan de los anuncios recompensados. Por ejemplo, se puede desactivar o quitar por completo el botón de una función que les permite a los usuarios ver un anuncio de video para ganar monedas del juego.
Analytics
Los productos heredados de Google Analytics no funcionan en Google Play Juegos. Si esto se aplica a los 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.