No soy muy amigo de los análisis técnicos, tablas comparativas y demas, pero a veces viene bien conocer el fondo de las cosas.
Nos movemos en un mercado en el que lo único que cuenta es lo inmediatamente visible, muchas consolas han "comido tierra" por no ser capaces de conectar con los desarrolladores, pese a las voces a favor de algunos de ellos.
Es normal, nos movemos en un mercado que se rige por objetivos económicos, si una máquina te pone trabas lo mejor es ignorarla y pensar en otro sistema, de otra forma los costes se disparan y no siempre se puede confiar en el éxito de los productos.
PS2 tiene una arquitectura peculiar, tan peculiar e interesante que se ha confiado EXCESIVAMENTE en dicha arquitectura, quizá todavia no era el momento o Sony no entendió bien la forma en que el mercado se mueve, pero la escasa memoria de video (por ejemplo) es algo que mucha gente no le va a perdonar nunca.
El buen nombre de PlayStation y el marketing, de momento, resuelven la papeleta a Sony pero la suerte no dura eternamente y en Sony se estan esforzando por hacer todo el trabajo sucio que los desarrolladores no pueden o no quieren hacer (visible en el continuo goteo de modificaciones en los kits).
A cuento de esto, en plena inmersion "internauta" encontré un artículo bastante interesante en una web, interesante sobre todo porque no se detiene en tecnicismos que confundirían a la mayoria y porque no parece tener ninguna afiliación directa con Sony XDDD , algo que en estos tiempos de hiper-marketing es dificil de ver.
"Una de las quejas más comunes de los detractores del sistema es que PS2 es díficil de programar. También comentan que PS2 no es una verdadera consola, ya que Sony se preocupó más por colocar un DVD dentro que por hacer una máquina de videojuegos. Y por último, comentan que está condenada a desaparecer debido a que hay consolas más potentes en el horizonte.
Muchas cosas se dicen, pero pocas personas están realmente enteradas de las capacidades de PS2 y la manera en la que funciona.
Para comenzar, les haré una declaración: Playstation 2 es díficil de programar. Sí, no es un rumor, es un hecho. Pero no se debe a que Sony haya metido la pata, sino porque hicieron su trabajo demasiado bien. PS2 fue diseñado con un propósito principal: ser una consola de videojuegos. Y su arquitectura interna refleja esto, pues le permite procesar imágenes en 3D con una velocidad y precisión jamás alcanzadas antes. El problema es que para alcanzar tal perfección, los programadores están forzados a cambiar la forma en la que hacen las cosas.
Para comprender esto, primero tenemos que aprender unos conceptos básicos: la diferencia entre datos e instrucciones y lo que es un bus y lo que es una cache. ¡Esperen! No se vayan. No tienen que ser técnicos para entender cómo funcionan, y les prometo que son conceptos bastante sencillos.
Existen dos tipos principales de información que un ordenador necesita para trabajar: los datos de la aplicación con la que se está trabajando y las instrucciones que dicen qué hacer con los datos. No son lo mismo: un dato en un juego podría ser, por ejemplo, cuánto daño recibió un personaje cuando lo toca el enemigo, mientras que la instrucción le dice a la consola que el daño debe de ser restado del total de energía del personaje. Ojo, porque esta diferencia es importante.
La cache es la parte donde el ordenador almacena la información que se usa de forma frecuente. De esta forma, no tiene que perder tiempo buscando la información que utiliza continuamente, sino que la guarda en la cache y la tiene siempre a mano.
Por último, están los buses. Estas son las “carreteras” por los cuales pasa la información. Lógicamente, el tamaño de la información que puede transmitirse está directamente relacionado con el tamaño del bus. Cuanto más grande sea éste, más información podrá transmitirse al mismo tiempo.
Los ordenadores han trabajado durante años con una cache grande y buses pequeños. Esto se debe a que fueron diseñados para tareas que manipulan una cantidad pequeña de datos, pero que requieren una gran cantidad de instrucciones. El ejemplo típico es el procesador de textos: siempre estás trabajando con el mismo texto, pero puedes hacer muchas cosas con ese texto. Fuentes, indentación, margénes... todas estas opciones están disponibles en la lista de comandos que puedes aplicar al texto en un momento dado. Debido a que la información es poca y relativamente estática, es mucho más importante que la información esté accesible a que ésta llegue rápido a donde debe llegar. Por lo mismo, la cache de los ordenadores es bastante grande (¿has observado cuánta RAM necesita la última versión del procesador de textos de Microsoft, por ejemplo?) pero un bus relativamente pequeño.
Sin embargo, últimamente se han puesto de moda las aplicaciones multimedia, que involucran imágenes, sonido e interactividad con el usuario. Y las aplicaciones multimedia más populares son, precisamente, los videojuegos.
Lo curioso de las aplicaciones multimedia es que requieren cantidades enormes de datos. Cada sonido que sale de tus altavoces, cada brillo que despide un arma, es un pequeño dato que debe de ser procesado por un comando. Cuando procesas un polígono, tienes que recordar dónde se encuentra cada uno de los vértices, y además detalles como las texturas, el tipo de rendering y las fuentes de iluminación. Pero, a diferencia de las aplicaciones tradicionales, las aplicaciones multimedias necesitan sólo una cantidad muy pequeña de comandos, y cada uno de éstos afecta a una cantidad muy grande de datos. Para cambiar el ángulo de una cámara en un entorno 3D, por ejemplo, necesitas recordar todo el entorno, una cantidad enorme de datos. Pero sólo necesitas dos comandos para hacerlo: uno de traslación y otro de rotación.
Esto cambia la jugada. No tiene sentido tener caches grandes si los comandos van a devorar todo lo que se encuentra dentro de esas caches en milisegundos: las caches vacías no te sirven de nada. Pero los buses sólo pueden transmitir cierta cantidad de datos. Puedes ampliar el tamaño de las caches, pero es una solución temporal, pues los buses van a seguir estorbándote. Sería mucho más recomendable ampliar ligeramente los buses para que los datos lleguen más rápido a las caches, de tal forma que en cuanto un comando devore todos los datos de una cache ya esté listo el nuevo paquete de datos. Esta es una solución que se ha venido discutiendo desde hace tiempo, que está siendo adoptada lentamente por las tarjetas en 3D y a la cual teoricamente evolucionarán los ordenadores.
Fin parte 1