Google Play Juegos se encuentra en versión beta abierta.

Compatibilidad y optimización

Google Play Juegos requiere que agregues compatibilidad y optimizaciones para PC a tu juego. Además de estos cambios, también debes actualizar la configuración de gráficos del juego para garantizar la compatibilidad con las PC.

Consulta los requisitos mínimos de PC para que los usuarios instalen la plataforma y configuren tu máquina de desarrollo.

Cómo incluir la arquitectura ABI x86

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 tus 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 destino en Unity

Si el juego usa un motor de juego de Unity, debes habilitar los destinos de Android x86 de 32 bits. Para hacerlo, haz lo siguiente en Unity:

  1. 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.

  2. Habilita destinos de Android x86 de 32 bits 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 de 2019 y versiones posteriores: Ve a Player Settings > Other Settings > Target Architectures y habilita x86 (Chrome OS y x86-64 (Chrome OS).

Para maximizar la compatibilidad con motores de juego, te recomendamos habilitar la compatibilidad con x86 y x86-64, o solo x86-64, para que no estés limitado por un espacio de memoria de 32 bits.

Cómo detectar la plataforma de 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. Tu juego será visible cuando un jugador active 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 para la compatibilidad con PC

Algunos elementos de la IU y gestos no son adecuados en PC y deben actualizarse.

Obligatorio:

  • Reemplaza las acciones de la IU que necesiten dos o más dedos (p. ej., "pellizcar para hacer zoom").
  • 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 con desplazamiento lateral deben tener barras de desplazamiento o alguna otra manera de recorrer grandes distancias con rapidez.
  • No muestres un teclado en pantalla en el que se pueda hacer clic para la entrada de 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 el 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 ya los mostrabas, debes actualizar tu aplicación para que ya no los muestre en la PC.

Funciones y permisos de Android no compatibles

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, tu juego no debe depender de funciones o permisos de Android no compatibles. En una PC, si tu juego solicita acceso a un permiso no compatible, la solicitud falla automáticamente.

Para que tu juego sea compatible con las PC, se requieren los siguientes cambios:

  • En el manifiesto de tu app, agrega android:required="false" a la declaración <uses-feature> para todas las funciones que no admita Google Play Juegos. Esto se aplica solo a las funciones ya declaradas en el manifiesto de tu app.
  • Inhabilita funciones del juego que dependan de funciones de hardware y software no compatibles en las PC. Si usas el mismo APK que tu juego para dispositivos móviles, puedes inhabilitarlos, de manera condicional, para las PC.
  • 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 las PC, y no debes realizar cambios en los permisos que se declararon en el manifiesto.

Para obtener más información sobre la compatibilidad con manifiestos de apps, consulta nuestra guía sobre compatibilidad con manifiestos de apps para Chromebook.

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 de compatibilidad con manifiestos de apps.

Estas funciones de hardware de uso general no son compatibles con las PC, 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

Los siguientes permisos de uso general no se admiten en PC:

  • 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

Sitios web externos y WebViews

Un intent del navegador se cargará en el navegador web nativo de una PC, en lugar de uno en el entorno de Google Play Juegos. Esto brinda una experiencia ideal para los jugadores en la mayoría de los casos.

Para facilitar la portabilidad, Google Play Juegos admite WebView. Dado que este paso se abre en el entorno de Google Play Juegos, no contará con la experiencia del usuario típica del navegador de escritorio. 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.

Inhabilita las API de Google Play Service que no son compatibles

Google Play Juegos incluye su propia variante de los Servicios de Google Play, que solo contiene un subconjunto de las API de Google Play Service. 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, lo siguientes módulos están disponibles y serán compatibles con Google Play Juegos en el futuro.

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.

No compatibles

Estos módulos no son compatibles con Google Play Juegos, pero no generan problemas en la plataforma cuando fallan:

Dañados

No debes usar estos módulos, ya que pueden causar comportamientos inesperados en Google Play Juegos.

Cómo habilitar el almacenamiento específico

Esta sección se aplica si el juego lee el almacenamiento externo o escribe en él. Se requiere aplicar el almacenamiento específico como una manera alternativa para leer el almacenamiento y escribir en él. 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 inhabilitar los anuncios para dispositivos móviles en la versión para PC del juego

A fin de optimizar tu juego para PC, debes inhabilitar los anuncios para dispositivos móviles en la versión para PC, ya que no son compatibles con las computadoras de escritorio y laptops. Esto incluye todos los bloques de anuncios que brindan los SDK 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 de tu juego. Aún puedes conservar los anuncios para dispositivos móviles en Chrome OS.

Para quitar los anuncios para dispositivos móviles, sigue 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 este es tu caso, debes hacer la migración a Google Analytics 4.

Esto solo debería afectarte si actualmente usas Google Analytics 360. Si empleas el SDK de Firebase para realizar un seguimiento de los eventos de Analytics en tu juego y puedes verlo como una propiedad en la consola de Google Analytics, no es necesario que tomes medidas adicionales.