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

Así se hizo: Aquanoids

Septiembre es un mes que ha comenzado con un verdadero bombazo que ha sacudido con fuerza la escena homebrew del Spectrum: Neil Parsons ha publicado: Aquanoids, un juego que utiliza MK2, el nuevo motor de los fantásticos Mojon Twins. Como no podía ser de otro modo, le invitamos a que nos contara cómo fue su desarrollo :)

Introducción

Desde que tenía apenas 15 años, siempre me atrajo el ZX Spectrum, y no dudé en tener el mío, aunque tuviera que esperar hasta las navidades del año 1987 cuando, por fin, mis padres me regalaban uno: el Plus-3.

Como otros de mi generación, yo era de una época que vivió primero el mundo de los arcades de las salas recreativas. Poco a poco, tan pronto como avanzaba la década de los 80, iba aparcándolos en cuanto asomaban por mi casa los primeros ordenadores y consolas domésticos, aunque tampoco dejaba totalmente de lado aquellos bulliciosos salones arcade. Con el Commodore 64 primero y el ZX Spectrum después, mi conocimiento de los ordenadores se basaba solamente en lo que aprendía de ellos por sus manuales de usuario, además de los cerca de seis meses asistiendo a una academia particular para aprender el lenguaje BASIC con los libros de Paraninfo Basic para niños y su continuación, haciendo mis prácticas con uno de los varios ordenadores Dragon 32, creo recordar, que me tocaba siempre en aquellas clases.

Con esa base, durante los años siguientes fui tanto tecleando programas ajenos como creando los míos propios, casi siempre a modo de aprendizaje. Cuando llegó el ZX Spectrum Plus-3, me empapé del BASIC de Sinclair en ambos modos, 48 y 128k, pero fue en éste último como fui dando forma mis ideas de versionar o crear música con este ordenador. De aquellos programas realizados, un buen puñado de éllos fueron enviados a la revista Microhobby y fueron apareciendo con cierta frecuencia en los últimos números de esta recordada publicación.

A partir de entonces, mi experiencia sólo se basaba en la programación en BASIC, principalmente para realizar música con el 128k, sin necesidad de trackers o programas similares. Totalmenmte a pelo y en BASIC, usando el característico comando PLAY en todos los casos.

No tenía apenas interés en el lenguaje máquina, salvo para aprender y recordar unas pequeñas rutinas que me servirían en algún caso para trasladar los datos de una pantalla gráfica o lo que hubiera en la zona de la pantalla, atributos incluidos, a otra zona de la memoria RAM de forma totalmente instantánea; basándose en el mismo principio de transferencia de datos, hacer el proceso inverso; cargar o grabar datos sin cabecera, o bien para cambiar el set de caracteres estándar de la ROM por otra distinta (variable CHARS), de las muchas que se publicaban en las páginas de Microhobby.

Y ya si hablamos de intentar hacer un juego en código máquina, ni se me pasaba por la cabeza. Ni tenía los conocimientos, ni siquiera me lo planteé entonces, aun con el curso de código máquina de Jesús Alonso Rodríguez, publicado dentro de las páginas de la misma Microhobby, delante de mis narices.

La idea

un día cualquiera del mes de abril de 2015, diseñé una pantalla al ‘pixel-art’ con el utilísimo ZX Paintbrush de Klaus Jahn, un potente editor y diseñador gráfico para PC Windows con el cual se pueden hacer gráficos o pantallas artísticas en modo ZX Spectrum. Me imaginé unos personajes robóticos con expresiones medianamente antropomorfas en sus rostros (alegría, tristeza, enfado, aburrimiento, timidez, cautela, miedo y desparpajo fueron las expresiones que quería plasmar), ambientarlos bajo un entorno que parecía impropio para ellos, pero que tal vez pueda serlo en un futuro no muy lejano: el agua.

El proceso no fue demasiado largo. Aparte, no trataba de hacer una pantalla recargada con demasiados píxeles o mezclas de atributos que desentonasen con lo principal. Ni tenía demasiadas pretensiones, sino la de divertirme haciéndola. Buscaba entretenerme con algo distinto a lo que solía hacer anteriormente, de más complejidad. Si véis mi perfil en la página ZX-Art, lo entenderéis perfectamente.

Por supuesto, muchos han notado en mí una gran influencia en el diseño de estos personajillos tan simpáticos hacia ese fenómeno cinematográfico de este año que se ha hecho tan extrañamente popular en buena parte del mundo: Los Minions. Es verdad que me he basado EN PARTE en ellos, pero también había buscado fundir elementos de otros robots familiares a nuestros ojos en uno solo: Zark-7 (de la mítica serie ‘La batalla de los planetas’ o ‘Comando-G’), el a veces sarcástico y vengativo robot Bender de ‘Futurama’, el siempre entrañable WALL-E de la exitosa película de Disney / Pixar y, finalmente, para quienes recuerdan los primeros números de la revista Super Juegos editada por el grupo Zeta a partir de 1992, un jovial robot volador cuyo nombre no recuerdo actualmente. De alguna manera, me he basado en cada uno de ellos para dar forma a mis Aquanoids.

Lo siguiente fue publicarlo, al poco de finalizarlo, en mi perfil creado en la página ZX-Art donde voy dejando a la vista de todo el mundo, todas y cada una de las pantallas artísticas que he ido creando desde 1988, unas más trabajadas que otras, con mejores utilidades en algunos casos (The OCP Art Studio fue el diseñador que más usé en los primeros años), pero al fin y al cabo, mías. Nunca he demostrado ser mejor grafista que nadie, ni lo he tratado de ser en todos estos años, pero sí es verdad que tengo cierto talento y eso es, en cierta manera, lo que me define en parte.

Mi experiencia después en otros campos del videojuego, como la creación de gráficos y sprites, así como diversas músicas, tanto propias como arreglos particulares, para otros programadores o grupos varios de la escena (Mojon Twins, Gabriele Amore, Radastan, RetroWorks…), me ha ido aproximando más hacia este interesante mundo de la programación, pero todavía lo veía con bastante lejanía, dada mi total inexperiencia y falta de conocimientos en otros lenguajes que no fuese el mismo BASIC. Aun así, sentía bastante curiosidad… hasta que me decidí a probar por fin la famosa Churrera de los Mojon Twins.

Los comienzos

Fue leer el tutorial que puntualmente iban publicando en la página El Mundo del Spectrum que, en un principio, me dio por pensar en un futuro videojuego. Para mi comodidad, llegué a copiarlo todo, incluyendo imágenes ilustrativas, a un documento de Word y de ahí a convertirlo a PDF. Lo pasé a un pendrive, para después en una copisteria, encargar su impresión y encuadernación; así, podía leer el curso de creación de videojuegos con la Churrera más cómodamente.

El proceso de gestación del videojuego, duró varios meses tras la publicación de aquella pantalla gráfica de los Aquanoids. Basándome en estos personajes, fui pensando sobre el qué, el cómo, el dónde y el cuándo se desarrolla la acción.

Finalmente, acabo definiendo el ‘storyboard’: La historia se ambienta en un futuro utópico, hacia el amanecer de un nuevo siglo, el XXIV de nuestra era, donde la humanidad ha dejado atrás muchos de sus viejos prejuicios y miserias, ha conseguido eliminar prácticamente todos los elementos más negativos de su comportamiento e instinto básicos como el sentimiento de odio y la violencia, pero todavía no había conseguido hallar la manera de limpiar de los océanos y fondos marinos toda la basura que el hombre ha ido generando y arrojando al mar desde finales del siglo XX, aunque se estaban dando grandes pasos para solucionarlo. Ha encontrado un remedio en forma de unidades robóticas, llamadas Aquanoids, que hacen todo el trabajo por eliminar la mayor cantidad de esos residuos para después reciclarlos o eliminarlos totalmente, sin dejar rastro.

Esto es a ‘grosso modo’ el resumen de la historia. Luego, en el PDF del manual incluido en el juego, está todo mucho mejor contado con bastante detalle.

Creación y herramientas

Todo el trabajo lo he desempeñado en mi PC AMD Athlon 64 x2 Dual de 2,01 GHz y 2,00 GB de RAM, el cual ya tiene unos cuantos años, manteniendo desde el principio el sistema operativo Windows XP y sin ninguna gana de querer actualizarlo por mi parte… xDDDD

Empecé primeramente por los gráficos, algo que se me daba bastante bien: diseñé tanto los sprites como el tileset completo (32 tiles en total), así como la pantalla de título con el marco del juego y la pantalla final, con el mismo ZX Paintbrush. Para exportar varios de estos gráficos a código binario, utilicé para este caso el SevenUp de Metalbrain, tal como se sugería en el mismo tutorial. El Colocador, una de las herramientas incluidas con el pack de la Churrera, me servía para posicionar en cada pantalla del mapa a los distintos enemigos y hotspots (llaves y objetos interactivos). Con el programa Mappy, claro está, fui dando forma el mapeado completo de 32 pantallas de que consta el juego. Bastantes veces tuve que modificar parte de estos diseños con estos programas para que quedara lo más perfecto posible.



Después vino la parte más compleja de su desarrollo: la programación con ‘scripting’, la utilización de etiquetas y directivas del engine, aplicación de código externo necesario para el juego y la compilación final de todo el código. Buena parte de este proceso la pasé utilizando el Crimson Editor, un potente editor de texto con el que es más fácil gestionar ese proceso. El montaje final del código ya venía muy bien explicado en el curso de los Mojon Twins y nunca tuve problemas.

Creo que la importancia que le veo en este videojuego realizado con la Churrera primero, y con el MK2 después, era la de añadir esa sensación de que nuestro personaje se mueve realmente debajo del agua. Me costó encontrar los parámetros justos: no forzar demasiado la sensación de inercia cuando se movía en las dos direcciones posibles en un juego de vista lateral (que realmente esa sensación de fricción bajo el agua fuese lo más real posible). También tuve que ajustar la ejecución de los saltos, su duración y la gravedad de caida del protagonista, para que el movimiento se ajustase lo más posible a la sensación que se tiene dentro del agua.

Finalmente, cuando todo el código estaba prácticamente listo y se ha testeado todo el juego (utilizando los emuladores Spectaculator 8 de Jonathan Needle, el ZX SPIN 0.7m y finalmente en hardware real con un ZX Spectrum +2) en busca de posibles fallos, es cuando me pasé a la parte musical propiamente dicha. Solo me bastó unos pocos dias para encontrar un tema adecuado para el juego y escribirlo con el Beepola 1.0.8. Para ello me basé en la canción “Octopus’ Garden” de los Beatles, como me figuro algunos habrán podido reconocer. Algunas notas son reconocibles, pero hice una variación del tema para que no sonara de la misma manera. La compilación de la música tampoco fue problema y el montaje final de la versión definitiva de Aquanoids no se hizo esperar.

No obstante, a lo largo de este proceso, pude pasarme de la versión 3.99b de la Churrera, a una de las últimas versiones, la 3.99.3c de manera temporal, hasta que me decidí por fin dar el salto al nuevo engine de los Mojon Twins, su MK2 v0.89. Más opciones, más posibilidades, pero no quise arriesgarme a meter más nada, hasta que tuviera las suficientes nociones sobre este motor que, probablemente, las utilice en un futuro videojuego.

En resumidas cuentas, éste ha sido el instrumental de trabajo:

Motores gráficos:

Diseño y edición de gráficos, sprites y tiles:

Música:

Conclusiones

El pasado día 6 de septiembre es cuando, de manera oficial, publico por fin la versión final de mi primer videojuego Aquanoids en varios formatos, .TAP, .TZX y .WAV y en dos idiomas: español e inglés, acompañados de un manual PDF creado totalmente con el OpenOffice Draw y un mapa general del juego, diseñado tanto con el Microsoft Photo Editor (un cándido programa de edición fotográfica incluido con cada paquete de MS Office) como con el Paint de Windows. Solo falta la carátula para una edición física en formato de cinta de cassette, pero está actualmente en proceso de ilustración por mí mismo. Ya veis, soy como Juan Palomo…

Sin embargo, el juego no habría salido adelante si no hubiese sido por la gran ayuda que me han prestado, en el foro de Mojon Twins, tanto Na_th_an como elborra, que fueron los que me guiaron en la parte más dura de su concepción, ayudándome cuando podían con las cláusulas del scripting y dándome siempre soluciones cuando tenía mis dudas en este campo.

En los créditos de Aquanoids, he querido dar las gracias a aquellos que me han ayudado de alguna manera, tanto en lo técnico como en lo moral, mientras iba dando forma esta divertida idea, que, curiosamente, vino a raiz de un comentario que el propio Ricardo Cancho de Topo Soft me hizo en la página de ZX-Art sobre aquella pantalla gráfica de la que hablaba casi al principio. Me dijo: “How a funny characters! These must become a game right now!

¡Qué personajillos tan divertidos! ¡Deben convetirse en un juego ya mismo!”. (http://zxart.ee/eng/graphics/authors/i/ignacio-prini-garcia/aquanoids/ - Ver comentarios al final). Me lo tomé como un cumplido y, lo que son las cosas, le tomé la palabra. :D

Descarga | DropBox
Blog del autor | Program : Bytes : 48k
Perfil en Twitter del autor | @pb48k

Coméntalo en: Twitter Facebook Google +