¿Qué estás buscando?
Engine & platform

Juegos Focus: Perfiles y optimización del rendimiento

MARIKA NAKAMURA / UNITY TECHNOLOGIESSenior Technical Product Manager
Sep 28, 2022|11 minutos
Juegos Focus: Perfiles y optimización del rendimiento
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.
Este es el tercer blog de nuestra serie Games Focusen el que se destacan las principales iniciativas de desarrollo de productos para el próximo año y los siguientes. Aquí, cubrimos el estado, los próximos planes de lanzamiento, y la visión de futuro para la creación de perfiles y el rendimiento en Unity.

Me llamo Marika. Llevo casi una década trabajando en el sector de los videojuegos y actualmente soy el director técnico sénior de productos para herramientas de creación de perfiles y optimización del rendimiento en Unity.

Cuando pensamos en el rendimiento en Unity, hay tres áreas principales en las que creemos que podemos ayudar:

  • Perspicacia: Le permite analizar el rendimiento de su juego, identificar los cuellos de botella y señalar las áreas que se beneficiarían de las estrategias de optimización.
  • Experiencia: Garantizar que la creación de tus proyectos sea fluida aumentando el rendimiento del editor y del tiempo de ejecución de Unity.
  • Innovación: Guiarle en las nuevas técnicas y paradigmas de programación que tienen en cuenta el rendimiento desde el principio

El artículo de hoy se centra en las dos primeras áreas, y cubre las recientes actualizaciones de nuestro conjunto de herramientas de perfiles y cómo las opiniones de los clientes están dando forma a nuestra hoja de ruta para 2023 y más allá. Termina con una recapitulación de las mejores prácticas para optimizar los proyectos.

En una próxima entrada nos adentraremos en la tercera área, las técnicas de programación y los flujos de trabajo centrados en el rendimiento, con especial atención a los proyectos basados en DOTS.

Creación de perfiles en Unity

Nos gusta pensar en las características de perfilado en Unity como herramientas de detective que le ayudan a desentrañar los misterios de por qué el rendimiento de su aplicación es lento o tiene fallos, o por qué el código está asignando un exceso de memoria. Te ayudarán a entender lo que ocurre bajo el capó del motor de juegos Unity.

Nuestro objetivo es aumentar el rendimiento de las herramientas y el tiempo de ejecución de Unity mediante la creación de perfiles y la optimización, ayudándole a ofrecer un rendimiento fluido a sus jugadores en una amplia gama de plataformas y dispositivos.

Lo que ya puedes usar hoy

Memory Profiler está diseñado para facilitar el seguimiento del uso y la composición de la memoria. Estoy feliz de compartir que el Memory Profiler 1.0.0 es ahora un paquete verificado para la versión beta de Unity 2022.2 y superior (encuentre las instrucciones para descargarlo aquí). Gracias a todos los que han compartido sus valiosos comentarios sobre cómo crear un mejor flujo de trabajo para esta importante función.

Muchos de ustedes se enfrentan al reto de trabajar con las restricciones de memoria de cada una de sus plataformas de destino. El Memory Profiler ayuda a resolver este reto proporcionándole una visión clara del impacto en la memoria de los activos y objetos en una sola vista. También muestra información contextual detallada sobre los objetos y sistemas a los que se refiere la memoria.

Puede profundizar en la captura mediante vistas de desglose y comparar instantáneas de memoria para identificar posibles fugas y asignaciones innecesarias que repercuten negativamente en el uso de la memoria.

La pestaña Resumen proporciona una visión general de la memoria total utilizada. La pestaña Objetos de Unity muestra cualquier objeto de Unity que utilice memoria, mientras que la pestaña Toda la Memoria muestra un desglose de toda la memoria en la instantánea que Unity rastrea.
Puede comparar el uso de memoria entre dos instantáneas de memoria.

Perfeccionamiento del conjunto de herramientas de elaboración de perfiles

En 2022.1, añadimos el Administrador de temporización de fotogramas, que permite capturar y acceder a datos de temporización de fotogramas en varios fotogramas. Si el rendimiento es bajo, utilice esta función para evaluar los marcos y analizar por qué su aplicación no cumple los objetivos de rendimiento. Más información en nuestra documentación.

Si desea supervisar las métricas de bajo nivel de la GPU en Unity Profiler, puede utilizar el nuevo paquete paquete System Metrics Malique lanzamos en 2022.1 gracias a una colaboración con Arm. Este paquete permite acceder a métricas de bajo nivel del sistema o del hardware en dispositivos móviles. Si tienes curiosidad por saber más sobre cómo garantizar que tus contenidos se ejecuten sin problemas en dispositivos móviles con CPU Arm y GPU Mali, este blog de 2021 puede servirte de guía.

Optimización del rendimiento

Las herramientas de creación de perfiles destacadas hasta ahora son un buen comienzo para ayudarle a identificar las áreas en las que se puede mejorar el rendimiento. En mi equipo, sin embargo, la "optimización del rendimiento" no sólo se aplica al rendimiento de ejecución de los juegos en los dispositivos de destino, sino también a la forma de trabajar del equipo, es decir, a su productividad. Nuestro objetivo es ofrecerle tiempos de iteración más rápidos, menos interrupciones y una mayor eficacia en el Editor.

En Unity 2021 LTS, importar tus activos es de tres a cuatro veces más rápido, y abrir proyectos importados hasta un 8,7% más rápido en comparación con Unity 2020 LTS.

Me complace compartir también algunas de las mejoras disponibles en las versiones de 2022:

  • Mejora de la reimportación de materiales para Universal Render Pipeline y High Definition Render Pipeline.
  • Mejoras en el flujo de trabajo del editor, incluyendo:
  • Tiempo de guardado más rápido para escenas grandes
  • Reducción del tiempo de espera en la selección de escenas
  • Mejora del rendimiento en la vista Escena cuando hay muchos grupos LOD.
  • Un paquete optimizado de rigging de animación
  • Mejor desplazamiento jerárquico
  • Flujo de trabajo de guardado mejorado para prefabricados grandes
  • Mejora del tiempo de iteración al trabajar dentro del Editor mediante optimizaciones en las recargas de dominio.
  • Mejoras en el modo de juego, incluyendo:
  • Mejora del rendimiento de la dosificación estática
  • Proceso optimizado para la búsqueda de directorios de recursos por parte de Addressables
  • Precalentamiento de sistemas de partículas

Una vez más, sus comentarios han desempeñado un papel fundamental en muchas de estas mejoras. Por favor, siga compartiendo sus comentarios sobre nuestra futura hoja de ruta aquí, o póngase en contacto con el equipo en los foros. Nos interesan especialmente las cuestiones relacionadas con el rendimiento, que recogemos aquí.

¿Cuál es el siguiente paso?

Durante más de una década, nos hemos centrado en garantizar que pueda conseguir el mejor rendimiento posible utilizando nuestras herramientas de creación de perfiles, y seguiremos perfeccionando el conjunto de herramientas. Este desarrollo ha tomado muchas formas, incluida toda la funcionalidad que ya hemos mencionado aquí.

Otra área en la que hemos trabajado para proporcionar importantes mejoras de rendimiento es la pila tecnológica orientada a datos, o DOTS. Dos de las características esenciales para el éxito de DOTS son el compilador Burst y el sistema de trabajos C#. Estos se aprovecharon en nuestro propio motor de rendimiento interno con grandes resultados, y hoy están disponibles para todos. Próximamente, ofreceremos la tercera característica crítica, Entidades, que impulsará turbo el rendimiento del proyecto en áreas como redes, física y más. Se trata de un aspecto tan importante de nuestro compromiso con el desarrollo de juegos que dedicaremos un artículo independiente de Games Focus a DOTS en esta serie, próximamente.

De momento, veamos algunas mejoras previstas para las próximas versiones.

Estamos trabajando para reducir el tiempo de arranque del Editor, mejorar el tiempo de puesta en marcha y ayudarte a mantener el flujo. Hoy en día, al conectar un dispositivo de destino al Editor, es posible que experimente inestabilidad, como desconexión o imposibilidad de recuperación. Estamos trabajando para que las conexiones del editor a plataformas móviles sean más fiables y eficaces en la versión 2023.1.

Además, queremos que le resulte más eficaz identificar los cuellos de botella con el Profiler y saber qué hacer una vez que los haya detectado. Nuestro objetivo es dirigirle rápidamente a las áreas de optimización que producirán las mayores ganancias de rendimiento.

También estamos pensando en añadir información sobre la memoria en función del dispositivo para el que se compile, de modo que se puedan obtener mejoras de rendimiento específicas para cada plataforma. Se trata de una fase inicial, por lo que estamos buscando activamente sus comentarios sobre esta nueva función, que puede proporcionar en nuestra página de hoja de ruta.

Recursos

La experiencia con el conjunto de herramientas de perfilado de Unity es una de las habilidades más útiles que puedes añadir a tu caja de herramientas de desarrollo de juegos. Por eso estamos trabajando en la creación de contenidos más avanzados sobre las mejores prácticas para ayudarte a sacar el máximo partido de nuestras herramientas.

Varios de mis compañeros de equipo elaboraron recientemente nuestra guía más extensa hasta la fecha sobre la creación de perfiles en Unity, en colaboración con ingenieros expertos del equipo de éxito integrado de Unity y expertos.

También le sugiero que descargue estos libros electrónicos avanzados adicionales que ofrecen amplias mejores prácticas de optimización específicas para cada plataforma:

Otra referencia útil es este diagrama de flujo, que ofrece un enfoque recomendado para identificar los cuellos de botella en su proyecto.

Diagrama de flujo que ofrece un enfoque recomendado para identificar los cuellos de botella en su proyecto.

Por último, esta Lista de lectura sobre perfiles y optimizacióncreada por nuestros equipos de contenidos y marketing, incluye publicaciones clave del blog que le ayudarán a comprender los conceptos y métodos de creación de perfiles, desde los más básicos hasta los más avanzados.

Imágenes de portada para tres libros electrónicos de Unity: Optimiza el rendimiento de tus juegos para consolas y PC, Optimiza el rendimiento de tus juegos para móviles y Guía definitiva para crear perfiles en juegos Unity.
Díganos lo que piensa

Mi equipo trabaja duro para ofrecerle las soluciones que necesita para sus proyectos más ambiciosos, y siempre estamos deseosos de entender cómo podemos ayudarle mejor.

Permanezca atento a las actualizaciones en nuestra página pública de hoja de ruta. También es el mejor lugar para compartir opiniones directamente con el equipo de producto.

Esté atento al blog para nuestra próxima actualización de Games Focus, que se centrará en lo que Unity está haciendo para ayudarle a dirigirse a más plataformas y factores de forma con el contenido de su juego. Y, como siempre, comparte tus comentarios con nosotros en los foros.