Unas palabras con Juan Castiñeira (Patagonia)

Patagonia es un grupo de nueva hornada para C64 que comenzó hará poco mas de 2 años. Está compuesto unicamente por dos miembros, ambos programadores y argentinos, Centralperk el fundador del grupo y Jicas un habitual del foro de Commodore Manía; con quién tenemos el gusto de hablar aprovechando el reciente lanzamiento de su Vampire Vengeance. Él mismo nos cuenta sus comienzos, batallitas y el lanzamiento de este tercer título suyo.

  • Nombre: Juan Castiñeira
  • País: Argentina
  • Primer sistema: Drean Commodore 64
  • Historia: programador de videojuegos

¿De que sistemas eres principalmente? ¿C64? Explícanos tu historia con los ordenadores en tu juventud

Mi sistema principal es Commodore 64.
Mi historia empieza a mis 7 años aproximadamente. En 1987 mi padre compró una ¡Commodore 64 Drean! En ese momento no sabía bien de que trataba, solo que podíamos jugar con un joystick a varios juegos. Algunos de los primeros juegos que conocí, en cartucho y otros en cassette: Neptune's Daughters, Kickman, Pitfall, Squish'em, LeMans, Hard Hat Mack, Stop The Express. También aprendí a hacer pequeños programas en lenguaje Basic.
Unos años más tarde, teníamos la Commodore Amiga 500. El salto gráfico y sonoro fue impresionante. Recuerdo cuando vi por primera vez la intro del juego Blood Money, la música de Gods, el gran port de Final Fight II entre otras gratas sorpresas.

A parte de lo de antes, explícanos tu proyecto y las cosas básicas, participantes, herramientas, plataformas, lo que creas interesante.

El proyecto Vampire Vengeance nació como un desafío personal. En 2020 @PoeGames lanza el juego para ZX Spectrum (aquí), y me gustó tanto la idea, la música, el género de plataformas, que me propuse hacerlo para C64 sin saber hasta dónde llegaría. En ese momento tenía en mi haber: varios libros leídos sobre Lenguaje Maquina para C64 que descargué del sitio archive.org, leer algunos blogs en español preferentemente, y mi primer juego 'Cabygame' por supuesto.

https://www.youtube.com/watch?v=lUlL85gT_yA

En Marzo de 2022, comienzo con el proyecto. Mis herramientas, en las cuales me apoyé durante todo el desarrollo son:

  • CBM PRG Studio ©Arthur Jordison para escribir código ensamblador y compilar.
  • CharPad C64 Pro SpritePad C64 Pro ©Subchrist Software para dibujar los sprites y los distintos escenarios.
  • C64 Debugger ©Marcin Skoczylas para debuguear en tiempo real, ver posibles errores en código, estado de memoria, posicionar sprites en pantalla y copiar las coordenadas en el código.
  • Vice ©VICE Team excelente emulador, para probar el juego en un entorno Windows.
  • TSCrunch by Antonio Savona para comprimir el juego y las pantallas. De muy fácil uso, muy potente y rápido.
  • Exomizer by Magnus Lind para comprimir el juego en su totalidad para luego guardarlo en una imagen de disco .d64

Primero comencé la versión 1.00 armando un motor de un típico juego de plataformas. Ya que sin eso, era imposible continuar.

Una vez logrado ese primer paso, seguí dibujando la primera pantalla y creando el juego de caracteres copiando pixel a pixel cada detalle del juego original. Lo mismo con los sprites. Para ello, copié captura de pantalla del juego en su versión de Spectrum, aumenté el zoom y comencé con SpritePad y Charpad a crear cada detalle.


En esta instancia ya tenía una base sólida. Podía convertir en murciélago y volar, detección de paredes, obstáculos y picos para perder vida.

Durante el proceso he creado una rutina de colisiones para los enemigos, detectaban cuando chocaban con la pared para invertir su dirección, y cuando una plataforma terminaba. Pero cuando puse 8 sprites en pantalla, me di cuenta que la rutina estaba consumiendo muchos recursos del CPU, lo cual hacía que todo funcione más lento.
La mejor opción fue quitar esa rutina de colisiones y hacer que los enemigos cambien su dirección cuando llega a una cierta coordenada del eje X. Eso mejoró bastante pero aún quedaba mucho trabajo por delante.

Centralperk, miembro fundador de PATAGONIA, me ayudó bastante en este sentido, aportando detalles importantes sobre el funcionamiento interno del Commodore 64 y sus registros. 

En este GIF se muestra la versión 1.05 con las rasterbar activadas para analizar el tiempo de procesamiento del CPU y así poder optimizar algunas rutinas. El color amarillo muestra el tiempo de ejecución, y en color marrón el tiempo libre.

El desarrollo continuó a paso firme y con mejoras en cada versión: enemigos, optimización de código, pantalla de presentación y Game Over, las 30 pantallas de los 4 actos. Hasta llegar a una versión “jugable”. Fue el momento en el cual decidí contactar al autor original del juego: Ariel Endaraues. Antes que nada, para pedirle su permiso para sacar una versión para C64, que amablemente y con la mejor predisposición aceptó, no solo eso sino también me consiguió los tracks originales de los 6 temas musicales que fueron creados por Bayker.

Un nuevo desafío se me presentaba: conseguir músico para C64. Mis conocimientos con los tracker son muy limitados y mi intención era que el juego tenga la misma música que su original, los 6 tracks que acompañan el juego original son un espectáculo, y así quería que se mantenga para C64. 

El declive:

El proyecto estuvo parado 3 meses aproximadamente… totalmente parado. No conseguía músico y motivos personales, un combo ideal para guardar en el freezer el proyecto.
No hay mal que por bien no venga.  Durante esos meses alejado del código, mi cabeza aún seguía pensando… Fue cuando recordé haber visto en YouTube un canal de covers para C64!!! El canal de et1999cc (Esteban Trujillo). Gran músico, joven entusiasta del chiptune en C64. Lo contacté y tuve un excelente trato, realmente fue un lujo haber contado con su colaboración. Su trabajo lo concluyó en un mes, ni más ni menos, y con una calidad extraordinaria, que superó mis expectativas. Esto me recargó las energías al 100% y retomé el código de cara a terminarlo.

Yo mismo iba testeando el juego en emulador Vice y Centralperk lo probaba en hardware real. Realmente se veía y escuchaba genial.

El proyecto estaba en fase final, era un buen momento para entregar el juego al equipo de testers. Algunos probaron el juego desde su PC con emulador VICE y otros desde su celular con sistema Android, utilizado emuladores para tal sistema. Para mi sorpresa, lo que pensaba que era el final, aún no lo era. Por algún motivo, lo que funcionaba bien en VICE desde la PC, no funcionaba en Android. Si bien no tenía pensado la posibilidad que también se pueda jugar en Android, tomé la decisión de optimizar el código para que también funcione correctamente en dispositivos modernos. Por lo tanto, el resultado fue seguir ajustando detalles y bugs detectados.

https://youtube.com/shorts/51c_uzwLR3U

Ejemplo de bug:

BOD: Bug Of Death.
Se perdían todas las vidas cuando eras atacado en el mismo lugar de inicio.

Mientras corregía los bugs detectados, Centralperk contactó con WEC Wile Coyote, quien pudo hacer la grafica de presentación en tiempo récord. Ya se acercaba la fecha ‘deadline’ de entrega para el evento Flashparty’23. Fue otro lujo y alegría contar con su colaboración. El trabajo final es sublime:


El proyecto llegó a tener su etapa más madura en la versión 1.52 terminado el 22/10/23, justo para la fecha 'deadline' de Flashparty'23, que por esas casualidades también coincidió con la fecha de Halloween.

El 28/10/23 el juego participó en el evento más importante de la Demoscene Argentina:
Flashparty 2023.

Para mi sorpresa y satisfacción, logramos obtener el Primer Puesto con 239 puntos entre otros 5 juegos:

Puedes encontrar a Juan Castiñeira en:

Publicar un comentario

7 Comentarios

  1. Muy bueno Juan! te felicito por este logro. Seguí avanzando y esperamos nuevos lanzamientos!

    ResponderEliminar
  2. Muy buena entrevista!! Felicitaciones Juani!!! Abrazo

    ResponderEliminar
  3. Un diario de desarrollo muy interesante, ojalá veamos muchos más juegos de este nuevo grupo.

    ResponderEliminar
  4. Los speites son ripeados de zorrico

    ResponderEliminar
  5. Enhorabuena por el gran trabajo realizado. Ha nacido una estrella!

    ResponderEliminar
  6. Un salto increíble del juego anterior a este!

    ResponderEliminar