Análisis de las características de Unreal Engine 5.2 ¿es esta la respuesta a #StutterStruggle?

Unreal Engine 5.2 ¿La respuesta a #StutterStruggle?

Casi tres años después de que se revelara por primera vez Unreal Engine 5, estamos al borde de los primeros lanzamientos importantes de juegos de UE5, incluyendo Immortals of Aveum, The Lords of the Fallen y Stalker 2: Heart of Chernobyl. Con el lanzamiento de Unreal Engine 5.2, parece ser el momento adecuado para echar otro vistazo a las nuevas características que se han añadido en la última revisión y cómo estas adiciones colorearán los juegos del futuro, incluyendo títulos de desarrolladores que anteriormente construían sus propios motores como CD Projekt Red y Crystal Dynamics.

La generación procedural es la adición principal de UE5.2, como se mostró en la demostración de Electric Dreams en marzo. Si recuerdas, los espacios presentados en la revelación original de Unreal Engine 5 con Lumen en la Tierra de Nanite y Valle de los Antiguos fueron construidos de una manera muy particular. Los artistas colocaron y organizaron manualmente cada parte del entorno a partir de activos prefabricados, a menudo pasando tiempo copiando y pegando estos activos con cambios de rotación y escala para crear los entornos rocosos escasamente poblados que se encuentran en estas demos. Si bien esta técnica puede ser una forma efectiva de construir proyectos a menor escala como estas revelaciones, este tipo de “kit bashing”, como se le llama, quizás sea impráctico para una producción de videojuegos real. Requiere mucho trabajo manual y también limita en el lado del motor, ya que la superposición innecesaria de muchos meshes afecta el rendimiento para el trazado de rayos Lumen acelerado por hardware.

En la demostración posterior de Matrix Awakens, Epic mostró una herramienta procedural para poblar entornos urbanos, pero con la versión 5.2 han lanzado otro sistema para entornos naturales al aire libre, como el que se ve en la demostración de Electric Dreams. Aquí, Nanite se utiliza no solo para objetos opacos como rocas, sino también para objetos como hojas y arbustos que utilizan transparencias con máscara alfa. Basado en mi primer contacto con la demostración y en el propio editor, esta técnica parece efectiva para generar entornos de alta calidad convincentes a partir de un número limitado de activos y poca intervención del artista. Esto debería facilitar la población de grandes mundos con una cantidad convincente de detalles, con Nanite suministrando el detalle necesario.

Algunas diferencias se muestran mejor visualmente, así que preparamos esta presentación en video solo para ti. Míralo en YouTube

Otro efecto secundario positivo de este método de colocación más sistémico se produce en términos de rendimiento, donde ahora Lumen puede ejecutarse notablemente mejor en su configuración épica predeterminada. En un ejemplo, medí una mejora del 14 por ciento en la velocidad de fotogramas en comparación con Lumen de software en la misma resolución, al tiempo que proporciona un aumento notable en el detalle de las reflexiones, lo que permite mostrar las hojas individuales en lugar de manchas amorfas en la versión de software. La calidad de la iluminación difusa también mejora en la implementación de hardware, ya que la solución de software tendía a oscurecer demasiado las regiones sombreadas. Esto es una mejora sólida en comparación con los entornos basados en kits como el Valle de los Antiguos, donde Lumen de hardware funcionaba significativamente peor, haciéndolo prácticamente inutilizable a pesar de su mayor calidad.

Aunque esto es impresionante, es importante tener en cuenta que estas generalizaciones tienden a ser ciertas cuando hay limitación de GPU, pero los escenarios con limitación de CPU pueden mostrar resultados diferentes. Por ejemplo, al ejecutar la demostración de UE5.2 a una resolución más baja, Lumen de software proporciona un aumento de rendimiento no insignificante del 10 por ciento en comparación con Lumen de hardware. Los requisitos de CPU también tienden a ser elevados, ya que incluso con un Core i9 12900K y RAM DDR5 de 6400MT/s, la demostración se ejecuta a poco más de 60 fps en promedio. Al recorrer el mundo a mayor velocidad, la demostración se vuelve cada vez más limitada por la CPU y el rendimiento sufre, lo que provoca tartamudeos.

Curiosamente, a pesar de ser un motor moderno, UE5 aún no parece escalar bien en CPUs con mayor número de núcleos e hilos, lo que refleja los resultados del año pasado. Por ejemplo, pasar de seis a ocho núcleos en el 12900K aumenta el rendimiento limitado por CPU solo en un seis por ciento, mientras que activar el hiper-threading aumenta el rendimiento en un cuatro por ciento adicional en esta secuencia de prueba. Activar ocho núcleos más eficientes tampoco mejora las tasas de fotogramas.

Después de seis núcleos/hilos, UE5 no muestra una mejora de rendimiento significativa, por lo que los procesadores modernos quedan desaprovechados.

Dado lo común que parece que UE5 se vuelva en los próximos años, esto es un poco decepcionante, especialmente a medida que el número promedio de núcleos de CPU sigue aumentando. Como contexto, en Cyberpunk 2077 vemos un aumento del 88 por ciento en la velocidad de fotogramas al pasar de cuatro núcleos a 16 núcleos en el 12900K, mientras que en la demostración de Electric Dreams solo vemos una mejora del 30 por ciento. Basado en esto, UE5 todavía tiene mucho margen para crecer en términos de aprovechar los procesadores modernos con múltiples hilos.

Si estás utilizando una GPU Ada Lovelace (Nvidia RTX de la serie 40), DLSS 3 Generation puede ser una contramedida efectiva y fácil de implementar para los desarrolladores, solo se necesitan 11 clics en total después de encontrar el complemento en el Unreal Engine Marketplace. Con esto activado, medí una mejora del 97 por ciento en la frecuencia de frames en este escenario limitado por la CPU. Creo que esto hace que DLSS3 (y futuros equivalentes de AMD e Intel) sea una inclusión obvia para los desarrolladores que crean juegos con UE5.

Otra actualización importante de rendimiento en UE5.2 es una mejora en el comportamiento de compilación de shaders, algo que los lectores habituales saben que es un problema constante para mí. La única forma de evitar los tirones de compilación de shaders en UE4 y UE5.0 es proporcionar un paso de precompilación antes de que comience el juego. Esto está disponible en algunos títulos de UE4, pero requiere que los desarrolladores jueguen meticulosamente para construir una biblioteca completa de todos los shaders encontrados por los jugadores; y si se omite algo, los tirones aún ocurren.

El software Lumen puede ser demasiado oscuro en comparación con la versión de hardware, como se puede ver en esta captura.

Con UE 5.1 y una actualización correspondiente de Fortnite, Epic agregó un esquema de compilación de shaders asincrónicos que funcionaba en tiempo real, precompilando shaders en segundo plano en la CPU durante el juego para evitar los tirones. Esta técnica no es perfecta, ya que si un shader necesitaba ser dibujado pero no estaba listo, el juego se entrecortaba. En UE5.2, este sistema asincrónico es más preciso y agrega la capacidad para que el desarrollador retrase la visualización del shader hasta que se compile por completo, eliminando así por completo cualquier entrecortamiento relacionado con los shaders, pero con la posibilidad de que un efecto visual o material se muestre un poco más tarde de lo que lo haría de otra manera.

Este mejorado precacheo asincrónico de shaders y la nueva función skipdraw de la versión 5.2 tienen un efecto transformador según mis pruebas, eliminando los mayores tirones (~500 ms) y mejorando drásticamente la fluidez. Sin embargo, esto no elimina por completo los tirones, ya que persisten algunos ejemplos de 30-50 ms que no se encuentran en una caché completamente “caliente”. Algunos de estos podrían atribuirse a los tirones de recorrido, que UE5 ha heredado de UE4, y aún se pueden encontrar en la última versión de Fortnite que utiliza Unreal Engine 5.2.

En cuanto a los tirones, Unreal Engine 5.2 sin duda es una mejora, pero los tirones de recorrido necesitan trabajo y el nuevo sistema asincrónico de caché de shaders no es una solución milagrosa en la que los desarrolladores puedan confiar por completo para una experiencia de juego fluida. Por un lado, parece que no está activado de forma predeterminada, lo cual algunos desarrolladores podrían pasar por alto, y en segundo lugar, produce algunos tirones que se solucionan con el método de caché de shaders más tradicional. Por lo tanto, probablemente tenga sentido combinar este nuevo sistema asincrónico con el antiguo sistema de precacheo sin conexión para obtener la experiencia más fluida en PC.

Será fascinante ver cómo se aplican estas dos nuevas características de Unreal Engine 5.2 en los juegos de terceros que se lanzarán, desde Immortals of Aveum en agosto hasta The Lords of the Fallen en octubre y Stalker 2 en diciembre. El año 2023 aún no se ha convertido en el año que esperaba para los juegos de PC, pero aún hay tiempo para que eso cambie, y UE5.2 podría desempeñar un papel clave.