Obtenga más información sobre el rendimiento del juego, basado en Android Performance Tuner

publicado por Dan Galpin Defensor del desarrollador

Android vitals es el destino para administrar la calidad técnica de su aplicación. Más de 80,000 desarrolladores aprovechan sus métricas de rendimiento y estabilidad cada mes.

Como parte de nuestro trabajo para ayudarlo a ofrecer mejores experiencias de juego a más usuarios de Android, presentamos Android Performance Tuner, una nueva biblioteca en Android Game SDK que desbloquea información de rendimiento juego en Android Vitals. Esto le ofrece una forma escalable de medir y optimizar la velocidad de cuadros y la fidelidad de gráficos en todo el ecosistema de dispositivos Android.

  Ejemplo de ataque de Unity Boat con diferentes optimizaciones

Ejemplo de ataque de Unity Boat con diferentes optimizaciones

Después de integrar Android Performance Tuner en tu juego y publicarlo en Play, podrás ver cómo funciona Usuarios y dispositivos reales con las siguientes características nuevas en videos de Android.

Rendimiento de velocidad de fotogramas

  Rendimiento de velocidad de fotogramas por calidad de dispositivo y nivel de modelo

Rendimiento de velocidad de fotogramas por calidad de dispositivo y nivel de modelo

Representamos la distribución de tiempo de los fotogramas entre los dispositivos de los usuarios, divididos por los niveles de calidad que ha implementado en su juego, para que pueda ver cómo funcionan los modelos de dispositivos específicos o las especificaciones de hardware en cada nivel de calidad.

Problemas de rendimiento

También analizamos sus datos de rendimiento para ayudar a determinar la causa probable de los problemas, de modo que podamos distinguir entre problemas asociados con hardware específico y problemas con pantallas o niveles específicos en el juego. Escriba su código para proporcionar información contextual sobre lo que está haciendo su juego en ese momento. Esto le da control total sobre la granularidad de las ideas.

  Problemas del modelo / anotación del dispositivo principal

Problemas del modelo / anotación del dispositivo principal

Recordamos el problema del modelo del dispositivo principal y el problema específico del juego para proporcionar indicaciones claras de lo que es más importante.

  Modelos de dispositivos con menor rendimiento que GPU

Modelos de dispositivos con menor rendimiento que GPU

Puede profundizar para ver un desglose de modelos de dispositivos con menor rendimiento por especificación, como GPU y SoC. Esto le permite decidir si puede trabajar a nivel de GPU o SoC para optimizar el rendimiento. Alternativamente, puede decidir cambiar los niveles de calidad, en lugar de trabajar en el nivel de modelo del dispositivo.

  Impacto del modelo de dispositivo, Impacto del usuario, Tiempo de GPU

Impacto del Modelo de dispositivo, Impacto del usuario, Tiempo de GPU

También puede ver la lista completa de modelos de dispositivo, junto con el número de sesiones de usuario afectadas y en el tiempo de fotogramas, para ayudarlo a priorizar cambios específicos del dispositivo. Además del tiempo de trama total, también le mostramos el tiempo de la GPU para ayudarlo a determinar si el dispositivo está asociado con la GPU o tiene otro problema de rendimiento, como CPU o E / S. Todos los datos en la tabla de modelos del dispositivo se pueden exportar para su posterior análisis y planificación de acciones.

Oportunidad de hacer una gran experiencia fantástica

También podemos ayudar a identificar oportunidades: lugares donde potencialmente podría ofrecer a los usuarios una mejor experiencia, ofreciéndoles un mayor nivel de calidad, permitiendo funciones gráficas más avanzadas.
 Rendimiento de tiempo de fotograma con oportunidad

Rendimiento de tiempo de fotograma con oportunidad

Los dispositivos del extremo izquierdo son tiempos de fotogramas más que satisfactorios para un rendimiento uniforme. Puede profundizar para ver estadísticas basadas en el modelo y las especificaciones del dispositivo para ver si existe la oportunidad de mejorar la fidelidad gráfica en una amplia gama de dispositivos.

Disponible (casi) en todas partes

Android Performance Tuner está diseñado para ejecutarse en más del 99% del ecosistema de dispositivos Android. Puede obtener esta información en todos los dispositivos Android en todo el mundo, desde Android 4.1 (API 16) en adelante.

Integración del sintonizador de rendimiento de Android

Ya sea que tenga su propio motor de juegos o use un motor de juegos de terceros, estamos haciendo todo lo posible para simplificar la integración. Android Performance Tuner se basa en el hecho de que las funciones de marca se llaman todos los cuadros. Dentro de la biblioteca, esta información de ticks se agrega en histogramas, que se cargan periódicamente a través de un punto final HTTP, por lo que su juego deberá tener autorización de acceso a Internet.

Con nuestro complemento para la plataforma Unity, es posible recopilar marcas de cuadros desde Unity 2017.4 en adelante. Unity 2019.3.14+ permite la recopilación de información sobre el rendimiento de alta fidelidad.

Si está realizando una integración del motor en el nivel del código fuente nativo, le recomendamos encarecidamente que integre la API Frame Pacing del Android Game SDK para obtener la información de mayor calidad. La API Frame Pacing le ofrecerá velocidades de cuadro más suaves y soporte mejorado para pantallas de alta frecuencia de actualización, por lo que vale la pena integrarse por su cuenta.

Unreal 4.25+ integra la API Frame Pacing. Lo habilita agregando a.UseSwappyForFramePacing = 1 al perfil Android_Default para activarlo para todos los dispositivos Android.

Dentro de Unreal o la integración del motor nativo, cambiamos a la función Swappy_injectTracer desde el API Frame Pacing durante la inicialización para permitir la grabación automática de pedazo de tiempo.

  void InitTf (JNIEnv * env, actividad de trabajo) {
   SwappyGL_init (env, actividad);
   swappy_enabled = SwappyGL_isEnabled ();
   Configuración de TFSettings {};
   if (swappy_enabled) {
       settings.swappy_tracer_fn = & SwappyGL_injectTracer;
   }
...
}

Habilitación de la grabación de tiempo de cuadro en el sintonizador de rendimiento de Android para su motor

En Unity, recomendamos activar el ritmo de cuadro optimizado en la configuración de Unity (solo Unity 2019.3+), pero el ritmo de cuadro no es se requiere en Unity para usar el Android Performance Tuner.

  Habilitación de la estimulación de cuadro optimizada en Unity 2019.3

Habilitación de la estimulación de cuadro optimizada en Unity 2019.3

Proporcionar información contextual

A continuación, desea definir anotaciones para proporcionar información contextual sobre lo que hace el juego cuando hay una marca de verificación
registrado, como:

  • Nivel actual del juego
  • Carga de una escena específica
  • Un "gran jefe" u otro objeto complejo está en la pantalla
  • Información relevante sobre el estado del juego

Parámetros de anotación

Si usa Unity con el complemento Android Performance Tuner, obtendrá automáticamente una anotación de escena que se asigna a la escena actual que se está reproduciendo. La anotación LoadingState se puede vincular fácilmente a sus scripts y se pueden definir anotaciones adicionales en la interfaz de usuario del editor de complementos.

  Parámetros de anotación dentro de Unity Editor desde el complemento Android Performance Tuner

Parámetros de anotación dentro de Unity Editor desde el complemento Android Performance Tuner

Para pasar los parámetros de anotación de su motor de juego, defina un mensaje de búfer de protocolo que contenga todas estas anotaciones , como el estado de carga, nivel o escena, etc.

Parámetros de lealtad y niveles de calidad

También defina los parámetros de lealtad y asócielos con los niveles de calidad informados por su juego. Se pueden usar para cualquier cosa que use en su juego para reducir la complejidad de la escena, como la calidad de la trama, la distancia de dibujo, el recuento de partículas, los efectos de procesamiento posterior, la resolución de sombras, etc. En la integración nativa, defina estos parámetros utilizando un búfer de protocolo.

  importación "tuningfork.proto"
Mensaje de FidelityParams {
  int32 texture_quality_level = 1;
  int32 shadow_resolution = 2;
  flotante terreno_detalles_percent = 3;
  int32 post_processing_effects_level = 4;
} 

Ejemplo de definición de prototipo de FidelityParams para un motor interno

Por lo tanto, se crean hasta quince conjuntos de niveles de calidad como un conjunto de valores definidos por el mensaje FidelityParams, que permite que Android Performance Tuner realice un seguimiento del métricas propias con respecto a sus datos de calidad. Puede crear tanto parámetros de lealtad como niveles de calidad en la interfaz del editor de Unity proporcionada por el complemento Android Performance Tuner para Unity.

Prueba de su integración

Creamos la aplicación Tuning Fork Monitor para que actúe como un servidor local y vea los datos de una aplicación Android Performance Tuner habilitada. Puede llamar a EnableLocalEndpoint () en el complemento Unity Unity de Performance Tuner en una compilación de desarrollo para habilitar las pruebas locales. En la integración nativa, configura endpoint_uri_override en la configuración de Android Performance Tuner.

Una vez que las pruebas locales se vean geniales, habilite la API de parámetros de rendimiento de Android en Google Cloud Console para probar de principio a fin.

Disponible ahora

Estamos comprometidos a ayudarte a llevar la mejor versión de tu juego a la mayor cantidad de usuarios y dispositivos en el ecosistema de Android. Android Performance Tuner en Android Game SDK, el complemento Unity y Performance Insights en Android Vitals ya están disponibles. Puede consultar nuestra documentación para obtener una descripción general del proceso para integraciones nativas y de unidad.



Compruebe también

La actualización de CameraX hace que las cámaras duales simultáneas sean aún más fáciles

Publicado por Donovan McMurray – Ingeniero de relaciones con desarrolladores CámaraXLa biblioteca de cámaras Jetpack …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *