Si existe un software --o porción/componente de-- actualmente incomprendido el mismo tendría que ser el DirectX 10, el cual tras la salida de juegos como World in Conflict y Crysis, que serían los primeros en realmente demostrar sus aptitudes, parece como que quedo corto ante las expectativas generales de los usuarios, los aficionados e incluso los entendidos en el tema como son los editores de sitios Web o revistas afines a la industria. Por ejemplo, en el sitio dedicado a la alta tecnología ExtremeTech(.com) el citado API de Windows Vista se encuentra en el primer lugar entre aquello que defraudo el 2007, o en todo caso que no cumplio con lo esperado/promocionado.
No voy a negar que en cierto nivel un tanto subconsciente esperaba más del DirectX 10, sin embargo tampoco puedo afirmar con total certeza de que esperaba mucho más. De esto es culpable en gran medida Microsoft y su equipo de mercadeo quienes tomaron a éste API casi exclusivo para videojuegos como una de las características clave, como uno de los mayores atractivos de su nuevo Sistema Operativo el cual carece de otras mejoras realmente claras para diferenciarse de su predecesor, al menos en términos directos, tácitos, sin rodeos, sin tecnisismos y a ojo del siempre mal visto usuario promedio. En ningún momento está la letra pequeña que advierte que aunque geniales, a la larga, las diferencias entre el DirectX 10 y el DirectX 9.0c no son ni tan grandes, ni tan espectaculares como lo fue el caso con éste último y el DirectX 8.0.
Para comprender bien lo anterior debo echar mano al casi omnipresente argumento en muchos artículos del sitio Web de que en cuestión visual hemos llegado a un punto en que polígonos más, polígonos menos, efectos más, efectos menos la distinción real, práctica y gráfica pura ya es irrelevante, o en el mejor de los casos casi irrelevante. Este hecho causa que un gran número de compañías requiera de hablar de hiper-realismo, hiper-efectos, hiper-gráficos, hiper-texturas, etcétera para llamar la atención del potencial usuario sobre su nuevo engine que es mejor que su predecesor en tecnología, aunque lado a lado con versiones anteriores en comparación gráfica pura sea casi idéntico o muy similar.
Utilizo el término gráfico(a) puro(a) en el párrafo anterior para resaltar una nueva realidad presente, y pronto omnipresente, en los nuevos engines para videojuegos. Esta es, la inclusión de (sub)sistemas de apoyo que pueden o no tener una influencia sobre el todo visual que llega a ver el jugador, si bien no siempre sobre los detalles gráficos en si. Valga nombrar a los sistemas de física simulada, balística, aspectos como el comportamiento realista de un vehículo sobre terreno aleatorio, el desgaste de materiales ante el impacto de proyectiles, o tratamiento de imágenes todavía más sofisticado como es el caso del sistema de daño multinivel presente en Dead Island de Techland.
Lo visual puro, lo gráfico básico son cosas de los engines del pasado, el sencillo y constante incremento de polígonos, tamaño y detalle en texturas queda atrás desde la introducción del modelo de shader 3.0 en la revisión DirectX 9.0c. El que recién ahora estemos viendo engines que demuestran este hecho se debe a que la evolución no podía darse de un día para el otro, requiere de cambios en visión y de seguro en el proceso de desarrollo del propio engine, sin olvidar su codificación. Juegos como el nombrado World in Conflict o Crysis, y otros como Call of Duty 4: Modern Warfare, Joint Task Force, Faces of War, o los prontos a salir Aggression 1914 o Codename: Panzers - Cold War hacen gala de engines híbridos cuya entrega visual ya no depende sólo de pintar objetos en la pantalla, si no de procesarlos para luego pintarlos.
Es con relación a todo lo anterior que el DirectX 10 debería haber sido comparado, no es una evolución gráfica, ya no puede serlo, ya no hay donde más. Porque si se intenta argumentar que si lo es terminamos con muchos absurdos y contradicciones*, por ejemplo si los engines de ahora son hiper-realistas ¿qué vendrían a ser los del DirectX 11, súper-hiper o hiper-hiper realistas? Por la información disponible en línea el DirectX 10 es, sobretodo y más que nada, una reorganización de toda la lógica de su predecesor, más una extensión y/o mejora de ciertos aspectos, más una nueva arquitectura en hardware que optimiza la manipulación de polígonos bajo una lógica de imagen-tratada no sólo imagen-a-ser-pintada.
Desgraciadamente no hay forma de argumentar lo precedente con ejemplos o estadísticas porque nadie las busco o busca aún. Pero me permito especular con educación que este detalle es uno de los que hace que un engine híbrido DirectX 9.0c/DirectX 10 sea más lento bajo Windows Vista que Windows XP. El diseño del engine bajo una lógica normal, por llamarla así, no funciona bien en una arquitectura y lógica pensada para colocar énfasis en el procesamiento de otras cosas y no sólo el pintado rápido de imágenes. Esto no se podrá corroborar empíricamente hasta que salga al mercado un engine pensado, diseñado y usado en un videojuego 100% Windows Vista y 100% hecho para él desde su primera línea de código hasta la última.
Entre los detalles que se encuentra del DirectX 10 están por ejemplo su incremento en el número de identificadores de tal o cual elemento visual, el aumento del tamaño permitido para el código de los shaders, el aumento en los tamaños, o cantidad, permisibiles para registros y texturas, etcétera. Lo más importante siendo el cambio de lógica para la gestión de shaders en el modelo unificado o shaders 4.0, que optimiza su gestión, su manejo desde hardware, y a modo de extra incluye los shader geométricos que permiten, con seguridad, el trabajo mucho más rápido y eficiente con ciertos objetos a otros niveles que sólo con vertex y pixel shader.
Muchas de las características y mejoras que se conoce del DirectX 10 apuntan a acelerar la manipulación de polígonos que requieren ser (pre)procesados, no sólo mostrados. Detalle que lamentablemente no se puede confirmar sin un engine 100% Windows Vista en el mercado, además uno que incluya y procese todos aquellos sistemas extras que inevitablemente serán estándar en los engines híbridos y, en general, los nuevos de ahora en adelante. Aquí tenemos al Chrome Engine 2 que es visualmente muy similar a su predecesor pero manipula los gráficos a través de (sub)sistemas de apoyo muy diversos. El mismo caso se da con aquel del juego Underwater Wars.
El DirectX 10 y las implementaciones actuales que vemos y trabajan con él quizá no sean todo lo que esperabamos o lo que la pompa nos daba a entender que sería, pero no por ello deja de ser un gran avance como API y como estándar y a manera de plataforma de primer nivel para el desarrollo de videojuegos, y algún otro software. Sólo cabe tener dos cosas en mente: primero, ningun engine híbrido actual siquiera lo aprovecha al mínimo, lo poco que utilizan es aquello que no deja de ser extensión del DirectX 9.0c, lo más sencillo de alargar a la nueva versión, lo más fácil de recodificar o codificar, lo que menos lógica afecta en toda la presentación visual pura o procesada.
Segundo, todavía no hay ningún engine 100% compatible con él desde el instante que se lo concibe hasta el momento en que sale al mercado el juego que lo utiliza. No por nada Windows Vista viene con ambas versiones del DirectX, hay detalles de codificación que van más allá de sólo escribirlos en un lenguaje de programación, también hay mucho a nivel lógica, tratado y procesado de imágenes, preprocesado de escenas, etcétera, lo que obviamente requerira todavía de un par de años antes de que sea viable sacar al mercado algo espectacular y que le haga honra apropiada y debida al API en cuestión. No es por nada que seguimos esperando por Alan Wake.
No hay nada malo con el DirectX 10, sólo que en verdad aún no lo comprendemos bien, no entendemos su verdadero alcance, seguimos encerrados un poco en esa visión de más polígonos y mejores gráficos puros, ambos conceptos que tienen que quedar en el pasado a medida que lo que llegamos a ver se entremezcla y fusiona con la lógica de como todo lo visible, y mucho más, interactúa entre sí, ínteractúa con el jugador, y éste a su vez interactúa con el mundo virtual que observa y cohabita.
*Claro que de todo este razonamiento lo tienen en parte quienes deben ver la manera de promocionar una secuela con tecnología nueva, o un producto avanzado que sin embargo se ve muy similar a engines de hace un par de años.