19/04/2024
En mi juventud fui programador de videojuegos aficionado, de ésos compulsivos que sólo viven para picar código. He aquí una pequeña muestra de lo que hice.

Todos tenemos un pasado. Que se lo pregunten a algunas concursantes de Gran Hermano. Yo en mi juventud me apasioné tanto por los videojuegos, que decidí empezar a hacerlos yo mismo. Aquí va una pequeña selección de mis proyectos como programador de videojuegos aficionado. Algunos terminaron siendo juegos completos, pero la verdad es que la mayoría quedaban inacabados, porque enseguida se me ocurría otra idea mejor en la que trabajar.

Mi experiencia como programador de videojuegos
Interfaz de Blitz Basic 3D, la herramienta que más utilicé durante mis años de programador de videojuegos aficionado. Hoy en día hay otras más modernas y mejores, como Game Maker.

Programador de videojuegos, una pasión

Yo tenía 15 años, y quería hacer mis propios juegos. Para eso necesitaba aprender a programar, así que me apunté a una asignatura optativa de informática en el instituto. Por desgracia, yo iba a un instituto público, donde el dinero se emplea en engordar las elefantiásicas nóminas de profesores que casi cobran el doble y trabajan la mitad que en la enseñanza privada. La consecuencia es que no quedan fondos para otras partidas, y los ordenadores del aula de informática de mi instituto eran tan antiguos que ni siquiera tenían disco duro. Con un equipo tan lamentable, el profesor de informática, según me confesó él mismo con pesadumbre pero con la cartera llena a rebosar, tenía que conformarse con enseñarnos ofimática con Microsoft Works, un programa antediluviano. Nada de programación, para mi desgracia.

No me quedaba más remedio que aprender por mi cuenta. Así que fui a la biblioteca y saqué un libro para aprender a programar en Basic. Era un ladrillo de casi 1.000 páginas, como casi todos los libros de este género. Sin embargo, yo lo devoré en sólo dos semanas, y después de eso ya estaba listo para empezar a hacer juegos. Comenzaban así mis años de programador de videojuegos aficionado. En Basic fui capaz de hacer cosas que dejaban boquiabierto a mi profesor de informática. El motor gráfico tridimensional basado en vectores que desarrollé fue la cúspide de mis logros en Basic. Después de eso, di el salto a lenguajes de programación más sofisticados.

Probé varios, incluidos Java y C++, pero requerían mucho código para hacer cosas muy simples. Yo necesitaba algo de nivel superior. Probé Div Games Studio, entre otros cuyos nombres no recuerdo. Y finalmente me quedé con Blitz Basic 3D. Su sintaxis parecida a la de Basic lo convertía en un lenguaje ideal para mí. La siguiente lista de juegos fueron hechos todos con Blitz Basic 3D, con la única excepción del Batallas Épicas original, que lo hice en Basic. El resto de mis proyectos en Basic los he perdido de vista con el paso del tiempo. Si algún día los encuentro en disquete en el fondo de un cajón, haré una entrada dedicada a ellos.

***

Batallas Épicas 1.0

Siempre he sido un apasionado de los juegos de estrategia. Batallas Épicas 1.0 era un juego de estrategia bélica por turnos en el que se enfrentaban dos ejércitos romanos, como en Total War Rome II. Podías elegir la composición de tus tropas con unidades de infantería, caballería y arqueros. Las tres seguían el esquema clásico de piedra, papel o tijera: caballería gana a infantería, infantería gana a arqueros, arqueros ganan a caballería. Además, había numerosos bonificadores. Por ejemplo, atacar por los flancos, o la superioridad numérica. Lo que más me costó hacer fue la inteligencia artificial. Había varios niveles, y en el máximo era bien difícil alzarse con la victoria, incluso para mí, que sabía a la perfección cómo pensaba la máquina. Batallas Épicas 1.0 fue mi primer gran logro como programador de videojuegos aficionado.

Mi experiencia como programador de videojuegos
A pesar de su aspecto rudimentario, Batallas Épicas 1.0 era un juego bien rematado. Tenía muchas posibilidades tácticas, pero basadas en pocas variables, como debe ser: profundidad sobre la sencillez.

***

Batallas Épicas 2.0

Saltamos ya a Blitz Basic 3D. Batallas Épicas 2.0 representaba un tablero de juego en un garaje, sobre el cual había un montón de miniaturas animadas, como en R.U.S.E. Los ejércitos en liza ya no eran romanos, sino facciones modernas. Había tres bien diferenciadas con estilos distintos: Estados Unidos, Rusia y Gran Bretaña. Los modelos en 3D los saqué de librerías gratuitas de varias páginas, y de vez en cuando mi hermano me echaba una mano con el 3D Studio para hacer algún objeto. Batallas Épicas 2.0 tenía características como psicología de las unidades, objetivos adicionales y una cámara sobre el hombro que permitía ver lo que estaba viendo la unidad seleccionada. Por desgracia, es un juego que quedó incompleto, porque le faltaba la inteligencia artificial. Sólo podían jugar dos humanos, uno contra otro. Sin embargo, de mis creaciones como programador de videojuegos, es una de las que más satisfecho me siento.

Mi experiencia como programador de videojuegos
Más espectacular y completo que su antecesor, Batallas Épicas 2.0 era muy divertido para jugar entre dos, ya fuera hotseat o por red. Sólo me faltó hacerle la IA, y entonces habría sido mi mejor creación.

***

Batallas Épicas 3.0

No hay mucho que decir sobre el tercer Batallas Épicas. En realidad era un remake del primero, pero hecho en Blitz Basic 3D. La inteligencia artificial era todavía mejor. Afiné los algoritmos y pude restringir menos las podas gracias a la mayor velocidad de los procesadores de la época en comparación con el Pentium a 133 MHz sobre el que corría el primer Batallas Épicas.

Mi experiencia como programador de videojuegos
Batallas Épicas 3.0 era un remake del original. Programado en Blitz Basic 3D, podría haberle dotado de unos gráficos mejores, pero yo quería que tuviese un aspecto retro, y creo que lo conseguí.

***

Assault Squad

El X-COM de Julian Gollop es mi juego favorito. De todos los tiempos. De todos los géneros. Como programador de videojuegos aficionado, desde el primer día en mi mente estaba hacer algo como X-COM. Assault Squad lo era. Consistía en controlar a una escuadra de marines espaciales por turnos sobre un escenario con iluminación dinámica. Los modelos de los marines eran los mismos que los empleados en Batallas Épicas 2.0. La razón de la falta de variedad en los modelos tridimensionales que yo utilizaba es que el único formato fácil de manejar en Blitz Basic 3D era el .md2, muy poco extendido. Assault Squad quedó incompleto, pero me sirvió para aprender un montón de trucos que luego emplearía en Olympus Police Department.

Mi experiencia como programador de videojuegos
Soy una groupie histérica de Julian Gollop, lo confieso. Assault Squad fue mi homenaje a su gran obra maestra, el primer X-COM. Incluía un complejo generador aleatorio de escenarios.

***

UFO Interceptor

UFO Interceptor te ponía en el papel de un piloto de caza que salía a investigar un objeto extraño que se había colado en el espacio aéreo de los Estados Unidos y no respondía a las llamadas por radio. El objeto era un ovni al que luego se le unían más. La mejor inteligencia artificial que creé en mi etapa de programador de videojuegos aficionado es la de este juego. Lo más complejo de aquella IA era la tridimensionalidad con la que tenían que operar. Los ovnis sabían guardar las distancias, hacer pasadas, caer en picado en el momento justo para intentar que los siguieras y te estrellases contra el suelo. En fin, que sabían más que los ratones colorados. La última versión era plenamente jugable, pero no lo doy por completado porque me habría gustado hacer una campaña de misiones, en lugar de sólo una.

Mi experiencia como programador de videojuegos
Siempre me ha gustado el tema ovni. En UFO Interceptor tenías que luchar contra ellos, pero no era nada fácil, porque estabas en desventaja tecnológica. Las naves alienígenas eran mucho más rápidas y ágiles.

***

Olympus Police Department

Mi proyecto más ambicioso fue un shooter ambientado en los cuerpos de policía del manga Appleseed. Olympus Police Department (OPD) fue el proyecto en paralelo que siempre estaba de fondo mientras trabajaba en otros. Todo lo que aprendía haciendo otros juegos, lo aplicaba a OPD. En consecuencia, nunca lo terminaba. Cuando estaba trabajando en un juego de estrategia, OPD pasaba a ser un shooter táctico. Cuando estaba trabajando en un FPS, OPD volvía a ser un shooter puro. Cuando trabajaba en el algoritmo de creación de escenarios aleatorios de Assault Squad, OPD tuvo que ser rediseñado para incorporarlo. Como programador de videojuegos aficionado, OPD permanece en mi recuerdo como la gran frustración.

Mi experiencia como programador de videojuegos
Olympus Police Department quedó inacabado por culpa de no tener las cosas claras. Nunca supe qué tipo de juego quería hacer de él. Fue un cadáver exquisito al que añadía todo lo que aprendía de otros proyectos.

***

Y hasta aquí la muestra de lo que hice durante mi periodo de programador de videojuegos aficionado, cuando era joven. Luego entré en la universidad, y a partir del tercer año dejé la programación para dedicar más tiempo al estudio. Actualmente he vuelto a hacer cosas en Java, y dentro de unos meses espero poder dedicarle más tiempo. Seguro que algunos de vosotros, como aficionados al ocio digital, habéis tenido por lo menos la tentación de ser programador de videojuegos. Si es así, no lo dejéis pasar. Es una afición de lo más gratificante, y hay muchas herramientas que simplifican la tarea a los novatos, como por ejemplo Game Maker, que fue utilizado por el programador indie Tom Francis para hacer el genial Gunpoint.