DirectX 12 y la campaña de marketing que se aproxima

DirectX-logo

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.

¿Qué es DirectX?

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.

¿Qué proporciona cada nueva versión de DirectX?

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.

Consolas vs PC y DirectX

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.

La importancia de AMD Mantle

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.

El marketing de siempre, en PC

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.

El nuevo marketing, el de Xbox One y PlayStation 4

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.

Las consolas de nueva generación no son transparentes con el usuario

trust-me

Diseño y tecnología, un tandem que  va de la mano con el objetivo de ofrecer la mejor experiencia de usuario al consumidor. Desde los inicios de la informática, primero se creaba la tecnología y después se diseñaba una interfaz acorde para que el usuario pudiese manejarla.

La informática ha cambiado el mundo, pero la informática también lo ha hecho. Hablando estrictamente de las interfaces de usuario para el público mayoritario, hemos pasado de la simpleza por limitación tecnológica a la simpleza como forma de minimalismo, sin olvidar aquellas interfaces de hace unos años recargadas hasta la médula con botones e información por todas partes.

Las videoconsolas no han estado exentas de esta evolución, y cada vez vemos como las compañías se esfuerzan por aportar un diseño más cuidado, que entre por los ojos, con «punch» para que el consumidor necesite adquirir ese producto. Sin embargo, no es oro todo lo que reluce, y es que con las nuevas consolas llega también una ocultación general de la información de cara al usuario.

Cuando las conexiones ADSL proliferaron en los hogares, los juegos en PC ya tenían enormes parches que corregían errores o añadían funcionalidades, para lo cual descargabas un ejecutable, lo lanzabas, y en algún punto de la instalación te mostraba un completo listado de cambios.

En 2002 llegó Xbox, y marcó la senda de Xbox 360 y PlayStation 3, dos consolas con disco duro de serie (salvo algún modelo) y constantemente conectadas. Ejecutas un juego en una de las dos, te informa de que hay un parche y a descargar. ¿Y el listado de cambios? Nada, ni de coña. Ya puedes ponerte a buscarlo por foros, igual si tienes suerte, la compañía ha dicho algo más que «diversas mejoras». En Wii sin embargo casi no usaban esta función, pero tampoco estaban exentos de culpa: los bloques. ¿Cuánto espacio tengo libre? 548 bloques. ¡Y yo que sé cuanto es un bloque!

Ahora, en la nueva generación, cada una tiene para dar y tomar. En WiiU podemos ver sin ningún problema cuanto espacio tenemos ocupado en el disco duro (y en MB/GB, nada de bloques), pero sin embargo acudimos a la eShop y no se nos informa del espacio que ocupará un producto antes de pasar por caja. Los parches se aplican con nuestro consentimiento, pero tampoco nos informan del listado de cambios.

PlayStation 4 nos informa desde sus ajustes detalladamente del tamaño ocupado por cada aplicación, así como de sus partidas guardadas o de los videoclips capturados. Adicionalmente, nos detalla si una aplicación tiene origen en disco o es digital, su nivel parental y su fecha de caducidad si es que la tuviese. De la misma forma, nos ofrece la información de espacio de un producto en su tienda antes de adquirirlo, lo que en muchos casos puede ser un factor determinante.

Sin embargo el mosqueo llega cuando introducimos un juego. Metemos el disco en la consola, y tras unos segundos de instalación (sí, segundos), nos deja lanzarlo y empezar a jugar. Lo que no nos dice por ningún lado es que va a proceder a instalar el disco completo y sin nuestro consentimiento, ocupando una media de 30-40GB por juego. Es decir, si realmente necesita instalarse que lo haga y lo solicite explícitamente, pero si no lo necesita, dame la opción, pero en cualquier caso, como usuario, me gustaría ser informado de ello.

Lo que sí está perfecto es el listado de actualizaciones, que podemos consultar de cualquier título de nuestra biblioteca, con un desglose detallado de los cambios realizados en un juego.

Llegamos a Xbox One, y llegamos a la cumbre del ocultismo. A la hora de adquirir un producto se nos informa de sus necesidades de espacio, pero será la última vez que lo veamos. El sistema no deja ver la información relativa al espacio ocupado en el disco duro, algo completamente inexplicable. Cuando introducimos un disco de juego, se instalará por completo en la consola (además tampoco pregunta, lo instala sin más), pero jamás sabremos cuánto espacio está ocupando.En las cajas de los juegos tampoco informa de ello ni de cuanto espacio ocupará en nuestro sistema.

Desinstalar una aplicación tampoco está muy claro. Si acudimos a nuestros programas, hay una opción denominada «Cancelar instalación» y que hace desaparecer el título de nuestra librería, pero no nos queda muy claro si realmente lo borra o simplemente lo oculta. Para colmo, nos queda menos claro si eso implica el borrado de partidas guardadas o no, ¡sorpresa!

Resulta evidente que un juego físico lo tenemos en nuestra estantería, pero si quiero borrar un juego digital, ¿por qué lo haces desaparecer de mi librería? ¿No puedo dejarlo simplemente sombreado? Luego ponte tú a buscarlo en dicha interfaz.

El proceso de parcheo también resulta completamente invisible para el usuario, y nunca sabremos ni cuanto ocupan esos parches ni su listado de cambios. Es más, si tenemos la consola en modo reposo, tampoco sabremos si se ha instalado algo nuevo o no.

El mundo del PC siempre ha sido diferente, más técnico y completo, más pesado para el usuario que simplemente quiere jugar, pero creo que Steam ha dado unos pasos muy importantes en esa dirección sin perder toda la información adicional que muchos usuarios requieren. En todo momento se cuánto ocupa un juego, y puedo elegir si quiero que se actualice automáticamente o no. De la misma forma, puedo ver el listado de cambios de cualquier título, así como eliminar el contenido local pero manteniendo la referencia con el título sombreado, sin necesidad de rebuscar entre mi historial de compras.

El modo Big Picture de Steam es la mejor prueba de que se puede diseñar una interfaz usable y bonita pero sin perder ninguna de sus funcionalidades desde los menús avanzados. ¿Quiéres esa información? La tienes. ¿No la quieres? Sin problema, no te va a molestar.

Al final, no puedo dejar de pensar que el mejor método de actualización en consola era el implementado en PlayStation 3. Elijo una hora del día a la cual la consola se encenderá automáticamente, sincronizará las partidas guardadas en la nube, descargará actualizaciones y se apagará. Pero lo más importante, cuando la enciendo con la intención de jugar, me informa en una pantalla inicial de todas las acciones realizadas.

¿Por qué comencé el texto hablando de diseño e interfaces? Porque al final todo se reduce a eso, a diseñar una interfaz que mantenga la sencillez y simpleza para entrar por los ojos, pero que en menús avanzados me permita ver toda la información que como usuario puedo necesitar.

No ver el listado de cambios de un título es un problema menor, pero no poder ver ni cuanto espacio tenemos ocupado de disco duro, cuánto ocupa una aplicación, no saber muy bien como borrarla o simplemente el hecho de que se instale un juego entero sin preguntarme, me parece algo grave. El usuario quiere sencillez, pero también desea tener acceso a cierta información.

Las grandes compañías nos quieren llevar al terreno donde los aparatos funcionan solos y al usuario se lo entregan todo hecho y sin preocupaciones, pero eso sólo es posible eliminando la libertad del usuario. Como diría Richard Stallman, se trata de respetarte como usuario, se trata de tu libertad.