2012-04-25

Prince of Persia

Jordan Mechner, creador del juego original de la exitosa saga de Prince of Persia acaba de liberar el código de este juego que desarrolló entre 1985-89 para la compañía Broderbund Software.
No he escrito este post para informaros de este acontecimiento que no considero relevante sino para homenajear a todos los programadores que durante los 80-90 escribieron cientos de juegos como este y otros tantos, en lenguaje ensamblador, para Mega Drive y SNES que han llegado a ser de los mejores juegos de la historia de las consolas .
Ahora, casi todo el mundo que trabaja en algo relacionado con la informática sabe un par de lenguajes de alto nivel pero el ensamblador es totalmente distinto. Es críptico, complicado y no es portable entre arquitecturas. Cuando veo un programa escrito en ensamblador, además de no entender nada, me asombro al pensar que hace 30 años, los informáticos trabajaban en sus microcomputadores con versiones de Unix y con vi, absortos durante horas, intentando encontrar fallos en un código endiablado que ahora solo parece un crucigrama a medio terminar.
Les quería dedicar esta humilde entrada a todos los grandes programadores que han contribuido a hacernos la vida más fácil; a los que han programado drivers y otras cosas aburridas en ensamblador para que podamos disfrutar programando en java y usando APIs a diestro y siniestro en nuestras IDEs con entorno gráfico, autocompletar, corrección de erratas y demás facilidades que hace 30 años serían impensables. A todos ellos:
  1. .data
  2. greeting:
  3. .ascii "GRACIAS!"
  4. length=.-greeting
  5. .text
  6. .globl _start
  7. _start:
  8.         movl $length, %ebx
  9.         movl $greeting, %ecx
  10.         movl $1%edx
  11.         movl $4%eax
  12.         int $0x80
  13.         movl $0%ebx
  14.         movl $1%eax
  15.         int $0x80
Por supuesto, podéis estudiar, descargar, portar, compilar el código fuente de Prince of Persia y jugarlo.