jueves, enero 17, 2019

Bandersnatch y ET el Extraterrestre Parte 1 de 2 (o cómo hacer un perfecto homenaje a los programadores de videojuegos de los ochenta

Bandersnatch es una película “interactiva” creada por Netflix (plataforma que ahora también está disponible en Movistar Fusión) al más típico estilo de los libros “Elige tu propia aventura” que tantos de nosotros, que ya tenemos una edad, disfrutamos en los ochenta  - ¿Quién de nuestra generación no se ha leído "El secreto de la Pirámide", "La Supercomputadora" o "Tu clave el Jonás"? -. Dejando de lado los múltiples finales y la calidad en general de la película (a mi personalmente me gustan todos), no podemos negar el gran cariño y esfuerzo invertido en hacer un gran homenaje a los programadores y el mundo de los videojuegos de los años ochenta. Y más concretamente, a uno de los ordenadores que más influencia ha tenido en nuestro país y Europa en general: el británico ZX Spectrum.

Figura 1: Bandersnatch y ET el Extraterrestre Parte 1 de 2
(o como hacer un perfecto homenaje a los programadores de videojuegos de los ochenta

[Spoiler Alert!] Por si acaso …

El ZX Spectrum no era, ni de lejos, el mejor ordenador de aquellos años locos de la informática. El Amstrad CPC 464 (de casete) o el modelo superior, el CPC 6128, este último es el ordenador en el que tanto Chema Alonso y Pablo González (no te pierdas esta charla de Pablo donde lo menciona específicamente o este artículo donde también lo menciona Chema) se iniciaron en la informática al cual le tienen bastante cariño, con su fantástica unidad de disco de 3” (el resto seguíamos cargando los juegos desde casete) estaban muy por delante de las capacidades gráficas, de almacenamiento y de sonido del ZX Spectrum.


Esto sin mencionar el fantástico Commodore Amiga o el MSX que estaban en otra dimensión (esto daría para otro artículo). Pero el ZX Spectrum tenía una ventaja ante ellos, y era su bajo precio. Esto hizo que fuera tremendamente popular dando origen a mucha documentación en forma de libros y revistas como la gran MicroHobby.

Figura 3: ZX Spectrum

El primer modelo de ZX Spectrum apareció en el mercado en 1982 y podía tener 16KB o 48KB de memoria RAM. El corazón de este ordenador era un microprocesador Zilog Z80 a 3.5MHz y la salida de vídeo (otro de los factores que lo hizo tremendamente popular) era una salida RF que permitía conectarlo a cualquier televisor de la época. La resolución de la pantalla tenía 256x192 pixeles con siete colores más dos tipos de brillo para cada uno. Hoy en día puedes experimentar toda esa potencia multimedia en un emulador de ZX Spectrum online en Javascript.

Figura 4: Emulador Online de ZX Spectrum hecho en Javascript

El sonido era posiblemente el peor de sus atributos ya que era simplemente capaz de reproducir un canal con diez octavas a través de un rudimentario altavoz incluido en la placa base. Toda esta tecnología estaba encapsulada en una única carcasa brillantemente fabricada, con el característico teclado de “gomas” con varios comandos que se podían intercambiar pulsado la tecla “CAPS SHIFT” o “SYMBOL SHIFT”.

Figura 5: Placa base ZX Spectrum

Su tremenda popularidad dio origen a multitud de famosas empresas y particulares que se dedicaron a crear juegos que pasarán a la posteridad como Manic Miner (podemos ver que el protagonista de la película tiene un poster de este juego en su dormitorio), Knight Lore, Ant Attack, Jet Pac o los españoles La Pulga (que tuvo un gran éxito en UK), la inigualable Abadía del Crimen o mi querido Sir Fred, son sólo algunas de las obras de arte que aparecieron para ZX Spectrum durante los ochenta.


Figura 6:  Así se veía La Abadía del Crimen en un Spectrum

También existían grandes revistas donde se analizaba cada juego, se ofrecía código fuente (la mayoría en lenguaje BASIC y código máquina, luego hablaremos de esto) y además también incluso nos explicaban cómo funcionaba internamente el ordenador y cómo hacer nuestros pinitos en hardware. Las más famosas en Europa fueron Sinclair User, Your Sinclair o Crash Magazine, esta última aparece también en Bandersnatch en varias escenas como en la Figura 7, donde Colin Ritman (este nombre es un claro homenaje a Jon Ritman, creador de juegos míticos para ZX Spectrum como Batman o Match Day aunque el personaje está basado en Eugene Evans de la compañía Imagine) está sentado ojeando un número de esta revista.

Figura 7: El personaje ficticio Colin Ritman leyendo un número de la revista Crash en la película

Hablando de revistas, en España no podemos olvidarnos mencionar de nuevo Microhobby o Micromanía, ambas son un todo un clásico y seguro que muchos de vosotros tenéis algunas guardadas en el cajón con mucho cariño.

Volviendo a Bandersnatch, el protagonista es un programador “freelance”, es decir, él solo lleva todo el peso de programar el juego sin ayuda de ningún equipo de personas adicional. De hecho, en la película hay un punto donde nos ofrecen trabajar en la empresa ficticia Tuckersoft (parece que inspirada en Imagine, mítica empresa de videojuegos que quebró en la misma fecha que se indica en la película, 9 de julio de 1984 que además intentó desarrollar un videojuego con el mismo nombre), o directamente seguir por nuestra cuenta.

De hecho, esta imagen del programador freelance fue bastante habitual por aquella época, como por ejemplo el famoso Matthew Smith, programador de Manic Miner que comenzó su carrera vendiendo juegos que creaba él mismo en su casa. Y esto no era nada fácil, de hecho, la mayoría no utilizaba ni siquiera un ZX Spectrum para desarrollarlos.

Figura 8: Cartel de promoción del juego Psyclapse y Bandersnatch
(que nunca se llegó a publicar) de la empresa Imagine

En la película, podemos ver varias veces algunas escenas en las que aparece el código fuente del juego BanderSnatch, el cual podemos apreciar claramente que está realizado en lenguaje BASIC. Aunque el juego en sí parece bastante sencillo y factible de programar en este lenguaje, ya que toda la acción se limita a moverse por un laberinto o responder a preguntas, si realmente querías sacar el máximo rendimiento a la máquina, era imprescindible programarlo en lenguaje ensamblador del Z80 (aquí tienes el enlace a un libro sobre código máquina del ZX Spectrum de computerarchive.org). Y esto era muy difícil hacerlo sólo con un ZX Spectrum aunque existían herramientas clásicas como el fantástico ensamblador y desensamblador HiSoft Devpac también llamado Gens.

Figura 9: Manual de programación den Z80

Antes se ha mencionado a Matthew Smith, creador del clásico Manic Miner (por cierto, este fue el primer juego de ZX Spectrum con música de fondo mientras se desarrolla la acción) programó el juego íntegramente en un TRS-80 fabricando desde cero todo un entorno de desarrollo para luego exportarlo al Spectrum (ambos equipos tenían el mismo microprocesador Z80).

Figura 10: Matthew Smith, creador de Manic Miner entre otros clásicos,
en su mesa de trabajo donde se aprecian los distintos ordenadores
de diferentes arquitecturas para su desarrollo de juegos para ZX Spectrum.

Aunque posiblemente el entorno más utilizado para desarrollar juegos de ZX Spectrum en la época eran aquellos con MS-DOS o con CP/M, es decir, los IBM PC o compatibles aunque también se utilizaron otros como por ejemplo Commodore Amiga, pero ¿por qué? Hacemos un Cliffhanger y lo vemos en la segunda parte del artículo, que ya se ha alargado mucho éste.

Fran Ramírez, (@cyberhadesblog) miembro del equipo de Crazy Ideas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

2 comentarios:

  1. Este si que me ha gustado que recuerdos yo también sigo conservando los míos , los modifiqué y le incluí dentro del monitor un sintonizador que había por entonces para poder ver la televisión en el monitor.
    Con el me diseñé un programador de eproms arcaico en el que programaba las posiciones una a una , tempus fugit.

    No te olvides de la impresora.

    https://postimg.cc/WqjvyTp1

    https://postimg.cc/dkJFHJVt

    https://postimg.cc/Cd1TzPZt

    Un saludo.

    ResponderEliminar
  2. Y tanto que me trajo recuerdos... Yo programé mucho el spectrum en ensamblador (bendito Gens 3). Todo a base de cintas.

    ResponderEliminar