Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies. OK | Más información

Cómo (y por qué) se hizo Planeta Rojo

Para este primer reportaje del blog pedimos a Salvador Cantero que nos contara su experiencia desarrollando un título que nos ha encantado: Planeta Rojo y lo que nos contó nos dejó con la boca abierta.

La motivación

No creo que nadie que viviera intensamente el boom de la microinformática de los 80 tenga malos recuerdos de aquella época. Es por eso que somos tantos los nostálgicos de los 8 bits que disfrutamos actualmente jugando a videojuegos viejunos, leyendo noticias, blogs, posts relacionados con aquel mundillo, o acudiendo a eventos retro, que afortunadamente cada vez son más numerosos.

Pero hoy en día tenemos la posibilidad de dar un paso más, crearnos nuestro propio software de 8 bits. Desde hace ya algunos años disponemos de todo tipo de herramientas gratuitas o de bajo coste en nuestros PCs: Programas de diseño y dibujo, compiladores cruzados, editores especializados de texto, emuladores, y más recientemente frameworks (conjuntos de funciones y utilidades) especializados para determinadas plataformas ‘retro’.

Este último punto es un hecho muy importante. Proyectos como ‘MK2’ de Mojón Twins o ‘CPCTelera’ de Fran Gallego y sus colaboradores, nos permiten a cualquier interesado en el tema crearnos nuestros propios juegos de una manera cómoda y rápida, con un resultado profesional, superior a lo que hacíamos en su época con el BASIC de Sinclair o Locomotive.

No seré yo el que diga que finalizar un proyecto de este tipo sea fácil o para cualquiera, pero en este país tenemos la suerte de contar con profesionales capaces de ofrecernos estas herramientas, y su inestimable ayuda a través de foros, redes sociales, etc. para cuando sea necesario. ¿No vamos a aprovechar esa suerte? El momento para intentarlo es ahora.

El objetivo

La falta de tiempo hace estragos en este tipo de proyectos. La intención era poder realizar un juego en menos de un mes, para hacerlo coincidir con las vacaciones. En este período hay tiempo para todo, la familia, viajes, descanso, etc. pero también para nuestros hobbies. ¡Hay que finalizarlo antes de que acaben las vacaciones!

Por otra parte, la plataforma debía ser Sinclair Spectrum 48k. Les tengo un cariño muy especial a estos trastos, ya que mis Spectrums fueron el gomas y el +. Ambos de 48k. Para cuando pude ver en casa de un primo mío un +2 de 128k, no me pareció nada nuevo, y me horrorizaron los tiempos de carga de algunos juegos. En cualquier caso yo ya andaba por esa época trasteando con CP/M. A mi casa llegó un ‘NCR Decision Mate V’ y los Spectrum empezaron a parecerme juguetes.

El argumento

¿Argumento? Planeta Rojo no es un alarde de imaginación u originalidad, ni pretende serlo. Al contrario, lo que se pretendía era que el programa fuese un guiño continuo a los clásicos de 8 bits, desde la carátula a los gráficos, pasando por el gameplay.

Más que el argumento, lo que tenía claro era el tipo de juego que quería hacer. Un plataformas frenético para Spectrum. De unas 50 pantallas. De dificultad elevada, pero con una misión a cumplir clara y concisa. Nada de acertijos ni multitud de objetos esta vez.

A partir de aquí surgieron varias posibilidades…



Las herramientas

Para trabajar con Spectrum, sin duda la herramienta a utilizar sería MK2 de Mojon Twins. Es una mejora de La Churrera. Contiene funciones nuevas y las que ya existían están reescritas y optimizadas para mejorar el rendimiento u ocupar menos memoria.

Pero yo ya me había leído el tutorial de la churrera que publicaron los Mojon Twins en la web El mundo del Spectrum, y MK2 no funciona exactamente igual. Lo peor es que en el momento de empezar el proyecto la documentación de MK2 era muy escasa. Algo lógico teniendo en cuenta que se trata de un proyecto nuevo, abierto y en desarrollo constante. Actualmente el foro de Mojonia se va llenando ya de posts relacionados con el uso de MK2.

El tiempo necesario para aprender a utilizar MK2 o preguntar continuamente en el foro mojono no estaba dentro del programa, así que tendría que irme alguna versión atrás, una bien documentada: La Churrera 3.99.3C.

Como herramientas adicionales que no se incluyen con la churrera, para dibujar las pantallas y gráficos he usado Paint.Net y ZX PaintBrush. Y para codificar Notepad++.

El juego

La Churrera hace que no te tengas que preocupar de la parte dura de programar un juego, rutinas para dibujar en la pantalla, rutinas de movimiento, etc. Así que básicamente el trabajo consiste en configurar correctamente el tipo de proyecto, intentar conseguir unos gráficos adecuados, un mapa interesante, y algo de programación para definir el comportamiento de los personajes u objetos. El conjunto de todo dará como resultado algo que tal vez podamos llamar juego.

El origen de todo son los tiles y sprites. Estos pequeños gráficos darán forma a nuestro juego…

Afortunadamente, los Mojon Twins ofrecen en su web multitud de ejemplos, publicando el código fuente de sus juegos. De aquí he sacado algunos tiles, como la caja amarilla, o uno de los ordenadores, y el tileset de fuentes de letras. El proceso de dar por bueno estos tilesets fue largo, ya que siempre te ves tentado a cambiar o mejorar algo.

Lo siguiente sería crear un mapa sobre el que trabajar. Para ello la Churrera nos sugiere la utilidad Mappy, también llamada MapWin. Este proceso es muy divertido e ilusionante, porque ves como lo que tenías en la cabeza va tomando forma rápidamente en el ordenador. Es además una aplicación muy fácil de utilizar. De hecho el hijo de mi pareja, de 8 años, que ha seguido todo el proceso de creación del juego y ha colaborado en la fase de pruebas diseñó él solo algunas pantallas del mapa. Suyas son las pantallas que forman ‘La gruta de Alvarito’ y la ‘Madriguera pelusoide’.

El mapa vacío, una vez terminado nos servirá de lienzo para colocar objetos, sprites enemigos y sus características. Y para eso disponemos de otra potente y cómoda herramienta llamada El Colocador.

Al igual que Mappy, es muy fácil de usar. Ambas herramientas nos generarán archivos de código C que contienen arrays interminables de datos numéricos que mejor no pensar en que tuviéramos que hacerlos con papel y lápiz.

El acabado, o cómo meter todo esto en 48 miserables kbytes.

La Churrera permite incrustar una pantalla inicial, (aparte de la pantalla de carga, que no forma realmente parte del juego ni nos ocupa memoria), una pantalla con los marcadores, una pantalla final, sonidos varios preestablecidos, y una melodía inicial.

La pantalla inicial la aproveché para presentar a los personajes y para mostrar una pequeña introducción. Además para ahorrar memoria, en esta misma pantalla dibujé los marcadores de vida, munición, etc.

Sin embargo, tuve que suprimir la melodía inicial y la pantalla final por falta de memoria. No solo eso, sino que del mapa original de 50 pantallas se suprimieron 20, quedando 30 en el compilado final. Y por último los sprites con tipo de comportamiento 7, pasarlos todos a tipo 6. :(

En la Churrera, para componer la melodía en modo 48k, se usa un programa externo llamado Beepola, es un tracker que puede generar código ensamblador embebido en C, que ligeramente modificado lo podemos agregar al proyecto para su uso. Este trabajo tuve que desestimarlo también porque necesitaba memoria para mantener al menos las 30 pantallas.

Además cuando me pasaba de la memoria, el compilador que usa la churrera Z88DK, no me genera un error de tipo ‘Out of memory’, sino que compila aparentemente bien y es luego en tiempo de ejecución cuando vemos que algo no va. Tiles corruptos, cuelgues, etc. En este punto estuve revisando todo el código fuente de la churrera para ver si podía rescatar algunos bytes, pero los Mojon Twins hicieron un muy buen trabajo con la compilación condicional y ocupando la mínima memoria posible. Esta situación de falta de memoria es el único momento ingrato que recuerdo durante todo el proceso de creación del juego. Hay que ser austeros al diseñar proyectos para 48k. Por último, algo de programación. En La churrera se usa pseudocódigo, muy parecido al BASIC estándar para codificar determinadas características del juego. Yo lo utilicé para dar un nombre a cada pantalla, dibujar tiles extra en cada una de ellas, y para el comportamiento especial de las pantallas 0 y 29. Es decir, para depositar los explosivos en la última pantalla y para detonar la carga, una vez de vuelta en la primera pantalla.

Este pseudocódigo se convierte luego a ensamblador embebido en C con otra brillante utilidad de la churrera, el “MSC”.

La pantalla de carga

Las pantallas de carga siempre me parecieron parte importante de los juegos con carga lenta. No quería escatimar en esfuerzos para realizarla, pero paradójicamente, la conseguí hacer en unos 30 minutos y sin mucho trabajo. ¿Como?

Lo primero que hice fue googlear imágenes de astronautas para inspirarme, entonces pude ver muchas ilustraciones interesantes de libre distribución que tal vez pudiera convertir a formato Spectrum fácilmente con ZX PaintBrush. Fue entonces cuando acabé en la web DeviantArt. Allí había una ilustración de un astronauta que me parecía perfecta para el juego. No era de libre distribución, así que me puse en contacto con su autor, Michael Smith, para explicarle lo que quería hacer con su dibujo y pedirle permiso. Cosa que hizo encantado, con la condición de que mantuviese su autoría y de que informara en algún texto que la imagen se estaba usando con permiso del autor. Este texto finalmente lo puse en el manual, en la página de la licencia.

Una vez que dispuse de mi querido astronauta, con ZX PaintBrush pude convertirlo al tamaño y colores del Spectrum, con un fondo arenoso y algo de texto en la parte superior. Este texto se escribió con fuentes TTF que circulan por la red y que imitan al tipo de letra de Spectrum.



La carátula

La imagen resultante de la pantalla de carga me gustó tanto que quise repetirla en la carátula para el cassette. Pero la carátula también debía recordarnos a las de los juegos de los primeros 80. Debía tener el logo de Sinclair, y el arco iris, como los primeros juegos de Psion. Buscando de nuevo en Internet conseguí encontrar una buena imagen de la carátula de Horacio Glotón, la cual fue sometida a un lavado de cara con Paint.NET para convertirse en la flamante carátula de “Planeta Rojo”. Ni siquiera eliminé la referencia “G13/S” :))



Para finalizar

Aunque este artículo pasa muy superficialmente, y sin entrar en detalles técnicos por el proceso de creación de “Planeta Rojo”, la intención es dar un empujoncito, animar a todos aquellos aficionados a lo retro, a crearse sus propios proyectos y a compartirlos posteriormente con la comunidad. Porque es interesante, divertido, y muy gratificante.

Enlaces de descarga de Planeta Rojo:

Español: http://ow.ly/QRhfm
Inglés: http://ow.ly/QRhMf
Manual: http://ow.ly/QRi0b
Fuentes: http://ow.ly/QRiqi

Coméntalo en: Twitter Facebook Google +