En los próximos días se van a realizar numerosos anuncios sobre DirectX12, que va a ser presentado en sociedad en un futuro cercano. Y por supuesto, no van a perder la oportunidad de hacer una excelente campaña de marketing, que irónicamente no va a tocar demasiado al PC, y se va a centrar más en Xbox One y PlayStation 4. Por lo tanto, antes de que eso suceda, me gustaría aclarar muy brevemente algunos puntos al respecto para aquellos que desconozcan la cuestión en profundidad.
DirectX es una librería de interfaces de programación, cuya primera versión data de 1995, y cuyo objetivo era proveer una forma universal de programar videojuegos en entornos Microsoft, lo que claramente impulsó el desarrollo de juegos para ordenadores, que hasta entonces era escaso dado el alto nivel económico que se requería para tener un ordenador doméstico, mercado que en aquellos momentos dominaba Apple. Bill Gates sabía que los juegos iban a ser parte fundamental para el éxito de Windows, y hasta se prestó a hacer un anuncio de Doom para promocionar la plataforma.
Cada nueva versión de DirectX (o mejor dicho, de Direct3D) ofrece nuevas formas de interacción del programador con el sistema, pudiendo realizar algunas técnicas de forma más sencilla y con menor consumo de recursos. Por ejemplo, Direct3D 11 ofreció una mejora de la teselación, del procesado multinúcleo y del procesamiento de shaders para otras funciones que no fuesen juegos. ¿Quiere eso decir que antes no se podía hacer, por ejemplo teselado? No, para nada, simplemente que pusieron al alcance de los programadores una forma unificada y sencilla de hacerlo. Y por supuesto, también se puede realizar con otras librerías de programación como OpenGL.
Mientras que en una consola los programadores siempre han trabajado a bajo nivel, es decir, interactuando directamente sobre el hardware, en entornos Windows siempre ha estado bastante prohibido, trabajando siempre sobre la librería gráfica del sistema operativo, y éste a su vez sobre el hardware. Entre otras muchas razones, siempre ha sido uno de los lastres de rendimiento en ordenador, pero claro, si una consola se bloquea con un juego no pasa nada, mientras que si un PC colgase parte de su hardware, habría que reiniciar el PC entero. No obstante, el proteccionismo al respecto llegó demasiado lejos, y ya iba siendo hora de frenarlo.
AMD Mantle es una nueva librería de programación, cuya principal característica es que permite trabajar directamente sobre el hardware, mejorando el rendimiento de forma increíble trabajando sobre el mismo hardware. Por poner un ejemplo, Battlefield 4 con AMD Mantle casi duplica el rendimiento simplemente cambiando de DirectX a Mantle. La librería, exclusiva de PC pero abierta, ha hecho temblar a Microsoft.
¿Por qué? Porque AMD Mantle pronto funcionará en Linux, y al mismo tiempo Gabe Newell y Steam están dando pasos de gigante para alejarse de Windows, lo que está haciendo que en los últimos meses numerosos jugadores se planteen la opción de que igual su próxima plataforma no sea un entorno Microsoft.
Y en Microsoft saben que el mismo éxito de Windows que vino por los juegos se puede ir por los mismos, así que se han puesto manos a la obra y una de las principales novedades de DirectX 12 será el soporte de instrucciones gráficas de bajo nivel, lo que supuestamente mejorará enormemente el rendimiento. ¿Hasta qué punto? Pronto lo sabremos, pero desde luego el movimiento es histórico, y habrá un ganador: los jugadores.
Ofrecer soporte a una nueva versión de DirectX era tan sencillo como que la tarjeta gráfica cumpliese con ciertas especificaciones y los drivers (generalmente de ATI, ahora AMD Radeon, o Nvidia) le diesen soporte. Eso provocaba que junto al lanzamiento de espectaculares efectos y gráficas carísimas, apareciesen modelos de gama baja (en torno a 100€) promocionándose como hardware compatible con la última librería de turno, como DirectX 10 u 11.
¿Y qué pasaba? Pues que efectivamente eran capaces de hacerlo, pero bajando el rendimiento a 5-10 fps, es decir, había que desactivarlo para poder jugar en condiciones. A fin de cuentas, era una simple jugada de marketing, pues los efectos gráficos requieren un hardware a la altura, y su compatibilidad no garantiza absolutamente nada.
En los próximos días se anunciará DirectX 12, se enseñaran un montón de efectos gráficos muy resultones y se anunciará que es compatible con Xbox One. ¿Y qué conclusión debemos sacar? Que sucederá exactamente igual que siempre, su compatibilidad no va a suponer nada, como no lo supuso en su momento con DirectX 10 y Xbox 360. Es más, podemos recordar como Crysis 3 en PC tenía algunos efectos de DirectX 11 que luego replicó en Xbox 360 y PlayStation 3, pero usando otros mecanismos.
Mientras que Xbox One usa DirectX como parte de su SDK, PlayStation 4 utiliza PSL (PlayStation Shader Language), un clon de HLSL (High Level Shader Language), usado por DirectX. En resumidas cuentas, mientras que en PC ningún programador se va a molestar en explotar un hardware minoritario, tanto Xbox One como PlayStation 4 van a contar siempre con efectos gráficos muy similares, ya que lo que no se hace de una forma se hace de otra.
No podemos dejar de lado que la GPU (o mejor dicho, la CPU-GPU) de ambas consolas han sido fabricadas por AMD, y sobre la mesa está que la utilizada en PlayStation 4 es algo más potente que la de Xbox One. Y aquí no hay RAM o eSRAM que valgan, aquí solo cuenta la potencia de cálculo de las propias gráficas.
Y por mucho que prometan el oro y el moro, el hardware sigue siendo el mismo y en ambas consolas ya se programa a bajo nivel. Será un anuncio interesante, pero para el mundo del PC, porque en consolas todo seguirá igual.