PDS: El origen de los "ports"

En la época dorada del software español, allá entre 1983 y 1992, la producción de videojuegos para las máquinas de 8 bit de la época sufrió un importante auge a nivel mundial, pero sobre todo a escala nacional. Las empresas productoras de entretenimiento digital patrio surgían como champiñones. Así pues, compañías tales como Indescomp, Made in Spain (Zigurat), Dinamic Software, Opera Soft o Topo Soft se llenaban los bolsillos de las antiguas pesetas desarrollando juegos para Spectrum, MSX y Amstrad, sobre todo.

La forma de trabajo de aquellos tiempos era bien distinta a lo que puede ocurrir en la actualidad. En un principio los videojuegos se diseñaban directamente sobre la máquina que los iba a ejecutar. Para ello existía una doble vertiente, en función de la calidad requerida y de los conocimientos del programador: desarrollar en ensamblador o desarrollar en algún lenguaje de alto nivel (comúnmente algún intérprete nativo de BASIC).

La diferencia entre ambas técnicas reside en la potencia del producto final. Evidentemente, programar en ensamblador ayuda a aprovechar al máximo las capacidades del aparato, ya que se hace necesario conocer a la perfección el funcionamiento interno del procesador y del resto del hardware, así como las instrucciones propietarias que presentan y permiten manejar. Hacerlo en un lenguaje de alto nivel acompaña en el proceso, debido a su sencillez de codificación con respecto al ensamblador, pero es muy posible que no exprima al cien por cien el funcionamiento de la máquina.

Para desarrollar un título que fuera compatible con las tres plataformas más conocidas al mismo tiempo, los programadores debían, pues, diseñar el juego para cada una de ellas particularmente, aprovechando muchas veces código en el traspaso debido a que las tres compartían el mismo procesador, un Z80. Sin embargo, el proceso resultaba tedioso y, para las empresas, poco rentable.

Imagen
'Fernando Martín Basket Master' para Spectrum


Hacia el año 1987 apareció una herramienta denominada PDS (Programmers Development System), una suerte de sistema que hacía uso de un compilador cruzado y de un equipo de hardware para la época muy avanzado. Este equipo consistía en dos tarjetas, una ISA con dos puertos COM para un ordenador de 16 bit (que hacía las veces de equipo madre de programación) y otra que se insertaba en el equipo de 8 bit y que, en función de este, podía tener forma de cartucho o de periférico adaptado a él.

Desde el ordenador de 16 bit (bien un PC, un Amiga o un Atari) se diseñaba el juego para, después, enviarlo directamente, ya compilado y a través de un cable conectado a las tarjetas mencionadas, a la memoria de la máquina de 8 bit. De esta forma, el desarrollo era mucho más rápido y dinámico a causa de la potencia de los computadores de trabajo y, también, se disponía de la posibilidad de hacer cambios directamente sobre la memoria para comprobar el funcionamiento de los distintos elementos y de depurar errores prácticamente en tiempo de ejecución.

La pega de este sistema PDS es que él solito era capaz de generar las distintas compilaciones para las diferentes máquinas. Esto, que podría parecer una ventaja, sólo así lo era para los empresarios dueños de las producciones, pero no para el público final. El problema reside en que, a pesar de que los tres ordenadores compartan procesador principal, las capacidades gráficas, de audio, de memoria u otras no son las mismas. Por ejemplo, MSX tiene unas aptitudes gráficas bastante mejores que Spectrum, y Amstrad CPC un sistema de sonido también muy superior al de Spectrum.

Ello significaba que la primera versión que se desarrollaba era la de Spectrum para, posteriormente, convertirla, a través de mínimos cambios, para MSX y Amstrad. La inmensa mayoría de los juegos de la época eran conversiones directas de Spectrum, lo que cabreaba bastante a los usuarios de Amstrad o MSX, porque pagaban por juegos para sus plataformas que llevaban gráficos de Spectrum y el sonido chillón de los pitidos del beeper de Spectrum. En fin, no se aprovechaban las capacidades de las distintas máquinas, porque el objetivo era desarrollar rápido y vender mucho. Ojo, no siempre era así, pues algunas compañías como Opera Soft cuidaban muy mucho las versiones.

Imagen
'Fernando Martín Basket Master' en Spectrum y Amstrad


Ricardo Cancho, a la sazón grafista de Topo Soft, en una entrevista que le hicieron el pasado año 2010 comenta algo que no tiene desperdicio:

Desde el punto de vista técnico, siempre empezábamos por la versión de Spectrum, pero con los cálculos de memoria realizados para el Amstrad. ¿Por qué? Muy sencillo: el Amstrad era el que más consumía en gráficos, literalmente el doble que en las otras máquinas, así que primero había que asegurarse de que el proyecto cupiese entero en esta plataforma. Una vez realizadas las estimaciones, ya podíamos ponernos a hacer gráficos, mapas, etcétera. Así que, paradójicamente, en las versiones de Spectrum siempre quedaba algo de memoria libre de sus 48 KB.


La versión de MSX se dejaba siempre para el final y solía ser un clon de la de Spectrum. El criterio era puramente económico: no se dedicaba ni un minuto de tiempo extra a esta plataforma, para así cumplir los plazos de entrega y de fecha de salida al mercado.

Una auténtica pena que la avaricia de los mercaderes aplastará ríos de imaginación y destreza informática por los siempre putos plazos de entrega. Pero hoy en día no es muy distinto. La única diferencia es que en aquellos tiempos, si realmente se aprovechaban las capacidades de cada equipo, el mismo juego para Sprectrum y MSX eran completamente polos opuestos. Hoy, si dejamos aparte la Wii de Nintendo por su clara inferioridad técnica, es lo mismo ser un poseedor de una PlayStation 3 o de un Xbox 360, porque los juegos se ven y se perciben de una forma exactamente igual en ambas plataformas. Y esto es algo que no tiene mucho sentido.

Ambas consolas actuales tienen unas capacidades similares, pero no iguales. Cabría pensar, además, que el hecho de que el soporte nativo de PlayStation 3 sea el Blu-ray Disc y el de Xbox 360 sea el DVD podría llevar aparejada una mayor cantidad de contenidos en los juegos de la consola de Sony (más niveles, más cortes de vídeo…), pero no es así. Los títulos para ambas consolas son prácticamente iguales, y las diferencias que se pueden encontrar son tan nimias que no merece la pena siquiera tenerlas en cuenta. Lo único que hoy día debería considerar un comprador a la hora de decidirse por una u otra, es el precio y, sobre todo, el catálogo de juegos.

Imagen
'Dead Rising 2' en Xbox 360 y PS3


¿Qué es lo que impulsa esta tendencia? ¿Por qué se hacen juegos idénticos? ¿A qué oscuro acuerdo se ha llegado? Porque todo el mundo está de acuerdo en que, si se deseara realmente y se aprovecharan al máximo las capacidades de cada máquina, la guerra entre Sony y Microsoft podría ser brutal. Pero eso no ocurre, ni ocurrirá. La historia se repite, no sabemos si por motivos económicos, de mercado o de lo que fuere.

Para el que quiera profundizar más en este tema, desee disfrutar de un buen rato y tenga hora y cuarto que perder (o que ganar), os dejo con un podcast de RetroActivo, uno de los blog más interesantes, maduros, completos y profesionales del mundo retro de la informática y los videojuegos. En este vídeo ha tenido esta entrada su inspiración, pero os recomiendo el resto también sin ningún género de dudas.

http://www.youtube.com/watch?v=iH98xMkR ... r_embedded

http://www.teknoplof.com/2011/10/11/com ... s-ochenta/
que antes se programaban juegos en ensamblador? [mad]
Hoy en día no van a programar versiones distintas si pueden evitarlo; el coste de desarrollar juegos ha aumentado demasiado como para que sea factible, y las diferencias entre ambas máquinas no son tan acusadas...la última generación en la que vimos (y veremos) esto fue en la de PS2/Xbox/GC, donde por ejemplo los Splinter Cell de PS2 poco tienen que ver con los de Xbox.
Namco69 escribió:que antes se programaban juegos en ensamblador? [mad]


si, la mayoría de los juegos de las consolas de 8bits se programaron en ensamblador, debido a que la poca potencia de estas maquinas, hacia necesario aprovechar cada bit de potencia al máximo para desarrollar juegos que se vieran y jugaran bien, pues usar un lenguaje de alto nivel, incluso algunos cercanos a los de bajo nivel como basic, conllevaban una perdida de potencia valiosa, y si querías hacer juegos con gráficos molones, o algoritmos complejos, pues no te quedaba otra que usar ensamblador si no querías que tu juego corriese a 5fps
por algo lo llamamos "industria del videojuego"... cualquier industria busca el beneficio a través del resultado y la optimización de los procedimientos. estas "tácticas" de desarrollo no dejan de ser mecanismos para que el desarrollo de programas en varias plataformas sea el mismo, y que sobre un único código fuente se pueden generar los distintos productos finales.
Pues leyendo esto, los que criticamos tanto onlive ya nos deberia dar igual, porque si no se curran las versiones de los juegos multiplataforma, nos da igual que exista una sola plataforma en la que jugar.

Sinceramente no se porque queremos una proxima next gen si no apuran las maquinas que tenemos ahora.
Ironbird escribió:Pues leyendo esto, los que criticamos tanto onlive ya nos deberia dar igual, porque si no se curran las versiones de los juegos multiplataforma, nos da igual que exista una sola plataforma en la que jugar.

Sinceramente no se porque queremos una proxima next gen si no apuran las maquinas que tenemos ahora.

AGREE 100%

Aunque puestos a elegir si se diera el caso de tener sólo una máquina en el futuro, personalmente preferiría que no fuera con juegos en nube, sino en formato físico. Me jodería bastante no poder tener mis juegos a mano, o no poder volver a jugarlos en el futuro porque el servicio de nube de las primeras máquinas ya no esté disponible.

Por lo demás, interesante tema. Mis felicitaciónes al autor del hilo ;).
En consolas pasa eso y en PC pasa que el hardware no es estándar para todos los usuarios y no se puede sacar un buen rendimiento y que todos lo disfruten por igual.

Son las cosas que siempre sucederán, pero los videojuegos son principalmente una fuente de ingresos para empresas y personas que trabajan en ellas, y hay que buscar el equilibrio entre resultados y objetividad.

Ahí tenemos casos como Blade, Duke Nuken Forever (vale, aunque este se paralizó durante años) y otra serie de juegos cuyos desarrollos se han prolongado durante tanto tiempo, que el día de salir al mercado ya estaban obsoletos.

Con los juegos no se puede hacer como con La capilla sixtina, porque los presupuestos son limitados y no todo el mundo tiene la suerte que tiene Kaz de poder desarrollar GT5 hasta que él considere que está terminado.
Buenísimo el artículo, ¿te lo has currado tú, Gaiden? Enhorabuena si es así :).
Muy buen artículo, me lo he zampado enterito y me ha gustado. Tiene un buen trabajo de investigación detrás desde luego.
Namco69 escribió:que antes se programaban juegos en ensamblador? [mad]


Si, pero mucho ojo porque el ensamblador de un Z80 (cisc) es infinitamente mas sencillo y de "alto nivel" que el ensamblador de un PowerPC (risc).

Los procesadores modernos están hechos para ser usados con compiladores. Los procesadores de los 70s se hacían para ser programados en ensamblador.

Es decir, no era "loco" ni "descabellado" trabajar en ensamblador en los 70s y primeros 80s.

El equivalente al ensamblador de los 80s de hoy día es el C puro. Hoy solo las librerías de mas bajo nivel se realizan en C puro con algún toque de ensamblador si es estrictamente necesario. Los engines se hacen en C++ y todo el resto en lenguajes de script propietarios de cada engine. Gracias a ello, los multis son tan buenos. :p
Los títulos para ambas consolas son prácticamente iguales, y las diferencias que se pueden encontrar son tan nimias que no merece la pena siquiera tenerlas en cuenta


Hoy ya es asi, el problema fue al inicio de la generacion y por casi un año y medio a dos donde los ports de PS3 eran aguados a mas no poder. Cosas como The Darkness eran sangrantes.
Aparte de todo eso os falta una cosa importantisima. Hoy en dia las empresas se afanan muchisimo en que los ports de ps3 y xbox sean lo mas parecidos posibles, incluso desaprovechando potencia a posta (conozco casos de AAA de primera mano) para que los juegos luzcan exactamente igual, aunque sea en detrimento de la consola mas potente.

Y la cosa tiene sentido, por que ninguna empresa va a hacer UN juego con DOS versiones, una buena y otra mala, por que les perjudicaria de muchas maneras. Para empezar los propios gamers (que risa me da esta palabro) echarian pestes sobre lo patanes y vagos que son los programadores (no pasa ya?) y se crearia desconfianza en el mercado de futuros tratos con los propietarios de la plataforma mas comunmente perjudicada. Ademas, quien va a gastar dinero en producir una version notablemente peor, que se sabe que va a vender mucho menos que la buena? Es el caso por ejemplo de Wii.

Hoy en dia, con la igualdad tecnica entre 360 y ps3, es normal que se tiren a hacer los juegos multi clavados. No importa que en una maquina sobre potencia. Si no, fijaros en cuantos juegos multi acaban en Wii.
Da igual que la Wii este enfocada a otro publico. Se han vendido muchisimas, y muchos "hardcore gamers" (otro palabro que me causa rision) la tienen, pero a que no se les pasaria por la cabeza comprar para Wii el nuevo Batman o cualquier otro juego tecnicamente destacable? Ni de lejos.
ffelagund escribió:Y la cosa tiene sentido, por que ninguna empresa va a hacer UN juego con DOS versiones, una buena y otra mala, por que les perjudicaria de muchas maneras. Para empezar los propios gamers (que risa me da esta palabro) echarian pestes sobre lo patanes y vagos que son los programadores (no pasa ya?) y se crearia desconfianza en el mercado de futuros tratos con los propietarios de la plataforma mas comunmente perjudicada. Ademas, quien va a gastar dinero en producir una version notablemente peor, que se sabe que va a vender mucho menos que la buena? Es el caso por ejemplo de Wii.

Eso me recuerda a la pasada generación y cuando los gamers de Cube y Xbox echaban las muelas porque los juegos de EA desaprovechaban el hardware de sus consolas (y razón no les faltaba). Aunque más que por equipararlas a la de PS2, era porque los recursos que invertían en las demás plataformas eran mucho menores (evidentemente, venían mucho menos en GC y Xbox que en PS2).
ffelagund escribió:Aparte de todo eso os falta una cosa importantisima. Hoy en dia las empresas se afanan muchisimo en que los ports de ps3 y xbox sean lo mas parecidos posibles, incluso desaprovechando potencia a posta (conozco casos de AAA de primera mano) para que los juegos luzcan exactamente igual, aunque sea en detrimento de la consola mas potente.

Y la cosa tiene sentido, por que ninguna empresa va a hacer UN juego con DOS versiones, una buena y otra mala, por que les perjudicaria de muchas maneras. Para empezar los propios gamers (que risa me da esta palabro) echarian pestes sobre lo patanes y vagos que son los programadores (no pasa ya?) y se crearia desconfianza en el mercado de futuros tratos con los propietarios de la plataforma mas comunmente perjudicada. Ademas, quien va a gastar dinero en producir una version notablemente peor, que se sabe que va a vender mucho menos que la buena? Es el caso por ejemplo de Wii.

Hoy en dia, con la igualdad tecnica entre 360 y ps3, es normal que se tiren a hacer los juegos multi clavados. No importa que en una maquina sobre potencia. Si no, fijaros en cuantos juegos multi acaban en Wii.
Da igual que la Wii este enfocada a otro publico. Se han vendido muchisimas, y muchos "hardcore gamers" (otro palabro que me causa rision) la tienen, pero a que no se les pasaria por la cabeza comprar para Wii el nuevo Batman o cualquier otro juego tecnicamente destacable? Ni de lejos.


He aquí la explicacion realista de lo que sucede. El artículo como han dicho es buenisimo, y aprecio mucho el trabajo de investigación que tiene detrás, pero resulta utópico pensar que con la millonada que vale hacer un juego nextgen, se pongan a exprimir la memoria de una o la potencia de procesado de otra... y más teniendo en cuenta que la gran mayoría de la gente no vería las diferencias entre 1 textura con 200 pixeles mas o una version que corre a 5 frames mas que la otra...

Salu2
14 respuestas