octubre 25, 2006

DirectX 10, la verdadera nueva Next-Gen, Parte II

DirectX 10, parte II.

Unificación de los Shader:

Como ya comenté en el anterior artículo, el problema de la infrautilización de los Shaders teniendo un path fijo se podría solucionar haciendo una unidad de ejecución más genérica con el objetivo de tratar en cada momento cada punto según su necesidad de píxel o vertex, en vez de esperar que salga de una unidad de ejecución para que entre en otra.

Si pudiéramos mirar dentro del Pipeline de Direct3D podríamos ver como en un mismo momento, tenemos al Vertex Shader con unidades de ejecución vacías, mientras que el Píxel Shader esta saturado de trabajo o viceversa .

La solución más obvia a este problema es la Unificación de los Shader, es decir, si tenemos a partir de este momento una unidad de ejecución que puede adaptarse a las necesidades puntuales, en vez de tener un estricto Path, es de suponer que el rendimiento final será mayor.

La pregunta que se puede hacer uno es ¿Por qué hasta ahora no se ha hecho de la forma más genérica?. El problema que supone la genericidad no es pequeño, es mucho más eficiente hacer unidades de ejecución de propósito específico que de propósito general, además es más barato, es más flexible a subidas en la frecuencia del reloj y supone un reto tecnológico mucho menor, por ello se explica que hasta ahora no se haya afrontado el problema, de hecho, NVIDIA no ha seguido este camino y continúa con el Path fijo (pues no está del todo claro que sea peor!), al contrario que ATI que ya tiene desarrollado el primer producto con Shaders unificados (la tarjeta gráfica de la XBOX 360). ATI sacará al mercado las tarjetas con nombre R600, que serán las que tengan Shaders unificados.

Entonces la pregunta es, ¿es necesario o no el tener los Shaders unificados para DirectX 10?. La respuesta es no, simplemente se deben soportar Shaders 4.0, da igual la implementación que cada uno de los fabricantes siga (ya sea de Shader unificados o nó), simplemente tienen que cumplir con ese requisito.

Geometry Shader (Shader Model 4.0):

El elemento más importante, a mi parecer, en DirectX 10 será la introducción de otro elemento de ejecución en el pipeline que estará situado entre el Vertex y el Píxel Shader, se trata del Geometry Shader (en verde en la figura), que tratará triángulos enteros (todos los objetos en una escena están formado por un número mas o menos grande de triángulos, ver Pez).




Qué hace este nuevo Shader:

El Vertex Shader tradicional, toma un solo vértice a la entrada y debe tener un solo vértice (tratado) a la salida, es imposible para el Vertex Shader crear o destruir triángulos. El Geometry Shader, sin embargo, permite operar sobre primitivas geométricas enteras, esto es líneas, triángulos y puntos, y a su vez permite operar sobre las primitivas vecinas. El Geometry Shader además, puede crear nuevas primitivas, nuevos triángulos, antes de enviarlos por el Pipeline.

Incluso es posible que el Geometry Shader envíe los resultados de nuevo a memoria, permitiendo que los datos vuelvan al inicio del Pipeline sin tener que pasar por la CPU, con ello se podrá acelerar muchísimo los sistemas de partículas como humo o explosiones que normalmente cargan mucho la CPU, siendo de esta forma independiente este efecto de la CPU. Además, se podrá usar también como una herramienta muy poderosa para los “cube mappings”. Un “Cube Mapping” se utilizan para que la textura de un objeto refleje el mundo que hay a su alrededor. Pues bien, el Geometry Shader junto con un array de texturas puede acelerar este efecto.

Veamos como:

Para hacer que un objeto con una textura de metal refleje el mundo que tiene alrededor, se debe determinar qué es lo que rodea a este objeto y mapearlo encima. Normalmente, esta tarea lleva hasta seis pasadas, pero con el Geometry Shader junto con un Array de Texturas podemos hacer el mismo efecto en una sola pasada, es decir estamos dividiendo por seis el tiempo que tardamos en hacer este efecto tan común (agua, objetos metálicos, cristal… etc).

Ejemplo de texturas y efectos en recreación de rostros humanos.


Ejemplo de Real (izquierda) Vs Renderizado en Crysis con DirectX 10(derecha).

Este nuevo modelo de Shader (Shader Model 4.0) va a permitir una gran cantidad de efectos que antes no eran posibles, cosas como Displacement Mapping, Stencil Shadow Extrusion, Motion Blur y muchos otros (lo pongo todo en inglés por que no me gusta pasar los nombres de los conceptos al Español).

Cada uno de estos efectos va a mejorar muchísimo la calidad final de cada una de las escenas. Encontrándonos con unas texturas que van a rozar lo real (ver imágenes de Crysis, arriba). Además DirectX 10 trae características de morphing, así que esperad transformaciones de personajes en cosas, cambiando de forma mucho más a menudo y con mucho menor coste. Por otro lado, también se espera que la GPU se encargue de parte de la física gracias a DirectX 10, lo que significará una mayor cantidad de objetos interactuando entre ellos. ATI, de hecho, mostró una demo en la que se veía un océano cuya física era tratada enteramente por la GPU

Además de todo eso, por hacernos una idea de los cambios, en Shader Model 3.0 en número máximo de instrucciones por cada Shader era de 512, ahora será de 64000, el número de registros temporales (algo muy importante para los programadores) pasará de 32 a 4096. Además se pasará de cuatro a tener hasta ocho objetivos de renderizado (para los que no sepan de lo que hablo, no me refiero a objetivo de cámara, sino a objeto de renderizado) y el número de texturas disponibles para un mismo Shader pasa de 16 a 128, el tamaño de textura más grande pasa de 2048x2048 a 8192x8192. Por último no se soportará en adelante puntos flotantes de 16Bits y serán todos de 32Bits (FP16 a FP32).

Esta parrafada de números, lo pongo mas que nada para que nos hagamos una ligera idea del cambio que supondrá DirectX 10 y las nuevas herramientas que tendrán los desarrolladores.


Screenshot de Flight Simulator X, con DirectX 9.


Screenshot de Flight Simulator X, con DirectX 10.

En estas imágenes podemos ver ejemplos del efecto que supone toda esta cantidad de herramientas nuevas en DirectX 10, frente a DirectX 9, por ejemplo, las texturas del agua (sistema de partículas, mayor número de triángulos, morphing de triángulos, física avanzada), los árboles (mayor numero de triángulos, luz entre los objetos), las nubes (Texturas volumétricas, luz entre objetos) suponen un salto como no recuerdo otros en cuanto a gráficos se refiere. De DirectX 7 a DirectX 8 hubo un gran salto, una mejora grande, pero como este no, desde luego que no hay parangón, la calidad que vamos a ver en PC con DirectX 10 y la cantidad de objetos en la escena va a ser tan abrumador que pueden llegar a causar rechazo, y no es broma, me refiero al efecto conocido como Uncanny Valley (de nuevo en Inglés).

Entonces, viendo todo esto ¿significa que DirectX 10 le da ventaja al PC frente a las nuevas consolas (PS3 o XBOX360)?, la respuesta es a la vez, si y no... me explico:
Lo que DirectX10 trae al PC es un kit de herramientas que antes no estaban disponibles en DirectX9, pero que se podrían haber programado los desarrolladores de los juegos "a pelo" sobre el Hardware en cuestión y de esta forma suplir las carencias de DirectX. Pero claro, esto aunque no deja de ser posible es una Utopía. Ningún estudio en sus sano juicio haría algo así para PC por que se tiene que cubrir una gran familia de tarjetas gráficas. La ventaja es que eso no ocurre en las consolas, en donde los desarrolladores tienen que hacer las cosas sobre un mismo hardware conocido.
Esa y no otra es la razón por la que consolas con mucha menos potencia que un PC mueve juegos que un PC con las mismas características técnicas que la consola apenas podría ni soñar. Pero no dejemos de lado a los estudios de video juegos y el negocio en sí.
Tener un Kit como DirectX 10 acelera de forma brutal el desarrollo de un juego con muy buena calidad, es decir, tendremos juegos más buenos a menos coste (relativo a la calidad) para los estudios.
Eso nos dará juegos mas completos en PC que en consolas, por el simple hecho de que es mucho más facil hacerlo en PC, pues ya ha habido alguien que ha trabajado para ellos, simplificando muchisimo la tarea (Microsoft y su Directx 10).
En el mundo de las consolas están solos, cada cosa que quieran hacer "extra" les va a suponer un tiempo de desarrollo y un coste económico. Coste, que en muchas ocasiones será tan alto que no será posible hacerlo o simplemente no interese. Entonces el razonamiento no es si es posible hacer este tipo de cosas en las consolas, la respuesta seguramente será sí!, la pregunta que nos tenemos que hacer es, ¿se pueden hacer esas cosas sin DirectX 10 a un coste razonable para los estudios?, si la respuesta es sí, lo veremos, si es no... tendremos que experar a la siguiente generación o como mínimo casi al final de la vida de las consolas de la presente generación, yo personalmente me quedo con esta última opción.





octubre 24, 2006

Las 512MB de RAM de la XBOX 360

He leído una pequeña noticia acerca de cómo se decidió (o cuentan que se decidió) el que la XBOX 369 tuviera 512MB de RAM.

En este pequeño artículo queda patente que Gears Of War ya era un gran proyecto desde bastante antes del nacimiento de la consola. Y es este tipo de noticias lo que da una idea de cómo de importantes son algunos títulos para determinadas consolas (algo que todos sabemos), pues esta claro que GoW pretende ser un título que, al ser exclusivo de XBOX360, atraiga a los compradores justo coincidiendo con la salida de la PS3 (casualmente ;))...

Os dejo aquí unas líneas del pequeño artículo :

“The day they made the decision, we were apparently the first developer they
called. We were at Game Developers Conference... [two years ago] and I got a
call from the chief financial officer of Microsoft Game Studio and he said 'I
just want you to know you cost me a billion dollars'. And I said: 'No, we did a
favor for a billion gamers'


octubre 23, 2006

Proyección de Ventas de Consolas en USA


Me ha parecido muy interesante esta estimación de ventas de consolas de nueva generación en US.
Podemos ver como para 2010 se espera unas ventas muy parejas PS3 / XBOX360, y como el crecimiento de PS3 es bastante mejor, en el periodo 2007 - 2010, que el comportamiento en las ventas esperadas para XBOX 360.
Sin embargo, el objetivo de ambas empresas yo creo que se cumple segun este estúdio, no creo que ni Microsoft, ni Sony esten descontentas con esta gráfica.
Si me parece más destacable como se mantiene PS3 con respecto a la leve caida de XBOX 360 a partir de la mitad de 2008, y en la misma medida la Wii.
Una comparación que me parece muy válida en este caso es WiiVsGameCube, XBOX360VsXBOX, PS2VsPS3.
Por desgracia, el estudio solo abarca las ventas esperadas de cada una de las consolas en USA, así que podríamos comparar con la generación anterior, teniendo en cuenta los datos de ventas de estos últimos años aunque sólo sea por hacer una comparación (no demasiadao científica tampoco, pero sirve para hacerse una idea).

Las ventas acumuladas por cada uno de estas consolas en USA son:

  • PS2 Vs PS3:
  • La Ps2 ha vendido (de 2000 a 2006): Japan: 23.55, USA: 42.97, Europe: 39.71
  • La Ps2 ha vendido (de 2000 a 2004): Japan: 19.47, USA: 32.86, Europe: 29.06
  • La PS3 venderá (según el estudio, de 2006 a 2010): USA: 23.9.
  • Análisis: Se nota un empeoramiento en el primer periodo de 4 años, siempre segun las estimaciones. Yo creo que esto es una mala noticia para Sony, sobre todo teniendo en cuenta que los "gastos" asociados a la PS3, son mucho mayores (les sale más caro cada Ps3, con respecto a la PS2).
  • XBOX Vs XBOX360:
  • La XBOX ha vendido (de 2000 a 2006): USA: 24
  • La XBOX 360 venderá(en 5 años, se empieza por 6M): USA: 23
  • Análisis: No he podido entontrar las ventas para un periodo de 5 años para XBOX, pero extrapolando (que ya es bastante suponer!) esta cláro que en 5 años se pretende vender aproximadamente lo mismo que en 6 años la XBOX. Hay que tener en cuenta que los datos de la XBOX360 empiezan por 6M, por llevar ya 1 año en el mercado!.
  • GameCube Vs Wii:
  • GameCube (de 2000 a 2006): Japan: 4.01, USA: 12.27, Other: 4.72
  • Nintendo Wii (Prevision de 2006 a 2010): USA: 13.6.
  • Análisis: En un priodo menor se espera una venta mayor en USA. Yo creo que estas son muy buenas noticias para Nintendo, que bajo mi punto de vista está potenciando al máximo lo "poco" o mucho que puede dar su consola.
(image copyright IDG.)

Hacer juegos es como hacer cualquier otro Software?

Aunque esto no es un Blogde Blogs ;) , la verdad es que suelo empaparme de lo que comentan algunos desarrolladores de juegos en sus Blogs comparando un poco con lo que yo pienso, e intercambiando puntos de vista, que suele ser muy productivo :).
En fin, el caso es que me he encontrado en el Blog de Tadhg Kelly un artículo analizando si crear juegos es como crear Software.

Many developers believe that games do not need a central creator figure and that customer focus and willingness to adapt are what matters. I basically disagree with this idea on the basis that games are not software applications which can be definitively made better according to an objective standard. They are entertainment, which relies largely on subjective perspectives of what works, regardless of whether they are so-called interactive or passive entertainment.

Bajo mi punto de vista, cada tipo de Software es lo suficientemente diferente (ya sea de Telecomunicaciones, Médico, entretenimiento... etc), como para considerar que cada campo es único. Al igual que los Arquitectos hacen casas, edificios, hospitales, colegios... cada una de esas construcciones requieren una especialización por parte de quien los proyecta, y de quien los construye. Sin embargo, todos los estudios de arquitectura se organizan de una forma parecida.

En este caso, los distintos tipos de Software requiere de conocimientos muy específicos, pero la forma de trabajo creo que son muy extrapolables (suponiendo que algo pueda ser más o menos extrapolable ;)). Es lo mismo si el Lead Software tiene que lidiar con ingenieros expertos en Bases de Datos o de Engines Gráficos o de IA... en todos los casos los problemas son parecidos, las soluciones y la organización de los equipos tambien, no obstante que duda cabe sobre que cada nicho de negocio tiene sus peculiaridades.

Andre Vrignaud de Microsoft, sobre los distintos formatos de HD

Andre Vrignaud de Microsoft ha posteado un interesantísimo análisis sobre los distintos formatos HD para las distintas consolas... me parece de lectura obligada.

The really interesting statistic that popped for me is how much less time a game console has to render a 1920x1080 scene versus a 1280x720 scene. (Remember this is on the same console, whichever one you like. This is not a comparison of different console's rendering capabilities to each other.) Simply put, for a 1080i/p game the console has 55% less time per pixel to render any special effects, anti-aliasing, illumination, etc. than for a 720p game. Yes, even Resistance has fallen off the bandwagon and admitted they can't hit 1080i/p as previously claimed. (It also helps explain why Gran Turismo HD is so underwhelming.)
Estoy totalmente de acuerdo en algo que comenta y es que se ve mejor una escena en 1280 con 4x AA, que una escena en 1920 sin AA. Es algo que yo mismo aplico en mi casa: 1280 con FSAA, siempre que se pueda, antes que meter más resolución, pues se ve mucho mejor (para mi gusto).

octubre 18, 2006

Los estudios necesitan nuevas formas de ingreso?

Se ha hablado mucho acerca de los costes que un título tendrá para la "nueva generación". A mi me parece que hacer juegos next-gen no es que vaya a ser más caros en la nueva generación por ser de nueva generación (esto es de cajón, lo sé), sino que los estudios se exigen cada vez más, los gráficos deben ser mejores, las historias más profundas, la IA mucho menos tonta, el sonido más envolvente y de caerte de espaldas... en fin, que todo se magnifica, se requiere de más gente trabajando sobre un título, durante más tiempo y al final vale más caro.
Se dice que no es para tanto y se pone como ejemplo al Gears of War... bien, GoW ha salido barato (unos 10M Euros), pero el resto no ha salido más barato, de hecho se manejan cifras de escandalo de entre 20 y 30M, vamos, para morirse.
Entonces surge la duda, si las cosas valen más caras y hay más o menos el mismo número de ventas ¿como se financia esto?.... la cosa está clara, se necesitan nuevas formas de ingreso y en ello están.
En TheNeedForGamingNews he comentado una noticia por la que Battlefield 2142 se rumoreaba que iba a tener publicidad en linea y que para ello se "iban a estudiar" los habitos de navegación (es lo que se desprende del "contrato" que viene en el Juego). Esto ha creado mucho revuelo en los dos últimos días, y al final ha tenido que salir Justin Townsend (un mandamás en la empresa creadora de GoW) diciendo que no, que lo único que iban a usar es la IP para enviar publicidad dependiendo del sitio geográfico (supongo que relativo al idioma, tambien), pero que en ningún caso se iba a tomar datos de ninguna clase (la notica en TNFGN).

Me parecen muy interesantes unas palabras de Justin Townsend :

Regarding today's online controversy, Townsend noted that "you are always going have that hardcore vocal minority" who don't want in-game ads. But he suggested that if those same people "knew the kind of painful transition that most publishers are going through right now", they might approve of in-game ads as an important financial support function for next-gen titles.

He particularly commented: "If gamers still want to have a high amount of good quality titles year in and year out, there needs to be alternate revenue streams" for next-gen gaming - IGA clearly sees in-game advertising as a notable example of this.

Entonces, qué se desprende de todo esto?, pues que el margen de ganancias de los juegos se está reduciendo, pues los costes de producción son mucho mayores a los anteriores y hay que buscarse nuevas formas de ingresos.
Se lleva un tiempo hablando sobre publicidad en los juegos, pero lo cierto es que hasta ahora no lo hemos visto demasiado, supongo que porque tanto publicistas como estudios de desarrollo no han estudiado a fondo el tema. Pero ahora hay verdadero interés y necesidad, y creo que veremos muchos anuncios de cola ;) en las vayas publicitarias de nuestras ciudades virtuales favoritas.
Además ahora tenemos posibilidades de seguir comprando componentes extras para alargar la vida de nuestros juegos a un módico precio (y tambien aumentar las ganancias de los estudios, claro) me refiero a las compras de extensiones como en XBOX Live, que tan buen resultado está dando. O las compras de artículos en Oblivion, o las nuevas posibilidades que tendrá GTA, cuyo contenido extra y exclusivo estará ofertado en internet para cáda una de las plataformas XBOX 360 o PS3...

octubre 17, 2006

Blog de uno de los diseñadores del Age Of Empire III

A mi me ha parecido muy interesante el BLOG, lo comparto con vosotros por si a alguien le puede interesar

octubre 15, 2006

DirectX 10, la verdadera nueva next-gen

He pensado en hacer una serie de artículos sobre DirectX 10 que llega justo con el revuelo de la salida al mercado de Wii y PS3, aunque en realidad el salto tecnológico que va a suponer es, en mi opinión, muy superior al de ambas consolas.
He partido el artículo, pues me ha salido bastante largo, y al final no se si se quedará en dos o tres partes, en la primera explicaré qué es DirectX10, que diferencias trae con respecto a DirectX9. En el segundo haré una pequeña introducción al nuevo Pipeline que introduce DirectX 10, qué mejoras suponen los Shaders unificados (ya se intuye del primer artículo) y una comparativa con screenshots de DirectX 10. En el último artículo comentaré qué podemos esperar de DirectX 10.1, por qué esas mejoras no estan en DirectX 10 y qué supondrá desde el punto de vista visual y en el performance. Finalmente en ese artículo haré mi análisis subjetivo y comparativo entre PC y las consolas, intentando centrarme en la estrategia de Microsoft.

DirectX 10, PARTE I.

Introducción:

DirectX 10 ha sido llamado, desde que se sabe que esta en desarrollo, de distintas formas, a saber DirectX Next, Windows Graphics Fundation 1.0 y 2.0, aunque finalmente se ha decidido llamarlo DirectX 10 como continuación de le familia DirectX, para mí, es más un D3D 10, pues el resto de las tecnologías de DirectX no han sufrido los cambios de Direct 3D.

Antes de nada habría que empezar contestando muy brevemente a la pregunta ¿qué es DirectX?, pues bien, se puede decir que DirectX nació como una herramienta de abstracción que aísla el Software (SW) que usa el sonido, los gráficos y los dispositivos de entrada como Joystick, volantes y demás, del Hardware (HW) que hace el trabajo. Es una interfaz (API) que se “monta” encima de los drivers de cada uno de los dispositivos, con el objetivo de aislar al software cliente (juegos, por ejemplo) de los drivers.

Esta aproximación, aunque cómoda para los programadores e impulsadota de un SW más estándar (los desarrolladores no se preocupan del HW, sólo de DirectX) no deja de estar sujeta a ciertas restricciones que la propia API provoca al SW, es decir, nos podemos encontrar con casos teóricamente posibles desde el punto de vista de la capacidad del HW pero que la propia API no es capaz de gestionar, suponiendo con ello un problema insalvable.

Este es el aspecto negativo que conlleva usar una API como DirectX, pero a su vez, lleva otros aspectos positivos que compensan en el cómputo global. Hacer el SW independiente del HW, siempre que este disponga de un driver que cumpla con los requisitos de DirectX, es muy cómodo para ser utilizado por los desarrolladores, pues supone que estos no se tendrán que preocupar de la incómoda gestión del Hardware y esto ya es de por sí, tan importante u util que compensa los problemas de "performance" que pueda causar.

Aunque todo esto que comento parece muy cómodo en el papel, lo cierto es que hasta ahora DirectX no cubre la totalidad de las tareas que se pueden realizar sobre el HW y esta situación no esta exenta de problemas. Hasta ahora nos hemos encontrado casos como una Radeon X800 o una GForce 6800, ambas DirectX 9, pero que cada una de ellas soporta diferentes tipos de Shaders, cada uno de ellos implementado por el fabricante y sobre el que el desarrollador debía hacer las operaciones específicas de cada familia para poder aprovechar la totalidad de la tarjeta gráfica. Este caso no lo volveremos a ver en DirectX 10, pues a partir de su implantación los desarrolladores y los usuarios finales sólo se van a tener que preocupar de las características que ofrece DirectX, siendo cada una de las tarjetas compatible con una versión concreta de DirectX y significando que el hardware deberán cumplir unas características tecnológicas muy concretas. Microsoft regulará la introducción de las nuevas características gráficas a partir de futuras extensiones de las versiones de DirectX 10 (como por ejemplo DirectX 10.1), y ATI y NVIDIA verán su campo de acción reducido a cumplir esa tecnología de la forma más óptima posible (que no es poco).

Obviamente, todos esos cambios no se harán de espaldas a los principales fabricantes de tarjetas gráficas y será con ellos con quienes se negocie la salida de cada una de las tecnologías. Esto para el usuario final es muy bueno por que su elección se reducirá a conocer que extensión de DirectX que cumple el HW que desea comprar y el desempeño final de ese HW.

Los desarrolladores, por otro lado, no se tendrán que preocupar de que sus motores aprovechen tecnologías que usa una familia concreta de tarjetas gráficas y los usuarios no verán infrautilizado su HW por que algunos estudios no aprovechan al 100% la potencia de las gráficas no implementando determinadas características de sus tarjetas gráficas.

La nueva API, que ha sido desarrollada desde cero, tendrá una relación mucho más estrecha con el Sistema Operativo (S.O.) y podremos ver como más de una aplicación, al mismo tiempo, hace uso de las características 3D de la tarjeta (hasta ahora imposible) y será muy raro ver al SO sufrir bajadas en el rendimiento por culpa del driver de la tarjeta de Video. Además, veremos como podremos cambiar “on the fly” el driver de video y podremos resetear el estado de la tarjeta sin que eso afecte al SO, ni haya que reiniciarlo.

Toda esta estabilidad la da la nueva tecnología llamada Vista Display Driver Model(VVDM) que reemplazará al modelo de driver de video en Win XP y de la que hablaremos un poco más en el último artículo de esta serie.

Este nuevo modelo y la estrecha relación de DirectX 10 con el SO, hace del todo imposible que Windows XP pueda ejecutar DirectX 10 y por tanto será exclusivo de Windows Vista (además del componente de marketing que tiene la exclusividad en Win Vista y la necesidad que crea en el usuario de actualizarse a Vista). Veremos también, como la compatibilidad hacia atrás de DirectX 10 con DirectX 9 no será directa y se hará a través de un emulador, esta versión se llamará DirectX 9L.

Entonces, cuales eran las restricciones principales que DirectX 9 suponía para los desarrolladores? Y cuales son las nuevas características que oferta DirectX 10?

La principal y más importante restricción era sin duda la llamada “The Small Batch Problem”, este problema es muy conocido entre los desarrolladores por el cuidado que deben tener de no sufrirlo, se trata del “API overhead” introducido en la gestión de los objetos en escena, me explico mejor:

El Juego, para cada uno de los objetos que debe renderizar en una la escena, hace uso de la API, esta a su vez llama al Driver de Video que será el SW que hace uso de nuestra tarjeta de video. El problema está en que todas estas llamadas API+DRIVER deben ser gestionadas por la CPU, pudiendo llegar a tener un coste del 40% del tiempo de ejecución. Con DirectX 10 este cuello de botella se ha reducido a menos de la mitad.

Obviamente, este problema no es menor si tenemos un gran número de objetos (como personajes, una silla, un coche … etc) en escena, pues cada uno de esos objetos necesitan un tratamiento específico y llamadas al API y al Driver. Actualmente la limitación que causa la API esta en aproximadamente 500 objetos, con DirectX 10 se esperan poder tener hasta miles de objetos en una misma escena.

Esta limitación de objetos en escena hace sufrir la inmersión del jugador en el entorno y se espera que tengamos escenas realmente impresionantes con la nueva tecnología, mucho más cercanas a la realidad.

Otra de las restricciones en DirectX 9 y las GPUs actuales es el hecho de tener caminos de Pipeline fijos, de nuevo me explico mejor:

Actualmente las tarjetas de video disponen de dos componentes principales a la hora de gestionar los objetos, vertices y puntos de una escena, esos dos componentes son el Vertex Sader y el Píxel Shader. Para que nos hagamos una idea, los objetos son tratados primero por el Vertex Shader y después estos son pasados por el Píxel Shader en el camino a la renderización final y por el que cada punto es tratado dependiendo de una serie de factores como el ambiente, la luz… y un largo etcétera (todo esto, simplificando bastante!).

Pues bien, el número de elementos de ejecución tanto para los Vertex Shader como los Píxel Shader son uno de los puntos a favor de cada una de las tarjetas gráficas. Para hacernos una idea, actualmente la ATI X1900XTX cuenta con ocho unidades Vertex y cuarenta y ocho (16*3) para píxel, en cuanto que una NVIDIA 7950GT tiene 24 pixel Shaders y ocho Vertex Shader (mas info aquí). En un caso real (como el presentado en la gráfica de abajo) no es de extrañar que suceda que en un momento concreto necesitemos muchos Píxel Shader pero pocos Vertex y viceversa. Con el estado actual de las cosas y puesto que contamos con un Path fijo, esta situación es inevitable, pero si en vez de tener unidades especializadas en cada una de las tareas, simplemente tuviéramos unidades de ejecución genéricas, podríamos reutilizarlas y no tenerlas infrautilizada algunas, mientras que otras están saturadas..




En el siguiente artículo contaré qué son los Shaders Unificados, qué es Shader 4.0 y veremos ejemplos del salto tecnoglógico que supone DirectX 10 con respecto a DirectX 9.

A que juegas este fin de Semana?

A que juegos estais últimamente enganchados?, sobre qué plataforma?.
Yo llevo como cinco meses o más (puedo jugar poco) con Oblivion, los Sim (para mi novia) y Company of Heroes, todos para PC.
Lo que más me gusta de Oblivion es la total libertad en el juego, para mi es uno de los mejores juegos del los últimos años, la IA es sorprendentemente buena, los gráficos, la música, todo. Además viene sin protección, con lo cual puedes hacerte tu copia a HD y guardar tu original en la caja (yo me compré la Collector's Edition). No es un juego nuevo ni mucho menos ;), pero es duradero y además sigue siendo uno de los mejores (sino el mejor) en mi HD.
En cuanto a Company Of Heroes, es un RTS con una calidad gráfica excepcional, la campaña trata sobre el Día D, se tienen que ir cumpliendo misiones para ir facilitando el desembarco y la "reconquista de Europa". Es un buen juego, pero creo que podrían haber mejorado el control de la cámara bastante, la jugabilidad tampoco es que sea extrema, aunque es buena. Vale la pena, para quien le gusten los RTS.

octubre 12, 2006

La PS3 se podría retrasar aun más en Europa

Creedme si os digo que no soy anti-PS3 ni nada por el estilo (casi al contrario), aunque leyendo mi propio BLOG podría parecerlo, pero os aseguro que tenía (y tengo, aunque menos) puestas muchísimas esperanzas cuando ya hace un año me leía lo poco que había sobre el CELL y se me hacía la boca agua pensando en comprarme una y poder programar algo en una arquitectura tan nueva. Sin embargo, creo que Sony no puede estar haciendolo peor con Europa, de verdad espero que las cosas medio vayan bien, pero tengo mi corazoncito y no puedo evitar pensar que para Sony somos los últimos de la fila(de hecho es así, pero que no se note tanto! :)).

En fín, he visto esta noticia sobre el posible nuevo retraso de la PS3 en europa y he decidido pornerla aqui en vez de en el BLOG de las News por que me parecía que iba en relación al artículo "del valor real de la Wii".
Microsoft debe estar encantada con todo esto, pero claro al final somos nosotros los que pagamos, aquí no tendremos Blue Dragon Pack a 250$ :(, que necesidad hay si Microsfot no tiene competencia en Europa.

Update: Se ha confirmado que el rumor es falso, al menos "virgencita que me quede como estoy" ;) ¿no?, no empeoremos las cosas :D

La creación de Video Juegos en España

He estado rebuscando un poco, por eso de darle algún atisbo de esperanza a quien quiera dedicarse a esto del desarrollo de video juegos de una forma profesional aquí en España. Y he identificado algunos puntos que serían necesarios para que ese caso fuera posible, además intentándolo razonar desde el punto de vista más objetivo que he podido.

Yo siempre he creído que para que una actividad se desarrolle (en general, no entro en casos particulares) de una forma profesional, hay que formar a los profesionales que van desarrollar la disciplina en cuestión, pues aunque es totalmente necesaria la práctica (y en este campo más), tampoco es menos verdad que las cosas hay formas en las que no se deben hacer y conceptos bien aprendidos que se deben tener totalmente asumidos, y eso te lo tienen que contar otros que ya hayan pasado por el mismo camino... yo a esto lo llamo “aprendizaje heredado” y creo que en el mundo de la informática (y el software en general, no sólo en los video juegos) es fundamental.

Por eso, lo primero que he buscado han sido cursos de master que se den a ingenieros en informática y gente del gremio :), tanto en universidades como en entidades que los impartan.
Me he encontrado varias Universidades que las imparten, por ejemplo hace muy poco salió la noticia en la que Pyro ya había fichado a los primeros graduados en un master en la universidad Pompeu Fabra (ahora no encuentro la noticia, si lo consigo prometo poner el link), hay otras como la Complutense o la politécnica de Cataluña y demás (creo que en Andalucía no lo hay… tendremos que esperar, como casi siempre).

El problema que le veo a esto son los precios de los Masters y los cursos… pero bueno, al menos hay.

Desde este punto de vista, creo que España es modesta pero no nula, aunque habría que hablar con la gente que ha cursado esos master para saber hasta que punto han salido preparados (o ellos se sienten preparados).


Los videojuegos, al igual que cualquier disciplina en la informática y el Software en particular, se aprende haciendo cosas (tras una base teórica bien asentada, claro está) y en España se puede decir que tenemos gente que está bien preparada. Yo me dedico al desarrollo software y por mi puesto, me ha tocado hacer entrevistas de trabajo y estar llevando a gente recién salida de la universidad, que salvo en excepciones aberrantes, la verdad es que me he encontrado con gente que conocía
los conceptos y bastante buena, aunque tenían un gran desconocimiento de la práctica (nada que no se cure en unos meses de realidad intensiva ;)).

La empresa para la que trabajo es una multinacional y he podido relacionarme con gente de SudAmerica, NorteAmérica y Europa en general, y se puede decir que podemos estar orgullosos (sin triunfalismos) de lo que la gente aquí en España hace, creedme cuando os digo que esto lo comento sin el menor atisbo de ventajismo, es una realidad “objetiva” ( o todo lo que puedo serlo), en España hay buenos profesionales que no tienen que envidiar al resto, a veces al contrario...

Sin embargo, creo que España tiene un problema endémico muy difícil de superar, y este es el número de Estudios de Desarrollo que hay. Que yo conozca y con proyección internacional, hay uno: Pyro Games, se de una empresa Malagueña, pero que tienen una Web muy poco cuidada y no se si están haciendo algo actualmente y otras empresas que desarrollan juegos para telefonía móvil (casual, que hay mucho mercado ahí), pero lo que realmente son estudios con lanzamientos internacionales, no los hay (a parte de Pyro).

Lo cierto es que, aunque parezca que todos los buenos estudios están en USA (y la verdad es que hay muchos y muy buenos), también los hay en Europa: Francia tiene UBISOFT, que además tiene oficinas en otros lugares del mundo, como Montreal. Blizzard tiene oficinas en Francía, RockStar North en Edimburgo (Escocia), Midway Studios (Newcastle) y otras muchas.

Eso significa que las posibilidades están ahí y que los buenos desarrolladores también están en Europa, no solo en US. Entonces, por que no hay en España?. Mi opinión es que no hay ayudas (creo que las ayudas son nulas, no hay nada) para la creación de estudios y la inversión privada está demasiado "ciega" (o desconoce el potencial) para ver que hay un gran filón aun por explotar, los datos están ahí:

Los videojuegos vienen experimentando importantes incrementos en los últimos años en todo el mundo, alcanzando la cifra de 18.100 millones de Euros en software en el año 2001, que sumado al volumen facturado en hardware de consolas, coloca al sector en más de 27.000 millones de Euros.

Europa representa el 36% con tendencia a liderar en el próximo año el crecimiento mundial del sector, en el desarrollo de los contenidos de software, alcanzando la cuota del 39%, seguido por los EE.UU. con el 37% y Japón con el 24%.

España, con una facturación en el año 2002 de 710 millones de € a PVP y un crecimiento estimado del 18%, representará el 6,6% del mercado europeo y un 2,6% del mundial en el año 2003.

(fuente: www.edese.es)

Esta claro, que aunque con dificultades (ningún negocio está carente de riesgo), hay mucha rentabilidad posible, pero aun así no hay quien ponga el dinero inicial necesario para el desarrollo de un juego de PC o consolas decente, es decir con proyección internacional (estamos hablando de unos 9 millones de Euros, mínimo 6). Esta cantidad de dinero inicial, se queda nimia si pensamos en los beneficios que causa a la comunidad que le rodea y las ganancias que se pueden obtener:

-Trabajo de alta especialización y calificación.
-Retribuciones para el estado (en forma de impuestos) en la venta de video Juegos.
-Renovación del parque de PCs (motor de la venta de ordenadores).
-Desarrollo de actividades creativas, no solo se le da trabajo a Informáticos, sino músico, artistas (dibujantes), comerciales... y un largo etc.
-Retención de gente con gran preparación y posible proyección para abrir nuevas aventuras del estilo (nuevos estudios, el negocio se retroalimenta).

Sinceramente, y aunque esto no es un BLOG de política ni muchísimo menos, me da mucha pena ver que los cerebros Españoles se tienen que ir fuera para poder desarrollar su talento técnico, su arte y su preparación en otros países que se beneficiarán de ellos tanto como ellos de su trabajo. No me explico por qué otras ramas del arte si tienen subvenciones, pero el arte de hacer un video juego no tiene ese beneficio. Qué explicación puede haber para que un gobierno no de ayudas a unos y si a otros, cuando el objetivo principal de la subvención no es regalar el dinero (o no debería serlo), sino esperar que esa subvención ayude a generar en la sociedad mayores beneficios (no solo económicos, sino también sociales) que el valor del propio dinero de la subvención. Qué problema hay si además de esas retribuciones sociales también las hay económicas (y a veces, enormes), mejor entonces ¿no?.

octubre 11, 2006

El precio Real de la WII

Yo soy un ferviente seguidor del nuevo mando de la Wii (aunque intuyo que puede ser un poco cansado) y es muy muy probable que me la compre, además creo que estan haciendo una campaña de Marketing, excelente... todo lo contrario que Sony.
Veamos por encima:
Por un lado, la consola es blanca. Ya se que esto puede parecer una tontería, ¿pero a nadie le recuerda a Apple?, ¿es solo a mi?... que conste que no digo, en absoluto, que todo lo blanco tenga que ser Apple, ni siquiera que ellos hayan sido los primeros en hacer las cosas blancas, pero la realidad es que Apple ha conseguido hacer del blanco su firma... ¿cuantos de nosotros hemos ido a un gran almacen y hemos visto el estand de Apple desde lejos con su blanco inmaculado?.La Wii es elegante reconozcámoslo, y para mí tiene un aire a Apple que le beneficia muchísimo.
En mi opinión con eso ya tienen un punto a favor nada desdeñable, teniendo en cuenta que Nintendo esta dirigida de una forma especial a Casual Gamers. ¿Quienes son esos?, en mayor parte las chicas, y a ellas les va a gustar.

Bien, una vez que tenemos una consola bonita (preciosa), tenemos que caerle bien a la gente... ¿alguien ha visto el video de promoción de la Wii?, juegos en familia, con amigos... todos se lo pasan pipa!, vamos te comprabas una Wii después de verlo sin pensarlo dos veces.
Nintendo va de consola débil, ellos mismos dicen que los gráficos y la tenología no es lo suyo, lo suyo es el juego en familia y lo divertido. Además el débil despierta simpatías, es el que le cae bien a todo el mundo, los de Microsoft quieren el movimiento Wii-360, los de Sony dicen que Wii-PS3... todos quieren a Wii, nadie odia a Wii.
Bien hecho!... segundo round ganado.
Que vienea hora?... ah si!... el precio!, ok que sea barata entonces, digamos unos 249 Euros, pero ¿eso es barato? claro, tenemos por un lado la XBOX360 que vale 400 (vamos a poner la decente vale?, la otra como que no, que me parece un engaño), la PS3 vale 500 o 600, depende del sabor que te guste. Si la quieres medio buena tendras que pagar..., pero bueno, pongamos 500 para no ser muy malos.
Perfecto, tercer Round ganado, la Wii es más barata que las demás! :D, claro que a cambio los gráficos no pueden ser tan buenos, ni vamos a tener DVD, obviamente el juego Online hay que pagarlo (lo se, Microsoft ha caido en el mismo error) y si quieres jugar online (que querrás!) no hay modem, ¿tampoco tiene memoria? si, pero necesitaras más.
Entonces ahora tienes que comprar, Memoria Oficial 24Euros, Ethernet 18Euros y el precio real es de: 292 Euros ( y eso poniendo el precio Japones de los componentes!, seguramente en Europa aplicarán el factor Euro y nos sldrá un pelán más, ya veremos)...
Quiere eso decir que tendrás una consola sin DvD, con el precio de los juegos aproximandamente igual al de XBOX360 (un poco menos, muy poco), con peores gráficos y que tendrás que pagar por jugar Online... por 100 Euros menos que una XBOX360 o 200 euros menos que una PS3 que estan a años luz de la Wii (tecnologicamente)

Realmente no lo veo tan barato, pero aun así me cae bien Nintendo, no me parece arrogantes, tienen buena imagen y el mando me parece genial.

Espera, lo veo y no lo creo, justo lo contrario que Sony!, mucha gente no traga a Sony, tienen imagen de arrogante (que ya han intentado contrarrestar), a mi personalmente ni la XBOX360 ni la PS3 me parecen bonitas, creo que han equivocado la forma en la XBOX360 y el color en la PS3 (cuestión de gustos, lo se), los juegos son los más caros, la consola es la más cara, el mando es el mismo que el de la generación anterior (ni ForceFeedback!!!), menos mal que al menos es un maquinón, tendrá unos graficos de quitar el hipo, el juego Online es gratis y además tendras HDMI, si pagas, claro...

octubre 10, 2006

Los Habitos de los jugadores en España

El otro día postee un estudio sobre los habitos de los jugadores en USA y cometé que me gustaría compararlo con los habitos en España... pues bien ;) aqui lo tenemos, hago un resumen.
Sería interesante compararlos aunque por desgracia los estudios no se parecen demasiado:

  • El jugador juega habitualmente con una PS2 67,7%
  • El jugador juega habitualmente con una XBOX: 2,3%
  • El jugador juega habitualmente con una Game Cube: 1,7%
  • El jugador juega habitualmente con una XBOX360: no disponible (ya les vale!).
  • Total de jugadores PC: 12,9%
  • Total de jugadores consolas: 12,8%
  • Total de jugadores de telefonía movil: 3,8%
  • Total de jugaroes de PC y consola: 3,9%
  • Ratio hombre/mujer jugadores : 2:1 (69% vs 35%)
  • Juega Online: 4,9% (consolas) 26,8%(PC)
  • Euros al año de gasto medio en PC: 164*
  • Euros al año de gasto medio en Consola: 175**
*Extraido del estudio haciendo la media: 0.6*200+0.12*150+0.27*75+0.25*25
**Extraido del estudio haciendo la media: 0.6*200+0.15*150+0.36*75+0.25*25
Dandole un valor de 200, 150, 75 y 25 Euros por juego en cada uno de los rangos: 200, 101 a 200, 51 a 101, 0 a 50.
...
El estudio es bastante completo y he intentado acercarlo al post que hice sobre US para poder hacer una comparación, una de las cosas que llaman la atención es, por ejemplo, el porcentaje de jugadores que lo hacen Online, siendo en US de 64% y en España de 26,8% y 4,9%, segun estemos hablando de PC o consola respectivamente. Mi opinión es que esto va a cambiar bastante con las nuevas consolas, pues la XBOX360 y la PS3 contaran con servicios Online que son muy buenos (en el caso de XBOX360, de la PS3 no lo sabemos).
por ultimo, comentar que coinciden los ratios de hombre/mujer de 2:1 y que las preferencias en juegos de las mujeres y hombres tambien son muy parecidas, a saber, deportes, disparos y lucha en el caso de los hombres y juegos de cartas, puzzles y variados en el caso de las mujeres.

Como reflexion decir que puesto que la mayor penetración de video juegos es en los hombres, aun hay mucho camino que recorrer en las mujeres, y viendo sus preferencias no sería de extrañar que hubiera un auge muy importante de los juegos Casual, para atraer a este sector.

La Wii doblará las ventas de juegos de PS3 estas Navidades.

Segun leo en este artículo se espera que la Wii doble la ventas en juegos a PS3 en USA, este dato se extrae de un estudio hecho por la consultora "Morgan's Michael Pachter", aqui os dejo un estracto:

We think it is important to note that we expect total U.S. software sales of only $144 million for the PS3 and only $288 million for the Wii, with additional European software sales of $156 million for the Wii in 2006." This means that game revenues for the Wii will be around 3 times that of the PS3 in the West, according to the analyst.
Tampoco creo que este dato sorprenda a demasiada gente. Lo que me pregunto es qué margen de productividad le saca un estudio a cada uno de los juegos de cada una de las consolas... esta cláro que eso depende de las ventas, pero teniendo en cuenta lo que ha costado crearlo, el precio y las ventas esperadas, se debe saber cual es más rentable de las tres consolas (osea, que desarrollo se amortiza antes). Intentaré buscar este dato, a ver si hay suerte.

Se alinean los lanzamientos de PS3 y Wii?

Yo creo que una de las claves para el exito de una consola son los juegos que hay disponibles. Microsoft esta haciendo un trabajo espectacular llevandose las exclusivas de algunos títulos que mucha gente ya está esperando (BioShock,Splinter Cell5, claro está Halo3 y otros...)
Por eso me sorprende un poco que Sony no esté en esa misma linea, claro que todavía es demasiado pronto y lo mismo nos estamos precipitando :).
El caso es que me he encontrado la siguiente lista:

PlayStation 3
Need for Speed Carbon - Electronic Arts (800,000)
Madden NFL 07 - Electronic Arts (700,000)
Call of Duty 3 - Activision (600,000)
NBA Live 07 - Electronic Arts (500,000)
Fight Night 3 - Electronic Arts (400,000)
Tiger Woods PGA Tour 07 - Electronic Arts (400,000)
NBA 2K7 - Take-Two Interactive (400,000)
Marvel Ultimate Alliance - Activision (310,000)
...
Wii
Madden NFL 07 - Electronic Arts (500.000)
Need for Speed: Carbon - Electronic Arts (500.000)
Tony Hawk's Downhill Jam - Activision (300.000)
Disney's/Pixar's Cars - THQ (300.000)
SpongeBob SquarePants: Creature from the Krusty Krab - THQ (300.000)
Dragon Ball Z: Budokai Tenkaichi 2 - Atari (200.000)
Call of Duty 3 - Activision (200.000)
...
Veo muchas similitudes en la lista , no se si darle la enhonrabuena a Nintendo o el pesame a Sony, que espero que se ponga las pilas y nos deleiten con títulos exlusivos de calidad.
(Via next-Generation)

octubre 09, 2006

Cual es el momento de la IA en el desarrollo de un juego?

Ahora que parece que los procesadores podrán dedicarle más tiempo a la IA, se estan repensando los esquemas de en qué momento debe aparecer la IA en el desarrollo de un juego.
Por regla general, no es extraño diseñar el juego y que el desarrolo de la IA aparezca después, sin embargo hay quienes abogan por que aparezca antes, casi junto al diseño.
El PodCast esta en Inglés pero no tiene desperdicio, obligado escucharlo.
Os dejo aqui un estracto:

"Whether you’re a programmer who’s always wanted to work on the game design or a designer who thinks there might be something to this “programming” thing, here’s your chance to talk with someone who has worked both sides of the fence. We’ll focus on AI and the ways in which AI development does (or should) overlap with the game design process, drawing case studies from the presenter’s experiences as Lead Designer for Rise of Nations, Alpha Centauri, and Civilization II.

We’ll talk about why delaying AI development “until the design docs are final” is a wasted opportunity, and how both AI and Design benefit from simultaneous prototyping. We’ll explore not only the traditional use of AI to determine goals and strategy for computer players, but also the critical role of AI in supplying “personality” to computer-controlled characters. Perhaps most importantly we’ll talk about the sometimes-unexpected ways AI techniques can be invaluable in content generation..

Se calienta la PS3?, parece que no

Por lo que dicen aqui no. IBM no se ha caracterizado nunca por sus refrescantes procesadores (recordemos a los Apple), pero con el CELL la cosa parece que es distinta.
En el artículo dicen que son independientes :) y es desinteresado... claro que mirando como se llama el Magazine no se que pensar eh?, demosle un voto de confianza y pensemos que la PS3 no se calentará demasiado.

octubre 08, 2006

Nombran este Blog en BarraPunto

Pues eso, que me he encontrado en un foro un enlace a Barrapunto que enlaza con el artículo de la PS3 vs XBOX360.

Gracias! :D

octubre 07, 2006

The Need for Gaming News, Blog hermano

He decidido abrir un nuevo Blog en el que incluiré las noticias más interesantes que me vaya encontrando. Se trata de no desvirtuar este Blog con demasiadas noticias, que de otra forma no tendría donde poner.

Retrasos en la PS3... y las consecuencias

No parece que la gente esté muy contenta ¿no? xDDD

Una esperanza para Crysis en las "next-Gen Consoles"

Esta historia traera más cola... resumiendo digamos que la gente de Crytek no confia demasiado en poder portar el Crysis tal y como se quedará para PC a las consolas de nueva generación.
El problema está en que Crysis esta pensado para ser ejecutado sobre DirectX10 y portar el engine no va a ser sencillo.

Me parece muy interesante sobre todo la desconfianza en poder portar el engine tal cual se quedará en PC, desde luego que da que pensar:

"We would just have to see how much of a sacrifice to the game we'd have to make. Or whether there would be a sacrifice at all, maybe we could find a way to make the game look exactly the same as it does on PC on the Xbox 360 and the PlayStation 3."

octubre 06, 2006

Los habitos en los Jugadores de US

Es bastante interesante este articulo en donde se intenta hacer una radiografía de la "población" de jugadores en US, lástima que no haya encontrado nada así para España... pero bueno al menos sirve para hacerse una idea.
Hago un resumen de lo que me ha parecido más interesante:

  • 59% of US gamers own a PS2
  • 33% of US gamers own an Xbox
  • 30% of US gamers own a GameCube
  • 15% of active gamers own an Xbox 360
  • 7% of active gamers owned more than one console or handheld in 2005
  • 16% of active gamers owned more than one console or handheld in 2006 to date (increase spurred by PSP and DS, which offer distinct gameplay experiences, according to Nielsen.)
  • Purchased four games on average in the last six months
  • 90% of games bought at retail in the last six months
  • 10% of games bought online in the last six months
  • Spent US$58 per month on "entertainment"
  • 56% play online
  • 64% of online gamers are women
  • 64% of active gamers play on PC
  • 15 million (13% of active gamers) over 45 years of age
  • 2 : 1 ratio of men to women in overall gaming (not just "active" category)
El 64% de los jugadores Online son chicas... mientras que el ratio de hombres:mujeres es 2:1... dicen que el futuro esta en los juegos Online, desde luego el mercado si que está ahí!

Programando la PS3 vs XBOX360

Con la llegada de la PS3 tendremos también el estreno de un nuevo CHIP llamado CELL del que se ha hablado mucho y sobre el que los desarrolladores de juegos tendrán que poner su arte y conocimientos para sacarle el máximo partido a la consola de Sony.

Algunos ya han comentado que el CELL será un gran procesador siempre que se le pueda sacar todo el rendimiento que de él se espera, pero la pregunta está en si eso será fácil para los desarrolladores.

El CELL cuenta con 1 procesador principal (Power Processing Element o PPE) que es básicamente una variación de un Power PC 970 con una cache L1 de 32KB de Datos y 32KB de Instr., además una L2 de 512KB, todo ello a 4GHz. Junto a este PPE hay ocho módulos de procesamiento llamados Synergistic Processor Element o SPE, con toda esta artillería no es de extrañar que tenga una marca teórica de nada menos que 256 GFLOPS.

Cada uno de los SPE tendrá una memoria única de 256KB, 128 registros con una anchura de 128 bits y elementos de ejecución de 128bits, se puede decir que cada SPE es una máquina de 128bits. Con esta capacidad de procesamiento tenemos que cada SPE puede ejecutar 2 Double-Float, 4 Floats o Long integers, ocho integers... etc, cada uno en un solo ciclo de reloj. Además cada SPE contiene siete elementos de ejecución de los que solamente dos podrán estar activos a la vez.

Esta arquitectura, bastante impresionante, tiene un 'pero' y es que cada SPE solamente puede acceder a sus 256 KB de memoria y no verá nada más 'allá', para pedir una palabra fuera de esos 256 KB se debe acceder a un DMA conectado a un BUS llamado Element Interconnect Bus (EIB). Esto presenta un problema a la hora de procesar grandes cantidades de información, pues hay que optimizar el "troceado" para que no haya perdida de rendimiento.

En la PS3 no veremos títulos con más de 256 MB de texturas, debido a la política de memoria, mientras que si que los habrá en X360.

Sony ha elegido bien, sin embargo, y su consola podrá ser programada en Cg (http://developer.nvidia.com/page/cg_main.html y http://en.wikipedia.org/wiki/Cg_programming_language), C++ y la API de gráficos será OpenGL|ES (http://www.khronos.org/opengles/), esta librería es un estándar con la que muchos desarrolladores están acostumbrados a trabajar, no solo en el mundo de los videojuegos sino también en CAD/CAM y otros. Además, es conocido que la curva de aprendizaje de OpenGL es muy buena y aumenta las posibilidades de encontrar buenos desarrolladores y los estudios podrán contratar a gente nueva para los desarrollos en PS3. En cuanto a Cg es una excelente elección por la facilidad de uso que tiene para los desarrolladores en cuanto a gestión de objetos gráficos, con una gran potencia, yo personalmente no he programado con Cg, pero después de haber visto algunos ejemplos y haber leído un poco, desde luego que tengo ganas de probar un poco :d...

El aspecto más duro al que sin duda se enfrentarán los desarrolladores en la PS3 no será hacer juegos, sino hacer juegos buenos y rápidos. Y no es que esto sea fácil para las demás, el problema es que esto será más difícil en la PS3.

Con el esquema del procesador que ya hemos comentado tenemos básicamente ocho elementos de ejecución más o menos independientes, que se deben usar organizadamente para poder sacarle el máximo rendimiento.

Uno de los aspectos más complejos en cualquier sistema software que se desarrolle es el hecho de la concurrencia, hacer que varios hilos de ejecución se coordinen para un objetivo común es un problema bastante complejo de afrontar.


El desarrollo de un juego con varios hilos de ejecución es el nuevo reto de los estudios de desarrollo, los procesadores de las nuevas consolas tienen varios CORES de ejecución (XBOX360 cuenta con 3 procesadores en uno, PS3 cuenta con 8 elementos de ejecución, un PC puede tener entre 1 y cuatro CORES en un mismo procesador). Este nuevo elemento en el panorama de los juegos no hace mas que enriquecer cada uno de los aspectos de los mismo, podemos tener un hilo de procesamiento para el reenderezado, otro para la física, otro para el sonido y otro para la IA... obviamente las posibilidades aumentan muchísimo cuando cada uno de los aspectos principales del juego cuenta con una unidad de ejecución que no tendrá que compartir. Este enfoque no carece de problemas, pues hay que organizar muy bien la ejecución para que la física tenga el resultado junto a la IA y el resto antes de renderizar la escena. En el siguiente artículo podemos ver este enfoque más en detalle .

Sony, consciente de que este va a ser su caballo de batalla, ya desde el principio dio algunas directrices a los desarrolladores para enfrentarse a este esquema de programación paralela. Un o de ellos es, por ejemplo, la cola de trabajo, si cada una de las operaciones que tiene que realizar la aplicación se ponen en una cola de trabajo en orden y según se van quedando elementos de ejecución libres se les va asignando la tarea tendremos un resultado que organizado a su salida nos ofrecerá el resultado esperado... obviamente el overhead que supone la organización a la entrada y a la salida de la cola, tanto como la potencia que requiere la solución de las distintas dependencias entre las distintas tareas no son gratis. Este esquema será muy valido cuando hay una alta independencia entre las tareas a realizar, caso en el que no están los juegos.

Otra de las aproximaciones, por nombrar dos, es que sea el programador quien a base de artificios típicos de la programación concurrente sea quien realice la coordinación entre las distintas tareas y cada una de ellas se va asignando a cada uno de los módulos de ejecución. El problema que presenta esta aproximación es que se necesita mucha destreza. Un ejemplo del dolor de cabeza que esto puede suponer es el QUAKE III Arena, que en su versión multithreaded era capaz de incrementar el rendimiento nada menos que en un 40%, sin embargo, fue notoria la cantidad de problemas y la fragilidad y poca estabilidad de este tipo de ejecución en el juego, que era tremendamente inestable con muchos drivers gráficos excepto con unos cuantos. Desde el punto de vista de John Carmack, en la mejora del rendimiento se ve hacia donde van los juegos actualmente, pero en la fragilidad se ve la dificultad a la que se enfrentan los desarrolladores ().

Como ultima nota dejaré este interesante articulo en donde se explican los modelos de programación y si se puede considerar fácil o no la programación en la PS3. .

En definitiva, lo que vemos es un proceso de involución en la abstracción en el desarrollo software, ya que ahora se debe tener muy en cuenta sobre qué hardware va a correr cada juego para adaptar el código de forma que se saque el mayor rendimiento, esto es un problema para lo estudios que lo que desean es tener que hacer las cosas una sola vez y poder disfrutar de ese trabajo en el mayor número de plataformas posibles.

Hasta aquí lo objetivo... ahora lo subjetivo. ¿Es difícil la programación en la PS3?, yo creo que la respuesta es si. Lo cierto que la programación de cualquier sistema concurrente conlleva una serie de problemas que en la PS3 se aumentan, debido a su arquitectura, sobre si va a ser un problema capital para la PS3, creo que no. De todos es conocido el "dolor" que supone programar en la PS2 y aunque se ha tardado en pillarle la medida, creo que se han hecho títulos increíbles para el hardware de que estamos hablando, BLACK es un ejemplo muy claro, cualquiera que haya probado este juego se da cuenta del impresionante número de objetos que se mueven en la pantalla, lo cierto es que es increíble lo que han llegado a hacer con la PS2. No creo que con la PS3 vaya a ser necesariamente mas difícil, al contrario, creo que Sony ha trabajado en facilitar las labores de desarrollo usando OpenGL y Cg.

Sin embargo, si lo que nos preguntamos es si es mas fácil desarrollar en la XBOX360, por lo que cuentan los desarrolladores, Microsoft ha creado herramientas de desarrollo muy superiores de las que tiene Sony, no obstante se debe pensar que Microsoft es una empresa de Software, cosa que no lo es Sony, o al menos si la comparamos con la maquina de hacer Software que es Microsoft.

Comenta John Carmack que es deseable que el desarrollo de un juego sea un 20% mas fácil a tener un 20% mas de potencia para poder hacer cosas. Esto es totalmente lógico si además pensamos que la XBOX360 es una excelente máquina con un Hardware que no la deja demasiado detrás de la PS3. Lo que ha conseguido Microsoft, es una plataforma de desarrollo fácil, cómoda y cuyo código se puede mudar fácilmente al PC, mientras que pasar código de la XBOX360 a la PS3 y viceversa, va a ser una tarea compleja, por la diferencia en las arquitecturas de la consola.

Creo que en todas las plataformas vamos a ver gráficos muy parecidos, pero que el motor interno y el comportamiento del juego va a ser muy distinto dependiendo de la consola. Un ejemplo lo tenemos en Assasins Creed, el impresionante juego que están haciendo en el estudio de Ubisoft en Montreal, parece que va a tener un aspecto igual en ambas consolas, sin embargo, ya se ha adecentado que la IA en la XBOX360 será un poco mejor que en la PS3, y la verdad es que esto no deja precisamente bien a la consola de Sony. En mi opinión este caso se va a repetir durante un tiempo hasta que la PS3 alcance la calidad en el desarrollo de la XBOX y a partir de ese momento Sony llevará las riendas en los juegos.

Update: Me comentan (lo ví, pero no hice el update en su momento)... y es cierto, que Ubisoft ya ha dicho que la IA será la misma para ambas consolas (el código será el mismo) y que la diferencia no será apreciable... Lo cierto es que cuando dicen que el código de la IA sea el mismo no significa, per-se, las mismas soluciones de la IA, pues el tiempo de CPU dedicado a ese hilo no es el mismo. Aunque ciertamente, no creo que veamos diferencias apreciables en el juego.
Update:A lo largo de artículo comento las características técnicas que el CELL debería haber tenido. Son 3,2Ghz en vez de 4Ghz y Siete (7) SPE, uno de ellos usado como unidad de ejecución del sistema operativo.



octubre 05, 2006

Mark Reid, de Gears Of War, ¿se pasa de la raya?

Me he encontrado aquí algo curioso y que complementa un poco lo que supongo que algun día podré postear acerca de la programacion de la PS3 vs Xbox360...
Resumiendo un poco el hilo del foro, que es un poco largo, resulta que Mark Reid que no es nada menos que "The ever-entertaining Epic Games VP"... por decirlo de alguna manera el que hace posible el engine Unreal 3, ha comentado que en la PS3 el engine va a ir peor y que lo que han dicho desde Sony de que la nueva generación saldrá con la PS3 es "bullshit"... (si quereis saber lo que dijo exactamente echad un vistazo aqui ). Obviamente después de decir esto se ha tenido que disculpar por que la gente se le ha echado un poco encima.
Mark Reid se caracteriza por ser una persona que dice lo que piensa :) y desde luego esta es una prueba (buscad en la Wikipedia lo que dice de él) ;)
El caso es que da que pensar que esta gente este "resignada" a que su engine vaya peor en la PS3 y eso viene a corroborar lo que parece que es una realidad, y es que la PS3 en su conjunto no es una consola mejor que la XBOX360 y que los juegos va a costar que salgan mejor en esta plataforma.

(PD: El hilo vale la pena leerlo.... )

octubre 04, 2006

Jugando con la PS3 al NBA 2K7

Podemos ver aqui, en el video PS3 Free-Throw Mechanics un ejemplo del uso que le podemos dar al nuevo mando de la PS3... a mi personalmente me parece muy incómodo jugar así, seguramente tambien se podrá jugar como toda la vida ;).
Algo curioso que me he encontrado sobre este juego es lo siguiente:

... the cloth physics of jerseys and shorts has been assigned to one SPU on the PS3 instead of multiple cores on the 360 so that it can move more realistically than ever without taking away processing power for the rest of the game. But you'll find that there's just as much realism off the court in the PS3 version than on the court. Instead of running cutscenes during timeout situations, the development team has created real time AI that governs the cheerleaders, mascots, floor cleaners and even the crowd. For example, during a game between Dallas and Miami at the American Airlines Arena, we noticed Burnie, the Heat mascot doing much more than simply dancing on the sideline; he would run under Dallas' basket and actively try to distract shooters at the free throw line, and he had new dance sequences during timeouts.
Tiene gracia esta apreciación por que justo estoy preparando un Post sobre esto... a ver si mañana lo cuelgo si me da tiempo a corregirlo.

Rob Pardo, diseñador jefe de WoW

Hoy he estado en casa un poco enfermo y me ha dado más tiempo que el de costumbre para mirarme algunos artículos en profundidad. De los que he repasado ha habido uno que realmente me ha gustado que comentaba una charla con Rob Pardo, diseñador jefe de World of Warcraft.

En general, lo que comenta es extrapolable a cualquier empresa software que se quiera llamar así (las otra no cuentan :)).
Por un lado se trata de inculcar a los diseñadores las ideas principales que se desean del producto final, así como un periodo más o menos largo para pulir el resultado. Generalmente, los mandamases de las empresas de Software no atienden a ninguna filosofía concreta que no sea vender el producto sea como sea y esté como esté. Normalmente esa filosofía de trabajo da como resultado productos inacabados y de mala calidad que socavan la confianza del cliente sobre el resto de software de esa empresa. Blizzard es muy conocida por dar plazos enormes a sus juegos, ellos se pueden permitir la fecha "When is Done", esto que puede parecer un poco extremo en realidad es muy bueno para la calidad final, pues lo que se encuentra el usuario es un software de mucha calidad, muy pulido a todos los niveles y que va a disfrutar usando.
Esa fama que tiene Blizzard y muchas otras empresas de Software no es más que el resultado de una filosofía de desarrollo muy acertada. Encuentro la charla de Rob Pardo muy consecuente con la que ya sabía de Blizzard y totalmente aconsejable leer.