Valkyr, nuevo juego de Pícaro Games

Antes de finalizar este 2023 nos llega una regalo desde Pícaro Games en forma de Shoot-em Up. Valkyr es un juego portado por Pícaro Games y original de MSX de 1985 que a su vez es una versión del programado para el poco conocido Jupiter Ace. Dozznar, que en los 80's lo jugó, nos lo traslada a nuestro C64 para que disfrutemos de este particular "matamarcianos". Hacer un juego ya sabemos que no es fácil y se complican las cosas cuando haces una conversión y hay poco margen para la improvisación y el guión ya está escrito, sin poder desviarte del original.

Dozznar nos explica el porqué de todo ya que, como imaginamos, tuvo el juego en su época: ¿Original o copia? Explícanos si hay alguna curiosidad sobre ello; Si te vino en una cinta pirata; Si es el único juego para MSX de la tienda o lo que creas interesante, si lo hay.

El juego en su momento, lo tuve pirata. En mi colegio había un círculo de compañeros que teníamos MSX. Unos 6 o 7, y siempre había intercambio de cintas. Una cosa curiosa es que hubo un momento en que empezaron a llegarnos cintas con juegos de cartucho de Konami. En ese momento no sabíamos que tal cosa fuera posible y fue una gran sorpresa. Las viciadas al Nemesis, Knight Mare, Road fighter, Tennis, Track & Field, etc. fueron épicas, pero entre lo "No Konami" siempre había juegos que destacaban y conseguían que les dedicáramos un poco de tiempo. Este Valkyr estaba entre ellos. Hoy día, lo tengo original gracias a un buen amigo. De hecho me ha regalado este mismo año su antiguo Philips VG 8020 que tenía todavía guardado, junto con una caja llena de juegos originales donde estaba el Valkyr.
 

Explícanos los entresijos del juego, las herramientas y todo lo relacionado con el juego.


Como algunos sabéis, tengo un pasado "emesequisero". Éste, originalmente es un juego de Gremlin que sólo salió para MSX, aunque podéis encontrar una versión muy primigenia para Júpiter Ace. Recuerdo Valkyr como un juego muy adictivo en la época y aunque era bastante sencillo en su desarrollo y mecánicas, tenía varios detalles muy atractivos y de calidad. A destacar:
  • Voces digitalizadas. Característica que se anunciaba a bombo y platillo en la carátula del juego.
  • Los efectos de partículas eran bastante llamativos.
  • La música era muy simple y nunca "in-game", se limitaba a pequeñas fanfarrias para acceder a las pantallas, pero los efectos de sonido eran bastante característicos, con ecos y timbres muy metálicos que daban una ambientación muy lograda.
  • El hecho que cada Pantalla (zona) del juego estuviera dividida en 3 sectores (Pantalla principal, oleadas, y aterrizaje) también era bastante atractivo al jugador.
En definitiva, un juego que nos dejó muy buen sabor de boca a los usuarios de MSX y hoy día, con mi afición al desarrollo de juegos para C64, me pareció un proyecto bonito el convertir este juego para este sistema. Después de un pequeño análisis del juego original vi que, a nivel técnico, no parecía tener ningún obstáculo serio que no me permitiera versionarlo. Se lo comenté a Colin Dooley, autor de la versión original, y amablemente me dijo que por su parte no había ningún problema. Incluso se ofreció para quedar y hablar del juego si lo consideraba necesario. Finalmente, en el mes de Junio, comencé el desarrollo con unos pequeños test de rendimiento.


En cuanto a las herramientas que usa y como trabaja para sacar el juego adelante, él mismo nos lo explica:

Para este juego, no he cambiado de lenguaje, que sigue siendo "C", pero como novedad he estrenado compilador y he usado Oscar 64 que me ofrece alguna ventaja frente al que usaba anteriormente, CC65.

Tiene algunas librerías para tratar Música y Sprites lo que facilita por ejemplo el uso del mutiplexado. Por otra parte, el código máquina generado parece muy optimizado y ofrece un buen rendimiento economizando el uso de la memoria del C64.

En contrapartida, he tenido que adaptar mi manera de programar a este entorno, lo que no siempre es fácil. A la postre, enfrentarte a un nuevo compilador requiere de un trabajo de aprendizaje que tarda en dar sus frutos.

Mas allá del compilador, he usado los habituales SpritePad y CharPad para la creación de los gráficos.

También he tenido que apoyarme en otras herramientas que paso a enumerar:

  • Konv1: Un programa para MS-DOS que convierte diversos formatos para que sean accesibles por el C64. En mi caso, lo he tenido que usar para convertir “simples” (WAV) en ficheros binarios.
  • Audacity: Con él he grabado los “samples” que comento anteriormente y los he tratado para que sean aceptados por el Konv1.
  • BlueMSX: El conocido emulador de MSX, que he usado para capturar snapshots de los gráficos y poder portarlos al C64 vía Char Pad o Sprite Pad. También, gracias a él, he podido jugar al juego original usando "savestates" para poder examinar a fondo todas las mecánicas y pantallas del juego y poderlas versionarlo lo más fielmente posible.
  • Paint: Aunque primitivo y limitado, el Paint es todavía un práctico aliado para el retoque de imágenes bitmap sencillas.

El compilador Oscar64 es el de DrMortalwombat? Sé que él también programa en C. ¿Qué nos puedes explicar al respecto?

Este compilador es de DrMortalwombat. Por lo que he podido ver en su Itch.io, parte de su producción de juegos está hecha con su propio compilador aunque no toda. Por ejemplo "Gates of the Ancient" está hecho en ASM. Destacar que no solo se ha limitado a crear el compilador si no que lo ha dotado también de bastantes funciones y librerías propias que lo convierten casi en un "maker" estilo MK1/2 , AGD, etc, tan populares en otras plataformas.

Cada programador tiene su método y forma de estructurar la programación de un juego. El cómo gestiona este proceso y lo va culminando nos lo resume aquí el propio Dozznar:

El proceso de creación es bastante sencillo. De entrada, solo tienes que diseñar una nave y hacer que se mueva horizontalmente en la parte baja de la pantalla. A partir de ahí, ir creando todo lo que hay alrededor.... :-P

Es broma, pero en realidad no tanto. Me refiero a que gente como yo, sin mucho conocimiento sobre diseño de videojuegos, nos embarcamos en los proyectos de esa manera. Sí que haces un primer análisis preliminar para (más o menos) asegurarte de que nos vas a morir en el intento y que lo que piensas hacer es asumible para tus capacidades. A partir de ahí, vas improvisando sobre la marcha, troceando los problemas en pedazos más y más pequeños y afrontando cada uno de ellos en el momento. Si tienes las ideas más o menos claras, te atascarás en mayor o menor medida en determinadas fases de la creación, pero el proyecto saldrá adelante. En caso contrario, corres el riesgo de llegar a callejones sin salida que te obligarán a replantearte las cosas y reescribir mucha parte del código. En realidad, todo ello forma parte de la diversión. Es como cuando juegas con un videojuego de aventuras o conversacional. El atractivo reside en pensar y probar soluciones para avanzar en él. Hacer juegos en el fondo es un juego.

¿Qué consejos darías a alguien que quiere iniciarse en la programación? Seguramente tu programas en C porque tienes conocimientos de este lenguaje pero ¿animarías también a usar estas herramientas antes que meterse en el ensamblador?

Más importante casi que el  lenguaje de programación, es el conocimiento del funcionamiento del C64. Mi consejo sería empezar con el propio manual del C64. En la parte donde empieza a hablar de los gráficos y la pantalla. Por ese lado aprendí bastante al principio. Explica los modos gráficos, como activarlos o desactivarlos, la matriz de pantalla, los caracteres personalizables, el funcionamiento de los sprites etc. Si se comprenden las  explicaciones y los programas de ejemplo, ya tenemos un paso importante. Luego, en mi caso desempolvé el "C" ya que era un lenguaje que aprendí (a nivel básico) en su momento. En todo caso, si las nociones que se tienen son de programación en BASIC, recomiendo empezar por "C" ya que su estructura es mas similar al BASIC que al de ASM. Poco a poco se pueden ir haciendo pequeños fragmentos de juego en ASM que se incorporan fácilmente en los fuentes "C". En todo caso, ya sea con ASM, "C" o cualquier otra herramienta/maker, creo que es buena idea plantearse un objetivo asequible y completarlo. Hacer un pequeño juego entero e ir cogiendo experiencia.

Como anécdota comentaré que mi primer gran objetivo, fue hacer un "juego" en el que pusiera "Hola mundo" en el centro de la pantalla de un Commodore 64. Ese es el nivel del que partía XDD. Cuando ves cómo el compilador genera el ".PRG" que luego funciona perfectamente en la máquina te llevas un buen subidón. Luego, cambias el color al texto, añades un bucle que cambia rápidamente el color del borde... y poco a poco te vas enganchando a medida que vas viendo resultados.

Dozznar ha sabido acompañarse y al igual que hizo con Randoom, para el sonido cuenta con Narcisound, para el gráfico de carga tiene a Toni Gálvez.y el propio Dozznar es el que se ha encargado de la programación, los samples del juego y los gráficos del mismo.

Ya metidos en el juego, nuestro objetivo es destruir los bugs alienígenas y recoger las cápsulas de energía para rellenar la barra que tenemos en la parte inferior de la pantalla. Una vez hecho, antes de que el contador de tiempo llegue a 0, se activará nuestra bomba de pulso que podremos detonar para avanzar al siguiente sector. Aquí deberemos enfrentarnos a los alienígenas que volarán en formación en una serie de oleadas. El objetivo, matar el mayor número de enemigos ya que cada uno de ellos nos dará un segundo de tiempo extra en el siguiente nivel. Completado este sector, la siguiente pantalla es un bonus de puntuación. Obtendremos 1.000 puntos por cada segundo sobrante en el cronómetro al aterrizar nuestra nave en la base. Ojo, aunque es una pantalla de bonus, si nos estrellamos perderemos una vida. Siempre queda la opción de esperar suspendido en el aire hasta que acabe el tiempo y nos aseguraremos el pase a la siguiente zona (nivel).

Enlaces:

  • Podéis acceder al Itch.io de Pícaro games en ESTE enlace.
  • Podéis jugar Online al original de MSX en ESTE enlace.

Publicar un comentario

2 Comentarios

  1. Excelente entrevista Bieno, de verdad que se te da bien esta parte periodística y del juego y su autor mi amigo Diego no tengo más que palabras orgullosas de sus avances en el C64, cada vez se supera y aunque este es un port y no un juego original como Randoom tiene un mérito increíble y es del portafolio de arcades que me fascinan. ¡Enhorabuena!, por cierto, me encantó está frase y me la robo: " Hacer juegos en el fondo es un juego."😉👾🕹️ Tú amigo Kabuto

    ResponderEliminar
  2. Excelente entrevista y muy interesante saber las herramientas que utilizan lo creadores de juegos. El juego en sí la verdad es que me gusta, es muy dinámico y las mecánicas variadas lo hacen entretenido. Ya espero con ansia el siguiente juego de Diego :)

    ResponderEliminar