Cómo desarrollar con el emulador para desarrolladores de Google Play Juegos para PC

El emulador para desarrolladores de Google Play Juegos para PC es un emulador que se centra en el desarrollador de Google Play Juegos para PC. A diferencia de la experiencia del jugador, puedes instalar y depurar tus propios paquetes. También puedes simular varias configuraciones de jugador, como la relación de aspecto, la emulación del mouse y el backend de gráficos, para ayudarte a garantizar que el juego funcione como se espera en una variedad de configuraciones de PC.

Cómo iniciar el emulador

Una vez que lo instales, tendrás un elemento de menú de inicio "Emulador de Google Play Juegos para desarrolladores" y un acceso directo de escritorio para iniciar el emulador. El emulador permanecerá en la bandeja del sistema cuando cierres la ventana.

Cómo acceder a tu cuenta

Se te solicitará que accedas a tu Cuenta de Google la primera vez que ejecutes el emulador. Usa las mismas credenciales de acceso que planeas usar para el desarrollo.

Para salir, haz clic con el botón derecho en el ícono de la bandeja del sistema, selecciona Opciones para desarrolladores y, luego, haz clic en Forzar salida. Cuando lo hagas, el emulador se reiniciará de inmediato y te solicitará que vuelvas a acceder.

Después del lanzamiento, verás una pantalla principal típica de Android. Los clics con el botón izquierdo del mouse se traducen directamente en toques con el dedo, como en el modo de emulación del mouse. Los juegos transferidos para el desarrollo aparecen en la lista de aplicaciones y puedes acceder a ellos si haces clic y arrastras hacia arriba en el escritorio (emulando el deslizamiento hacia arriba en un teléfono o una tablet).

Además de la traducción del mouse, el emulador para desarrolladores de Google Play Juegos para PC proporciona combinaciones de teclas para mejorar la navegación:

  • Ctrl + h: Presiona el botón de inicio.
  • Ctrl + b: Presiona el botón Atrás.
  • F11 o alt + Intro: Alterna entre los modos de pantalla completa y con ventanas.
  • Mayúsculas + Tab: Abre la superposición de Google Play Juegos para PC, incluidas las asignaciones de teclas actuales del SDK de entrada.

Cómo instalar un juego

El emulador para desarrolladores de Google Play Juegos para PC usa Android Debug Bridge (adb) para instalar paquetes.

Compatibilidad con adb

Las versiones actuales de adb son compatibles con el emulador para desarrolladores de Google Play Juegos para PC. Además, se instala una versión compatible en C:\Program Files\Google\Play Games Developer Emulator\current\emulator cuando instalas el emulador.

Para seguir estas instrucciones, adb debería estar disponible en tu $PATH. Puedes verificar que adb esté configurado de forma correcta con el comando adb devices.

adb devices
List of devices attached
localhost:6520  device

Cómo instalar el juego

  • Inicia Google Play Games for PC Emulator.
  • Escribe adb devices en el símbolo del sistema. Deberías ver lo siguiente:

    adb devices
    List of devices attached
    localhost:6520 device
    
  • Solución de problemas:

    • Si se presenta un error, verifica que hayas seguido las instrucciones de Compatibilidad con adb.
    • Si no ves un dispositivo, intenta volver a conectarte a través del puerto 6520:
    adb connect localhost:6520
    
  • Escribe adb install path\to\your\game.apk para instalar el juego. Si generaste un Android App Bundle (aab), consulta las instrucciones de bundletool y usa bundletool install-apks en su lugar.

  • Ejecuta el juego de alguna de las siguientes maneras:

    • Escribe adb shell monkey -p your.package.name 1 para ejecutar el juego y reemplaza your.package.name por el nombre del paquete del juego.
    • En el emulador para desarrolladores de Google Play Juegos para PC, haz clic en el ícono para ejecutar el juego. Al igual que en un teléfono Android, debes "deslizar el dedo hacia arriba" en la pantalla principal para ver la lista de juegos instalados.

Cómo depurar un juego

Usa Android Debug Bridge (adb) para depurar como lo haces con cualquier otro juego. El emulador aparece como un dispositivo conectado a través de localhost:6520.

adb logcat funciona como se espera, al igual que las herramientas que ayudan a mejorar o filtrar los resultados de Logcat, incluido Android Studio.

Además de adb, se puede acceder a los registros en el directorio %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs. Aquí, es muy útil AndroidSerial.log, que representa todo lo que adb logcat reproduciría desde el momento en que se inicia el emulador.

Configuración para desarrolladores

El emulador para desarrolladores de Google Play Juegos para PC se centra en la eficiencia de los desarrolladores en lugar de la experiencia del usuario final. Esto significa que tienes acceso sin obstrucciones al sistema Android, incluido el uso del selector de Android estándar en lugar de la experiencia de Google Play Juegos para PC, y controles sobre las funciones que, de otra manera, se habilitan e inhabilitan automáticamente para los jugadores.

Cómo probar la entrada del mouse

Durante el desarrollo, el emulador para desarrolladores de Google Play Juegos para PC usa la emulación táctil de forma predeterminada en lugar de darte una entrada directa del mouse. Para habilitar la entrada directa del mouse, haz clic con el botón derecho en el ícono de la bandeja del sistema, selecciona Opciones para desarrolladores y, luego, Modo PC (KiwiMouse).

Google Play Juegos para PC tiene dos modos de mouse: un modo emulado que traduce los clics del mouse en toques únicos y un "modo PC" de transferencia que permite a los juegos controlar las acciones del mouse de forma nativa y realizar la captura del puntero. Para obtener detalles sobre la entrada del mouse en Google Play Juegos para PC, consulta Cómo configurar la entrada del mouse.

En el cliente para jugadores, la emulación se inhabilita si agregas lo siguiente a tu manifiesto:

<manifest ...>
  <uses-feature
      android:name="android.hardware.type.pc"
      android:required="false" />
  ...
</manifest>

Esta marca de función no tiene efecto en el entorno de desarrollo.

Cómo probar las relaciones de aspecto

El emulador para desarrolladores se inicia en una relación de aspecto de 16:9 (a diferencia del cliente para jugadores que obtiene su relación de aspecto de la pantalla principal). Para probar el aspecto del juego en las diferentes tipos de pantallas que podrían tener los jugadores, haz clic con el botón derecho en el ícono de la bandeja del sistema, selecciona Opciones para desarrolladores y, luego, cualquier opción de la sección Relación de aspecto.

El método preferido para configurar la relación de aspecto es usar android:minAspectRatio y android:maxAspectRatio.

Por ejemplo, un juego vertical tendría una relación de aspecto de 9/16 o 0.5625, por lo que es posible que quieras establecer una relación de aspecto máxima de 1 para evitar que el juego se vea más ancho que cuadrado:

<activity android:maxAspectRatio="1">
 ...
</activity>

Del mismo modo, un juego horizontal sería 16/9 o aproximadamente 1.778, por lo que es posible que quieras establecer una relación de aspecto mínima de 1 para evitar que se vea más delgado que cuadrado:

<activity android:minAspectRatio="1">
 ...
</activity>

Qué debes probar

Si el juego solo admite modos verticales en el manifiesto, puedes seleccionar 9:16 (vertical) en el menú desplegable para ver cómo se ve en las PCs de los jugadores. De lo contrario, verifica que el juego funcione en las relaciones horizontales más amplias y estrechas que admites en el manifiesto, y recuerda que 16:9 (predeterminada) (o 9:16 [vertical] si el juego solo está en modo vertical) es obligatorio para la certificación completa.

Cómo probar backends de renderización

Google Play Juegos para PC usa ANGLE como capa de compatibilidad para garantizar que la PC host controle correctamente las llamadas de OpenGL ES con un backend de DirectX o Vulkan. El emulador también admite Vulkan directamente, aunque no en DirectX. Esta capa también convierte los formatos de textura comprimidos solo para dispositivos móviles en formatos compatibles con PC. Si haces clic con el botón derecho en el ícono de la bandeja del sistema y seleccionas Anulación de pila de gráficos, puedes establecerlo en la configuración predeterminada de tu sistema o forzar la activación o desactivación de Vulkan para las pruebas de compatibilidad.

Qué debes probar

Existen pequeñas variaciones en los formatos de textura admitidos y los pasos necesarios para emular varias funciones de dispositivos móviles en computadoras de escritorio. Cuando creas perfiles y optimizas el juego, puede que valga la pena verificar cada backend.

Cómo crear perfiles del juego para PC

Dado que el emulador usa la misma tecnología que el cliente para consumidores, es un entorno adecuado para la generación de perfiles de rendimiento.

Perfetto es una herramienta para analizar el rendimiento en Android. Para recopilar y ver un registro de Perfetto, sigue estos pasos:

  1. En un mensaje de PowerShell, inicia un registro con adb.

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. La marca --time especifica la duración del registro que se recopilará. En este ejemplo, el registro es de 10 segundos.
    2. Los argumentos después de la marca --time indican qué eventos se deben registrar. En este ejemplo, gfx indica los gráficos, wm la administración de ventanas y sched la información de planificación de procesos. Estas son marcas comunes para generar perfiles de juegos, y hay una referencia completa disponible.
    3. La marca --out especifica el archivo de salida, que se extrae del emulador y se envía a la máquina anfitrión en el siguiente paso.
  2. Cómo extraer el registro de tu host

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. Cómo abrir el registro en la IU de Perfetto

    1. Abre ui.perfetto.dev.
    2. En la esquina superior izquierda, en Navigation, selecciona Open trace file.
    3. Abre el archivo example.trace que descargaste en el paso anterior en el directorio Downloads/.
  4. Inspecciona el registro en la IU de Perfetto. Estas son algunas sugerencias:

    1. Cada proceso tiene su propia fila, que se puede expandir para mostrar todos los subprocesos en ese proceso. Si vas a generar perfiles de un juego, es probable que su proceso sea la primera fila.
    2. Para acercar y alejar la imagen, mantén presionada la tecla Ctrl y usa la rueda del mouse.
    3. Cuando se usa el evento sched, hay una fila para cada subproceso que muestra cuándo su estado es "Running", "Runnable", "Suspended" o "Blocked".
    4. Cuando habilitas un evento como gfx, puedes ver las distintas llamadas gráficas que realizan varios subprocesos. Puedes seleccionar "slices" individuales para ver cuánto tiempo tardaron, o puedes arrastrar el cursor a lo largo de una fila para hacer que una sección "slices" se abra en la parte inferior y te muestre cuánto tiempo tardaron todas las slices en el intervalo que seleccionaste.

Generación de perfiles de gráficos

Es posible realizar algunos perfiles de gráficos con RenderDoc.

  1. Configura la variable de entorno ANDROID_EMU_RENDERDOC en una cadena que no esté vacía (como "1").
  2. Establece la variable de entorno TMP como %USERPROFILE%\AppData\LocalLow. Esto le indica a Renderdoc que debe colocar sus archivos de registro en un lugar accesible dentro de la zona de pruebas del emulador.

  3. Si usas el backend de Vulkan. Selecciona Graphics Settings > Vulkan Instance Implicit Layers y asegúrate de que VKLAYER_RENDERDOC_Capture esté marcado.

  4. Inicia el emulador para desarrolladores de Google Play Juegos para PC. Se dibuja una superposición de RenderDoc en la parte superior, siempre y cuando la compatibilidad esté habilitada.

  5. Inicia RenderDoc en cualquier momento antes o después de que se inicie el emulador para desarrolladores de Google Play Juegos para PC.

  6. Haz clic en File > Attach to Running Instance y selecciona crosvm.

Cómo especificar las variables de entorno

Para que Renderdoc funcione, debes agregar o cambiar variables de entorno en Windows. Puedes cambiar las variables de entorno con la IU, PowerShell o cmd.exe.

Cómo usar la IU
  • Presiona Win + R para abrir el diálogo de ejecución.
  • Escribe sysdm.cpl para abrir la ventana System Properties.
  • Selecciona la pestaña Advanced si aún no está activa.
  • Haz clic en el botón Environment Variables.

Desde aquí, puedes hacer clic en el botón New para crear una nueva variable de entorno o seleccionar una variable y hacer clic en el botón Edit para editarla.

Cómo usar PowerShell

En una ventana de PowerShell, escribe lo siguiente:

$Env:VARIABLE_NAME=VALUE

Reemplaza VARIABLE_NAME y VALUE por los valores que quieras establecer. Por ejemplo, para establecer ANDROID_EMU_RENDERDOC en "1", escribe lo siguiente:

$Env:ANDROID_EMU_RENDERDOC="1"
Cómo usar cmd.exe

En una ventana cmd.exe, escribe lo siguiente:

set VARIABLE_NAME=VALUE

Reemplaza VARIABLE_NAME y VALUE por los valores que quieras establecer. Por ejemplo, para establecer ANDROID_EMU_RENDERDOC en "1", escribe lo siguiente:

set ANDROID_EMU_RENDERDOC="1"

Sugerencias para Android 11 (nivel de API 30) o versiones posteriores

Se actualizó Google Play Juegos para PC con las versiones más recientes de Android. Estas son algunas sugerencias para trabajar con la versión más reciente de Android.

Mantén las herramientas actualizadas

Android Studio instala una versión de adb compatible con el emulador para desarrolladores. Sin embargo, algunos motores de juego incluyen una versión anterior de adb. En ese caso, después de instalar el emulador para desarrolladores, puedes encontrar una versión compatible de adb en C:\Program Files\Google\Play Games Developer Emulator\current\emulator.

Si inicias una versión de adb, se finalizará la otra. Esto significa que, si tu motor de juego inicia automáticamente su propia instancia de adb, es posible que debas volver a iniciar y reconectar la versión de adb que viene con el emulador cada vez que realices una implementación.

Si usas Android App Bundle, debes instalar la versión más reciente de Bundletool desde el repositorio de GitHub.

Almacenamiento específico

Android 11 (nivel de API 30) y las versiones posteriores incluyen almacenamiento específico, que brinda una mejor protección de los datos de la app y del usuario en el almacenamiento externo. Además de hacer que el juego sea compatible con los requisitos de almacenamiento específico, debes realizar pasos adicionales para cargar archivos de expansión de APK (OBB) o datos de elementos en el emulador para desarrolladores de Google Play Juegos para PC. Sigue estos pasos si tienes problemas para acceder a esos archivos desde el juego:

  1. Crea un directorio que tu app pueda leer.
  2. Envía tus archivos de expansión al emulador.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

Visibilidad del paquete

Debido a las nuevas reglas de visibilidad de paquetes, las apps orientadas a Android 11 (nivel de API 30) o versiones posteriores no pueden buscar información sobre las otras apps instaladas en un dispositivo. Esto significa que el juego no puede acceder a los Servicios de Play cuando se transfiere a través de adb, en lugar de instalarse desde Play Store. Para probar tu CDA con un juego transferido, debes agregar una consulta al paquete "com.android.vending" en tu archivo AndroidManifest.xml de la siguiente manera:

<manifest>
    <queries>
        <package android:name="com.android.vending" />
    </queries>
</manifest>

Cómo instalar el juego en el cliente para consumidores

No puedes instalar un juego en el cliente para consumidores hasta que aparezca en el catálogo de los Servicios de juego de Play. Una vez que el juego tenga una sola versión, puedes crear un segmento de pruebas internas para validar las actualizaciones futuras antes del lanzamiento.

El cliente para jugadores no admite las funciones enfocadas para desarrolladores del emulador para desarrolladores de Google Play Juegos para PC. Se recomienda usarlo para realizar el control de calidad del juego antes del lanzamiento y probar la experiencia de extremo a extremo del jugador después del lanzamiento inicial.