Ya fue una sorpresa y un lujo tener un juego en exclusividad para Explora Commodore 5 y, después de unos meses, los autores del juego lo liberan para que todos podamos disfrutar de este adictivo arcade. 4m Arena toma como idea la que Taito plasmó en su videojuego Gun Fight (1975), la actualiza y convierte la temática del duelo de vaqueros a una diferente y mas empática: La guerra de sistemas de 8 bits.
MSX, Amstrad, ZX Spectrum y Commodore 64 se enzarzarán en una batalla para conseguir la supremacía y derrotar a sus contrincantes para conseguir la victoria. En modo 1 o 2 jugadores, solo tendremos que escoger nuestro bando, afilar nuestro láser y no tener piedad del contrincante hasta acabar con él.
Darro99, el encargado del código del juego, nos cuenta sobre su participación en el proyecto:
La historia de este desarrollo comienza el mes antes del último RetroMadrid en el 2018. Erranking habló conmigo sobre realizar un juego de C64 para los torneos del próximo Explora Commodore de ese mismo año, la cuarta edición, y recibí de su parte un correo con un documento en el que se explicaban las reglas, los gráficos de los niveles y los sprites correspondientes. Pero existía un problema ya que yo aún estaba finalizando Sky Diving, el juego que por aquel entonces tenía entre manos y que pude finalizar para presentarlo en la Retro Madrid, en el stand de Explora Commodore, junto a otros compañeros commodorianos, lo que supuso una gran experiencia.
El caso es que me era literalmente imposible acometer el proyecto en un mes escaso y finalizarlo para el próximo evento en Barcelona y tuve que posponerlo para después del mismo, muy a mi pesar.
Tras una cuarta edición memorable, me puse manos a la obra con este nuevo proyecto, y aquí aparecieron los primeros desafíos. El primero de ellos fueron los sprites, donde la definición de los mismos solo estaban realizados hacia el lado derecho, y según las especificaciones del juego cada jugador puede escoger uno de ellos y ambos deben de estar enfrentados. Por lo tanto dependiendo de lo que escogiera el jugador había que hacer espejo de los mismos, algo que no había hecho nunca.
Por suerte, como casi siempre, la red acude en mi ayuda y pude encontrar algoritmos para realizar los espejos de los sprites multicolores. Para esto tuve que realizar la versión para el compilador Kick Assambler, el que uso habitualmente, ya que, la mayoría de los ejemplos eran para ACME o cc65, y no solo eso, también requería la adaptación para los propios propósitos del juego. Como añadido también tuve que hacer el espejo de los sprites monocromo, pero he de reconocer que comparados con los primeros fue mucho mas sencillo.
Otro desafío fue la multiplexación de sprites. Ya había experimentado con ello en mi anterior juego, pero a nivel muy básico, con sprites estáticos que se usan en la portada del mismo. Aquí las naves de cada uno de los jugadores son dos sprites superpuestos, además deben moverse junto con los disparos, mas la representación de los personajes... A priori se me antojaba complicado.
Consulte algunos códigos de multiplexación y ordenación de sprites. Esto era algo que no había tenido en cuenta y que pronto descubrí como fundamental. Para cada barrido de pantalla los sprites deben de estar perfectamente ordenados para realizar el 'truco' de representar mas de 8 sprites en pantalla. Fue todo un desafío mantener los gráficos de cada una de las naves unidos junto a sus disparos mientras se movían, todo esto sin perder la fluidez. El tercer desafío asoma ante mi: El juego requería rapidez, el ritmo debía mantenerse y no podía ralentizase. Tenía que ordenar lo que se ejecuta y en su momento, contando en algunos casos los ciclos de instrucciones y comprobando las interrupciones. Poco a poco todo se optimiza hasta que llega el punto en que la ejecución se alinea cual conjunción planetaria, llegando a un estado de uno con el código. Es una gran satisfacción pues, hasta llegar a este punto, la frustración corre a raudales por tu mente.
Las cosas parecían marchar... Multiplexación, fluidez y los bugs parecen mitigarse... Pero quedaba un detalle y es que los preciosos gráficos de cada uno de los cuatro escenarios ocupaban demasiado. El maravilloso VIC-II del C64 permite realizar la redefinición de los caracteres hasta un máximo de 255, pero los escenarios ocupaban cerca de los 320, un problema la verdad.
Como solución empecé a experimentar con los bancos de gráficos del VIC. En un barrido de pantalla podía ejecutar una interrupción a mitad de pantalla y dibujar los gráficos definidos en un banco diferente al mostrado en la mitad superior. Para aplicar esta solución me embarque en 'recolocar' todos y cada uno de los carácteres definidos para ordenarlos en dos ficheros en un trabajo tedioso y repetitivo. Una vez acabado, no me terminó por convencer. En algunos momentos de los combates la parte inferior de la pantalla parpadeaba, no era un error continuo, parecía cosa de velocidad de proceso, ¿quizás estaba intentando ejecutar demasiadas cosas en un mismo barrido de pantalla? La frustración volvió y significaba volver a reordenar el código, volver a los ciclos... Además en mi vida personal habían aparecido situaciones que afectaban a mi estado anímico y no ayudaban a seguir con el desarrollo.
Tras varias pruebas la cosa no mejoraba, aunque se podía jugar de forma correcta, y de vez en cuando volvía el maldito parpadeo y decidí tomar otro camino. Tendría dos juegos de caracteres, pero no partidos, si no uno para los dos primeros escenarios junto con las pantallas de elección de personaje y pantalla de ganador, y otro con los otros dos escenarios. Solo tendría que cambiar el banco del VIC al inicio de los escenarios o pantallas no afectando al desarrollo de la batalla entre los jugadores. Otra vez tuve que reordenar los gráficos, tedioso aunque algo menos, por repetición y porque estaba convencido de que iba a funcionar.
Por fin estaba satisfecho con el proyecto, la cosa mejoró bastante e incluso las naves ahora iban mas deprisa! Además el tiempo corría a mi favor y quedaban mas de 3 meses para el evento. Me las prometía muy felices y solo tendría que ir depurando las pequeñas cosas que fuesen saliendo y quizás ajustar la jugabilidad. Aquí entran en escena mis testeadores no oficiales a los que agradezco mucho su labor, el propio Errazking y Paco (pacoblog64) a los que de manera furtiva ataco con mis versiones. Hasta ahora gracias a sus comentarios siempre he podido mejorar los desarrollos y mucho.
Entonces Igor me comentó que solo había hecho la versión de dos jugadores y faltaba la versión de uno solo. Esto me pilló a contrapelo ya que, al ser para los torneos de Explora, siempre pensé que sería para dos jugadores. Reconozco que no me apetecía programar la versión de un jugador, me había costado mucho realizar la versión actual y mi estado de ánimo tampoco ayudaba. Quería acabarlo y punto. Por un tiempo me negué a acometer la versión de un solo jugador mientras seguía puliendo algunas cosas que seguían apareciendo en la versión para dos jugadores. Al final me propuse realizar un programa completamente independiente, pues creía que todo en uno no cabria en un mismo programa aunque el tiempo me ha demostrado lo contrario.
Lo primero que me plantee fue la ‘inteligencia’ del oponente, nunca había programado algo así, y empecé a realizar un nuevo código para darle vida a una sencilla pseudo-inteligencia y poco a poco conseguí que el oponente tuviera su propia IA.
Probando el juego me ‘mastericé’. En la primera versión operativa que pase a Paco para probar no podía ganar ni el primer escenario a menos que fuera un experto y se conociera el algoritmo del oponente. Como ya he dicho gracias a Paco pude ajustar la dificultad de los oponentes en cada uno de los escenarios.
Ya estaba casi todo listo, pero aun faltaba un pequeño desafío, la edición física. El juego, como exclusiva para el quinto aniversario de Explora Commodore, debería tener una cinta del mismo y así ayudábamos al evento en su promoción.
Denymetanol dibujó la estupenda portada para la carátula de la cinta, Bieno me ayudó con el montaje del TAP y la grabación corríó a cargo de Star, que hizo un magnifico trabajo con la maquetación y edición de la misma, además de vender la edición en el propio evento.
Este juego ha sido personalmente bastante duro, no solo por los desafíos en la programación si no también porque han ocurrido eventos en mi propia vida que siempre irán asociados a él.
Igor Errazking, ideólogo y grafista del mismo, también nos explica su aporte en el juego:
4MA surgió con el espíritu de servir como juego competitivo para dos jugadores en el evento Explora Commodore. Uno de los problemas que se derivan de los campeonatos es el uso y abuso de juegos clásicos, lo que permite que jugadores avezados se hagan fácilmente con la victoria. De ahí surgió la idea, hacer un juego competitivo en dónde las posibilidades de ganar estuvieran más equiparadas.
Basado en un juego de Gameboy, que a su vez se inspira en un arcade anterior, 4MA coge como base la idea de confrontar a dos jugadores sin mayores pretensiones que hacer del enfrentamiento algo entretenido.
Por suerte Darro tuvo a bien hacerse con el control del proyecto y fue adecuando el material del que disponía con ingentes horas de programación que nunca podré agradecer lo suficiente.
Con la ilustración de @Denymetanol para la portada y la música de @narcisound, Darro dejó el juego por finiquitado y es ahora cuando, como broche final, se ha dispuesto a realizar una versión definitiva para ponerlo a disposición de los usuarios de C64.
Espero que os guste.
Narciso, ex-miembro de The Blasters, se ha encargado del aspecto sonoro y nos habla de su participación en este proyecto:
4M Arena supuso un reto para mi, ya que hacía 30 años que no componía nada para el C64. Para solventar ésta situación utilicé el programa GoatTracker el cual funcionaba de maravilla en mi ordenador con Windows 10. Del GoatTracker lo que mas me costó fue sacar un buen puñado de sonidos (bajos, baterías, leads, pads, synths) que tuvieran una calidad de sonido lo mas cercana al SID del C64 y para ello no hubo más remedio que ir editando sonido por sonido hasta darle ese tono que necesitaba.
La parte de la composición musical fue la más divertida, pues el editor del GoatTracker es una delicia en comparación con el Future Composer que utilizaba antaño en el C64, el cual para hacer sonar una nota tenías que escribir por ejemplo C para que suene un DO, seguido de un número para indicar la octava y además escribir otro par de bytes para determinar la duración de la nota, una cosa mas o menos así: "C-1 D2:02", así con todas las notas de cada una de las 3 pistas o canales que dispone la canción. Toda ésta parafernalia de escribir notas suponía que componer una melodía era todo un machaque de darle al play, escuchar, ajustar, volver a darle al play...... así hasta conseguir que suene bien tu canción.
Volviendo al GoatTracker, siguiendo las instrucciones que trae el mismo programa y preguntando alguna que otra cosilla por los "interneses" de la vida, conseguí averiguar la manera de meter varios "tracks" o canciones dentro del SID, quedando de la siguiente manera: Una melodía para los Main Title o Título Principal, otra melodía para la elección de naves, otra para la fase de lucha del juego y otra más para la pantalla de Winners. Como anécdota decir que la melodía compuesta para la fase de lucha solo ocupa un canal, dejando libre los dos restantes para los disparos y explosiones de las naves y quedó bastante bien la verdad. Como material extra, compuse otro SID con una melodía destinada a la pantalla de carga la cual quedó genial con el gráfico de fondo que pusieron durante la carga del juego.
En resumen:
4M Arena es un duelo entre 2 jugadores, contra otro usuarios o la CPU y que se desarrolla en 4 escenarios diferentes: Space, Moon, Terra y Well of Souls, que dan un toque variado a las partidas y que hacen variar el nivel de gravedad para darle un toque diferentes entre ellas. El movimiento es suave, los gráficos están muy bien cuidados y los diferentes SIDs encajan perfectamente con la temática del arcade. Sencillo y divertido, es ideal para jugar sin muchas mas pretensiones y pasarlo bien.
Un muy buen trabajo realizado por el equipo formado por Darro99, Errazking y Narciso y lleno de detalles. Ahora a esperar que se vuelvan a unir para otro título tan entretenido como este.
0 Comentarios