Lista Artículos Lista Editoriales Enlaces Juegos en Línea Noticias Tienda J por Amazon(com)
J de Juegos.com
PC
AYUDA   |   BUSCAR x CLAVE   |   
Buscar con GOOGLE >>>
 
Escríbenos! Galardones. Juegos Recientes.
Preguntas Frecuentes - Galerías - Códigos - Descargas - Enlaces - TOP 10
| ACCIÓN | | AVENTURA | | CARRERAS | | DEPORTES | | ESTRATEGIA | | JUEGOS DE ROL | | SIMULADORES |
Industria: Cerrando el Círculo
x Webmaster

Con el estado actual del software y aún trabajando con varias aplicaciones, abriendo cerrando archivos grandes, manipulando imágenes o jugando, se tiene al CPU (p. ej. un Core2-Duo) con un conteo del tiempo de ejecución que casi como norma está un 99% ocioso. Puede que existan instantes, o segundos, en los que trabajan muchas tareas a la vez pero considerando que en ese tiempo mínimo se ejecutaron miles de millónes de instrucciones, luego todo vuelve a la calma y los núcleos pasan otra vez a estar en su modo ocioso (lo que al menos es ecológico porque los más modernos consumen menos energía). Incrementar sobre esto cuatro, ocho o más núcleos hasta suena innecesario por no decir algo ridículo.

Es indispensable comentar como sin que importe el paradigma utilizado o el lenguaje de programación o la capacidad de los programadores todo software tiene un límite, y no muy elevado, al momento de utilizar ejecución en paralelo de sus hilos (se asume que un hilo es una secuencia lógica integrada que puede existir por si sola dentro una aplicación), o aprovechar de lógicas multi-hilo. Esto se puede interpretar como que aún el software más avanzado en términos de ejecución concurrente no podrá, ni puede, aprovechar al máximo un número de núcleos en constante incremento. De hecho, programar de tal manera que sin ofrecer decenas de versiones se pueda aprovechar entornos de un, dos, tres, cuatro, o más cores ya es todo un rompecabezas.

Soluciones hay varias, entre ellas mecanismos tanto en software como hardware que permiten ejecutar ciertas aplicaciones en entornos virtuales que están diseñados para aprovechar de ese crecimiento de manera dinámica. Por ejemplo, el Java VM es independiente del hardware y sea en modo real o virtual puede trabajar con eficiencia programas/aplicaciones en Java diseñadas para multi-hilo.

La ventaja de este tipo de entornos, llegado el momento, es que un programa puede ejecutarse como si fuera de un sólo hilo pero la optimización dinámica subyacente puede estar trabajando muchas cosas en paralelo (porque está diseñado para hacerlo). Para el usuario todo esto es transparente pero es importante porque de nada sirve tener decenas de núcleos de procesamiento si apenas uno se usa, y valga el detalle que entornos multitarea tampoco los aprovechan bien a menos que sean aplicaciones de tiempo real o ejecución continua (lo que todavía no es norma en entornos PC).

Capturadas de pantalla de Call of Duty 4: Modern Warfare y Half-Life 2 - Episode 2.

Lo que lleva al argumento inicial. Nuevamente el poder de procesamiento disponible es sencillamente increíble y al menos en teoría nada impide que los modernos y sofisticados engines 3D puedan ejecutar (o llegar a) en modo software sin perder nada y con seguridad ganando mucho más gracias a detalles de hardware como memoria compartida y presente en mayor cantidad, buses rápidos, núcleos especialidados y/o complementarios, etc.

Es muy probable que durante los próximos 4 a 6 años el uso de las tarjetas gráficas (mejor aceleradoras gráficas) se vea reducido, a menos que cambien tecnología o características de manera drástica. Otra posibilidad es que terminen como hardware complementario que ofrece algunos extras atractivos al momento de jugar pero que no es indispensable. No por nada de un momento a otro AMD adquiere ATI, y Nvidia demuestra mucho interés en adquirir a Ageia (la última noticia al respecto es que firman un acuerdo de adquisición el pasado 4 de Febrero), sin olvidar que Intel adquiere Havok[2].

La posibilidad de retornar a los engines 3D basados en software es inmensa (ver el texto a continuación), además que presenta corolarios de gran interés, como por ejemplo trabajar con máquinas virtuales y por ende permitir que un juego funcione bajo cualquier OS y/o plataforma de hardware. Este uso potencial es casi con seguridad uno de los que tiene a los promotores de consolas perdiendo horas de sueño. Esto hasta podría viabilizar el retorno de juegos antiguos con algunas extensiones tecnológicas o quizá, mirando un poco más lejos, engines gráficos independientes del contenido que permitan que todo se actualice cuando se los mejora a una nueva versión sin afectar el juego en si, sólo como lo ve el usuario.

Con el poder de procesamiento que innevitablemente se viene las alternativas en software son muchas, son infinitas y la posibilidad de un engine 3D por software es tan, pero tan viable que una empresa, TransGaming Technologies Inc., ha presentado al público su producto SwiftShader 2.0[3] que no es otra cosa que un renderizador por software del DirectX 9.0.

Trabaja con el Shader 2.0, es compatible con Windows 98 en adelante, optimiza y aprovecha entornos multi-core. Puede funcionar sobre diferentes sistemas operativos utilizando tecnologías complementarias desarrolladas por la misma empresa como ser: Linux con Cedega y Mac OS con Cider. Estas extensiones permiten traducir instrucciones DirectX a OpenGL. Puede que no estemos ante el futuro del ahora pero estamos ante una innegable presentación de las posibilidades que éste nos trae.

Según información promocional el SwiftShader puede ejecutar Half-Life 2 sin problemas (quizá a bajo detalle y resolución, pero igual). En una prueba práctica ExtremeTech obtiene 10,3 fps en Company of Heroes sobre una Core2-Quad, lo que es decente considerando que este juego es segundo en exigencia después de World in Conflict. Aún así sólo el detalle de que puede ser "exportado" a Linux o Mac OS casi con seguridad traera muchas, extensas y largas sonrisas a desarrolladores y usuarios por igual. Conviene estar atentos a los resultados que se obtiene con un Nehalem de cuatro núcleos, la mejor gestión de memoria, un bus hasta tres veces más rapido y las nuevas instrucciones SSE4 seguro aceleran sus fps de manera considerable.

Un último argumento para la idea de los engines 3D por software es que con el DirectX 9.0c y el Shader 3.0, y viendo engines como el de S.T.A.L.K.E.R.: Shadow of Chernobyl, Crysis, World in Conflict, y/o Call of Duty 4: Modern Warfare, sin olvidar a los prontos a salir como S.T.A.L.K.E.R.: Clear Sky, Dead Island, Warhound, F.E.A.R.: Project Origin, White Gold, y/o Alan Wake está claro que visualmente ya no hay mucho más donde ir, o a lo que llegar. Esto a su vez implica que la necesidad de un mayor poder de procesamiento por parte de una tarjeta gráfica está llegando a su punto de equilibrio[4], a partir del cual más y más ya no aporta nada al resultado (algo que en cierta medida demuestran las comparaciones entre productos de un GPU y dos GPU en una misma tarjeta).

Capturadas de pantalla de White Gold: War in Paradise y S.T.A.L.K.E.R.: Cler Sky.

El DirectX 10 muy probablemente marca una de las últimas etapas en la carrera por ofrecer más y más de parte de los desarrolladores de GPU[5]. Esto al menos les da cosa de cinco años para ver qué más tienen para dar, o para empezar a pensar a que otra cosa se pueden dedicar. El SwiftShader muestra sin dar cábida a dudas o cuestionamientos irrelevantes que se puede, punto. Ahora, a lo mucho, lo que podría darse es una nueva batalla por definir el estándar y las normas de un API que sepa aprovechar más y mejor las nuevas posibilidades de las arquitecturas multi-core ya disponibles, pero obviando la presencia de un GPU (o en todo caso un GPU avanzado).

A través de sus otras aplicaciones TransGaming Inc. demuestra que tanto DirectX como OpenGL son compatibles a la ausencia de un GPU. El futuro inmediato está confuso y no revela detalles relevantes sobre cual será el camino elegido por los estándares actuales, lo seguro es que hay cíclos de procesador de sobra y se vienen más, sería un desperdicio no aprovecharlos al máximo. También hay que tener en mente, aunque con recelo, el tema del Ray Tracing y la posibilidad de que tanto Intel como AMD-ATI nos den alguna sorpresa en lo que concierne a un API gráfico. El futuro lo dirá, y en cuestiones de tecnología este nunca tarda en llegar.

Lo que no hay que olvidar ni confundir, es que hablar de un engine 3D basado en software sólo describe a uno que no requiere de una tarjeta de aceleración especializada hoy conocidas como tarjetas gráficas y que operan sobre la base de un GPU. Es decir, se refiere únicamente a la alternativa de que todo trabaje utilizando un microprocesador de propósito general, el cual dentro tecnologías multi-core puede o no incluir núcleos especializados o de soporte que ayuden a acelerar la realización de dichas tareas. Al final, lo único que honestamente sucede es que se evita el gasto adicional para adquirir (en este caso) una tarjeta gráfica que cuando no se trabaja con aplicaciones 3D está ociosa[6].

Notas

[1] No es por nada que Intel y AMD-ATI tienen cantidad de eventos con los desarrolladores tanto de hardware como de software, además de ofrecer documentos, iniciativas, y realizar investigación para ayudar a que los programas y aplicaciones del futuro inmediato sean más adaptables a entornos multi-core extremos, al igual que para que trabajen y ejecuten mejor y de manera eficiente.

[2] Uno de los mejores y más utilizados API de un engine de simulación física disponibles (comúnmente denominado middleware). Hasta el momento en que son adquiridos por Intel, Septiembre 2007, estaban desarrollando la versión Havok FX que, entre otras novedades, era capaz de aprovechar del poder adicional ofrecido por un GPU (en especial en entornos donde había dos o más instalados) para entregar mejores efectos de física. El gran detalle aquí era que trabajaba tanto con los productos de AMD-ATI como de Nvidia; lo técnico sería decir que aprovechaba de los stream cores en general.

[3] La idea del presente artículo nace tras rumiaciones inevitables durante la investigación del material correspondiente para escribir Hardware: El Siguiente Paso. Esto quiere decir que no conocia del SwiftShader hasta prácticamente tenerlo terminado en mi mente. Lo interesante del caso es que su aparición justamente ahora es una excelente prueba empírica de que lo expuesto en el análisis de arriba es más que sólo probable, o inevitable, hasta diaría que es un proceso en plena marcha.

[4] Esto se puede discutir, siempre está quien tiene monitores inmensos y gusta de jugar a resoluciones elevadísimas y a no menos de 60 fps. Personalmente creo que para el videojugador normal un monitor de 17 pulgadas, resolución de 1024x768 o a lo mucho 1200x900 basta y sobra, además que 30 fps ya es animado y muy fluido. El siguiente nivel son los monitores de 19", pero de ahí llegar a los de 24", 32", 43" eso ya es exageración, una mentalidad de consumo extrema y casi puro mercantilismo (habrá quien los requiera, pero).

[5] Detalle interesante a este respecto es que los pocos comentarios y noticias sobre el DirectX 11 que se puede encontrar ya hablan de que ofrecería alternativas que utilizan Ray Tracing (esto a tomar todavía con su buen grado de duda). Esta supuesta nueva entrega del API gráfico sería parte del futuro Windows 7 (2011 o alrededores), aunque ya hay comentarios de que se lo dejaría fuera y se convertiría en un componente opcional, lo que de seguro tiene cosas a favor y en contra pero habrá que ver.

[6] Situación que las desarrolladoras de GPU desean evitar a través de la investigación y desarrollo de una arquitectura de GPGPU. Tanto ATI como Nvidia están trabajando sobre alternativas de programación que convierten a sus stream processors en una especie de coprocesadores de números reales de alta velocidad y rendimiento. La idea siendo evitar que su tarjeta esté ahí sólo para videojuegos (al menos en un 95% de las veces, cuando no más).

Artículos y material de Referencia/Biografía

Intel Offers Peek at Nehalem and Larrabee, por Jason Cross, 17 de Marzo 2008, ExtremeTech(com).

Alex St. John: "Consoles as We Know Them are Gone", por Joel Durham Jr., 20 de Marzo 2008, ExtremeTech(com).

Alex St. John: "Vista Blows", por Joel Durham Jr., 21 de Marzo 2008, ExtremeTech(com).

Creative Labs Evolves Beyond Hardware, por Loyd Case, 26 de Marzo 2008, ExtremeTech(com).

The Coming Processor War, por Loyd Case, 31 de Marzo 2008, ExtremeTech(com).

The Coming Processor War: Opening Salvo, por Loyd Case, 14 de Abril 2008, ExtremeTech(com).

Larrabee won't sell on ray-tracing, por Wily Ferret, 25 de Abril 2008, TheInquirer(net).

Larrabee and raytracing, por Tom Forsyth, 18 de Abril 2008, Blog Técnico de TomF.

AMD Sees Future in Accelerated Computing, por Scott Ferguson, 06 de Febrero 2008, Eweek(com).

Accelerating Innovation, por Tom Farre, Invierno 2007, AMD Accelerate Magazine (artículo encontrado suelto en Internet).

Extending the World's Most Popular Processor Architecture, White paper, Intel, 2006.

From a Few Cores to Many: A Tera-scale Computing Research Overview, White paper, Intel, 2006.

Introducing the 45nm Next-Generation Intel Core Microarchitecture, White paper, Intel, 2007.

Intel News Fact Sheet - Intel Corporation's Multicore Architecture Briefing, Intel, March 17, 2008.

First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem), White paper, Intel, 2008.

Intel QuickPath Architecture, White paper, Intel, 2008.

Artículos afines al tema expuesto encontrados en la Wikipedia(com).

Sitios Web Útiles

Sitio Web oficial de AMD-ATI, www.amd.com.

Revista digital de tecnología ExtremeTech, www.extremetech.com.

Sitio Web oficial de Intel, www.intel.com.

Revista digital de tecnología PC Perspective, www.pcper.com.

Sitio Web con terminología de la industria IT y otros, What Is?, www.whatis.com.

Sitio Web con juegos en Java, JavaGamePlay, www.javagameplay.com.

Sitio Web oficial de Dofus, un juego MMORPG desarrollado con Flash MX (lado cliente), Dofus, www.dofus.es.

Sitio Web de la compañía Transgaming Technologies Inc. creadora del SwiftShader 2.0, Transgaming Inc., www.transgaming.com.

<< ANTERIOR ( - de -) SIGUIENTE >>
Sobre J de Juegos | Información Copyright | Contacto [ 29/Abril/2008 ]