Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Descripción general de Android Performance Tuner (Unity)

En esta guía, se describe cómo usar un complemento de Unity a fin de grabar y subir datos de latencia de fotogramas de Unity 2017.4 o una versión posterior.

Para los motores de juegos que usan C o C++, consulta la guía para motores de juegos nativos.

Información general

Un componente fundamental de la experiencia de juego es el rendimiento del procesamiento. Este rendimiento es el resultado de las siguientes dos entradas:

  • Velocidad de fotogramas: frecuencia con la que se traza un fotograma
  • Configuración de calidad gráfica: grado de fidelidad al que se presenta un fotograma, lo que incluye tanto la fidelidad de simulación como los gráficos

En materia de juegos, un buen rendimiento de procesamiento se define como aquel que logra lo siguiente:

  • Entregar una velocidad de fotogramas estable y coherente (es decir, el porcentaje de fotogramas que se procesan a la frecuencia deseada)
  • Procesar fotogramas con la mayor frecuencia posible y, al mismo tiempo, mantener la estabilidad (por lo general, será de 30 o 60 FPS, según el tipo de juego)
  • Maximizar el nivel de detalle para cada usuario según el tamaño y la densidad de su pantalla, y lograr una velocidad de fotogramas estable y deseable

La biblioteca de Android Frame Pacing limita gran parte de la variación de la latencia de fotogramas, lo que proporciona una velocidad de fotogramas estable para los juegos. La variación restante se debe al nivel de detalle que se muestra durante ciertas escenas del juego y a las capacidades gráficas del dispositivo. Con Android Performance Tuner, puedes identificar los momentos del juego en los que la latencia fotogramas fue más lenta o más rápida que el objetivo y correlacionar estos problemas y oportunidades con lo siguiente:

  • Determinada configuración de calidad
  • Escenas del juego específicas
  • Modelos o especificaciones de dispositivos

Cómo grabar y subir datos

La biblioteca de Tuning Fork depende de que la biblioteca Android Frame Pacing llame a una de las funciones de marca (o que lo haga el motor de Unity en versiones anteriores de Unity, en las que la librería Frame Pacing no está disponible). En la biblioteca, se agrega esta información de marca a histogramas, que luego se suben periódicamente a Google Play a través de un extremo HTTP. Cada marca se registra como asociada con una etiqueta de marca y una anotación. Las anotaciones se definen por medio del complemento de Unity.

Etiquetas de marca

Una etiqueta de marca indica el lugar del fotograma del cual proviene la marca y es un valor entero que se debe pasar a cada llamada de la función de marca. Esto se hace automáticamente mediante el complemento de Unity. Si está habilitada la opción Optimized Frame Pacing en la configuración de Unity para tu juego (disponible en Unity 2019.3.14 o versiones posteriores), Android Performance Tuner usará la información de la biblioteca de Android Frame Pacing a fin de informar métricas mejoradas.

Anotaciones

Las anotaciones proporcionan información contextual sobre lo que está haciendo tu juego cuando se registra una marca. Por ejemplo, una anotación podría identificar cualquiera de los siguientes elementos:

  • El nivel actual del juego
  • La carga en curso de una escena específica
  • La presencia en pantalla de un "jefe"
  • Cualquier otra información relevante sobre el estado del juego

Las anotaciones se definen en un cuadro de diálogo proporcionado por el complemento de Unity.

De forma interna, la biblioteca de Tuning Fork usa el formato del búfer de protocolo de Google para almacenar anotaciones y parámetros de fidelidad. Este es un protocolo bien definido, que admite varios idiomas y que se aplica a los datos estructurados extensibles. Para obtener más información, consulta la documentación sobre búferes de protocolo.

Parámetros de fidelidad

Los parámetros de fidelidad influyen en el rendimiento y el realismo de los gráficos de tu juego, como el nivel de detalle de la malla, la resolución de la textura y el método de suavizado de contorno. Al igual que las anotaciones, los parámetros de fidelidad se definen en un cuadro de diálogo proporcionado por el complemento de Unity.

Sobrecarga de memoria y CPU

Toda la memoria que usa la biblioteca de Tuning Fork se asigna durante la inicialización a fin de evitar sorpresas durante el juego. El tamaño de los datos depende de la cantidad de etiquetas de marca, la de anotaciones posibles y la de depósitos de cada histograma. Es un múltiplo de estas cantidades por cuatro bytes para cada depósito. También hay dos copias de todos los histogramas para permitir el envío en un modo de doble búfer.

El envío se produce en un subproceso independiente y no bloquea las llamadas de marcas. Si no hay una conexión de carga disponible, el envío quedará en una fila para realizar la carga en otro momento.

Hay poca sobrecarga de procesamiento en la llamada a una función de marca: simplemente calcula un índice en el arreglo de los depósitos de histogramas y aumenta el recuento de números enteros.

Solicitudes web

La biblioteca realiza dos tipos de solicitudes al extremo del servidor:

  • Una solicitud generateTuningParameters en la inicialización
  • Periódicamente durante el juego, una solicitud uploadTelemetry para enviar datos al servidor

Jugadores sin conexión

Si no hay una conexión disponible en la inicialización, se volverá a realizar la solicitud varias veces con un tiempo de espera creciente. Si no hay conexión durante la carga, esta se almacenará en caché. Las cargas se almacenan como archivos en el almacenamiento temporal.

Requisitos

Si quieres usar el complemento en tu juego, usa una versión compatible de Unity:

  • Unity 2017.4 o versiones posteriores y .NET 4.6
  • Para usar archivos de expansión de APK, se requiere Unity 2018.2
  • A fin de mejorar el ritmo de fotogramas y las mediciones de la GPU, se requiere Unity 2019.3.14 o una versión posterior

Cómo integrar Android Performance Tuner en Unity

Para integrar Android Performance Tuner en Unity, debes importar y configurar un complemento de Unity. Haz clic en el vínculo Siguiente más abajo para comenzar.