Buscando en el repositorio de los recuerdos
(This is a reprint of the original post)
Aunque ya hace unos cuantos años que tengo la costumbre de guardar todo lo que hago en repositorios (antes con CVS, ahora con Subversion), en realidad llevo muchos más años programando: al menos desde 1989, quizás incluso antes (queda como ejercicio para el lector calcular cuántos años tenía yo entonces). Algún día puede que me anime a escribir sobre esos primeros años con más detenimiento. Hoy me limitaré a compartir algunos recuerdos sobre algunos juegos que fui haciendo. Supongo que, como muchos otros jóvenes programadores, los juegos fueron la via de entrada en la programación. Al menos, no me parece que los chavales de 12 años programen hojas de cálculo o servidores de bases de datos.
Mi primer ordenador fue un Spectrum, y por tanto, mi primer lenguaje, el BASIC. Afortunadamente, creo que BASIC no me dejó graves secuelas ("Real Programmers don't write in BASIC. Actually, no programmers write in BASIC... after age twelve", leído aquí). Aunque debo confesar que después de los doce años todavía escribía en BASIC, de hecho, mi primer superéxito fueron dos clones del juego Tron, basado en la película del mismo nombre. Curiosamente, yo nunca había jugado al videojuego original, pero tenía tantas ganas que me lo programé. Ambos clones están escritos en (Q)BASIC, en torno al año 1994 (o eso pone en las cabeceras). La diferencia entre ellos estaba en el aspecto gráfico y sonoro. Posiblemente porque por entonces me compré la primera tarjeta de sonido (Soundblaster Pro) para mi segundo PC, un 486. No puedo hacer unas capturas de pantalla, pero por si alguno no sabe de qué estoy hablando, aquí están las capturas de pantalla de GLTron, otro clon más actual. Aquellos juegos fueron un éxito en el vecindario, porque hasta cuatro personas podían jugar simultáneamente usando el mismo teclado (naturalmente, cuatro manos sobre el mismo teclado resultan demasiadas, pero la diversión compensaba). Tanto los gráficos como los efectos de sonido (explosiones) estaban hechos en casa.
Por aquella época estaba aprendiendo a programar en C. Es posible que hiciera un tercer clon del juego en C, pero no lo he encontrado. Pero sí que tengo dos juegos de aquellos días. Uno de ellos, llamado "Potato Max", era un juego de plataformas con scroll vertical y horizontal (conviene recordar que el Super Mario sólo tenía scroll horizontal y hacia la derecha). Sólo completé una fase, y nunca hubo enemigos, por lo que el protagonista (una patata animada sprite a sprite por mi hermano) brincaba y se arrastraba a sus anchas por las plataformas, con el único riesgo de caerse por algún precipicio. El motor de scroll lo programé basándome en el contenido de una sección de la revista PCManía; algo así quedaba fuera de mi alcance. El otro juego consistía en un clon de un arcade que tenía para el Spectrum. No recuerdo el nombre del original, pero básicamente se trataba de un astronauta que tenía que matar marcianos mientras recogía las piezas del cohete para huir del planeta (irónicamente, si completaba el cohete, su situación empeoraba, porque pasaba a la siguiente fase y volvía a caer en otro planeta aún más infestado de alienígenas poco amistosos). Mi versión tenía un puñado de marcianos diferentes, todos animados por mi hermano.
Avanzando unos cuantos años, y cambiando de género y de lenguaje, el siguiente hito fue un programa en Java para jugar a la pocha en red. La pocha es un juego de cartas muy arraigado en mi familia. Este juego sí lo podemos fechar con precisión: Junio de 2000. Por entonces, yo estaba terminando la carrera en la EUITIO, y además de las asignaturas obligatorias y las optativas, tenía algún curso de extensión. Por tanto, tenía que entregar un montón de prácticas. Hablé con los profesores y les propuse hacer una práctica que valiese para la asignatura optativa de Comunicación Hombre-Máquina (recientemente la corrección política ha forzado un cambio de denominación, y actualmente esa asignatura se llama Comunicación Persona-Máquina. El mundo es un lugar mucho mejor gracias a ello) y para el curso de extensión sobre sistemas distribuidos en Java. El resultado fue un juego cliente/servidor con un interfaz gráfico muy pulido (con mucho amor, como dicen en GNOME). Los gráficos fueron, una vez más, facturados por mi hermano. Me gustaría publicar este juego como software libre, pero primero tengo que retocarlo un poco. Por ejemplo, tendré que eliminar las imágenes escaneadas de las cartas de la baraja española, ya que no son de libre uso. Mientras tanto, he colgado unas capturas de pantalla, en las que incluso hay alguna feature que no estuvo lista a tiempo para la fecha de entrega, como el ayudante al estilo del Word (pido por ello clemencia y comprensión: se trataba de una práctica que pretendía tener un interfaz de usuario muy avanzado). Solo que este ayudante no ofrece pistas sobre el juego, sino que despliega un importante repertorio de insultos y descalificaciones hacia los demás jugadores.