El ecosistema de juegos en Windows está a punto de recibir una de las mejoras más prácticas de los últimos años: un sistema que promete eliminar gran parte de las cargas eternas en los juegos y los molestos tirones al estrenar un título. Microsoft lo ha bautizado como Advanced Shader Delivery, y debutará en las nuevas ROG Xbox Ally y ROG Xbox Ally X. La idea es sencilla de explicar pero compleja de implementar: trasladar a la nube uno de los procesos más pesados para la GPU y entregarlo al jugador ya resuelto, incluso antes de arrancar la partida por primera vez. Vamos a ver cómo funciona en detalle según lo que ha mostrado Microsoft.
Detrás de este movimiento está el equipo de DirectX, que en colaboración con AMD y Xbox ha conseguido darle una vuelta de tuerca al tratamiento de Shaders. Como seguro has visto en una cantidad increíble de juegos, cada vez que lo ejecutamos por primera vez, el sistema necesitaba compilar esos pequeños programas gráficos encargados de efectos de luz, texturas o físicas. Pasa igual con cada cambio de driver, es un proceso muy común, pero honestamente “es un coñazo”. Esto podía hacerse en pantalla de carga o incluso en medio de la acción, provocando los temidos “stutters”. Pues bien, esto se va a acabar.
Según informa Microsoft, han desarrollado un formato estandarizado llamado State Object Database (SODB), capaz de recopilar toda esa información gráfica y combinarla con un compilador separado del driver. El resultado se procesa en la nube y se transforma en una Precompiled Shader Database (PSDB).
Esta base de datos de shaders precompilados se descarga junto al propio juego desde la Xbox PC App y se almacena en Windows, lista para usarse. Así, la primera vez que se lanza el título, la mayoría de los cálculos ya están hechos, y el jugador se libra de esperas y parones innecesarios. Simple, pero quizás menos efectivo, porque la personalización está en duda para la inmensa cantidad de hardware del mercado.
¿Y qué tiene que ver esto con el stuttering? Es algo que vimos hace tiempo con una explicación técnica de Epic y que lo comentaremos por encima para proseguir después. Los shaders (en términos de software, no de hardware) son pequeños programas que corren en la GPU para encargarse de tareas como la iluminación, las sombras o el procesado de texturas.
Estos programas suelen escribirse en un lenguaje de alto nivel y, cuando un juego se lanza, el driver de la tarjeta gráfica necesita traducirlos al código específico de la GPU. Si esta traducción ocurre justo en el momento en que el juego quiere usar ese shader, todo se detiene hasta que el compilado termina, generando los conocidos tirones o hitches.
Con las API modernas (DirectX 12, Vulkan) existe el concepto de Pipeline State Objects (PSO), que permiten preparar conjuntos de shaders y configuraciones de GPU por adelantado, reduciendo las interrupciones. Sin embargo, los juegos actuales tienen miles de materiales y combinaciones posibles, lo que puede derivar en millones de PSOs.
Compilar todo eso en la carga inicial sería inviable, y por eso se generan soluciones intermedias como la precarga selectiva de shaders en motores como Unreal Engine. Aun así, si un shader no estaba en esa lista precargada, el jugador lo notará con un parón repentino en medio de la partida. Esto es justo lo que Microsoft quiere eliminar de raíz al mover la compilación masiva de shaders a la nube y entregar el resultado ya listo antes del primer arranque del juego.
Para que nos hagamos una idea de lo que supone, en pruebas internas con Avowed (el RPG de Obsidian Entertainment), los tiempos de carga inicial se redujeron hasta un 85%. En otras palabras, para entenderlo, empiezas a jugar antes y eso en portátiles gaming, por ejemplo, implica que la batería del dispositivo se dedica a lo que importa: mantenerte en la partida, en el juego, no en cálculos de fondo.
Un punto a favor es que los estudios no necesitan hacer nada extra para aprovecharlo en esta primera fase. A medida que la tecnología se expanda, Microsoft planea integrarla directamente en motores gráficos, de modo que los desarrolladores puedan sacarle partido desde el primer día sin ajustes adicionales. Y esto sí que es realmente un paso adelante, pero el concepto actual de Advanced Shader Delivery es más bien “un parche intermedio” para agilizar las cosas.
El lanzamiento inicial se centrará en los nuevos dispositivos portátiles de ASUS con la marca ROG Xbox Ally, pero no se quedará ahí. En septiembre llegará el AgilitySDK, un kit que pondrá estas herramientas y API a disposición de más desarrolladores y tiendas digitales. Ese será el momento en el que se conozca cómo aplicar la función en títulos ya disponibles y, además, se revelarán más dispositivos compatibles.
Sin duda, es un paso hacia el lado correcto, a agilizar una tarea que es trivial y que también es necesaria, pero que no aporta nada al jugador más allá de la optimización. Si Microsoft consigue que Advanced Shader Delivery sea algo transparente para el usuario, volveremos a la carga rápida de los juegos nada más instalarlos, un poco como el pasado, con las ventajas de los motores, API y tecnología actual.
Para poder comprar, aprovechar las promociones y utilizar los medios de pago en nuestro sitio es requisitio estar correctamente registrado. En ningún momento recibirá correo electrónico que no haya solicitado. Pero se le pediran una serie de datos personales indispensables para cualquier operación comercial.
Los datos solicitados son necesarios para confeccionar la factura de los productos comprados y la dirección física para el envio de su compra.
Para más informació sobre nuestras políticas en el tratamiento de los datos personales visite la sección Terminos y Condiciones.
