5 de Octubre, 2014

Programando juegos para Spectrum

La verdad es que The Legend of Traxtor (ZX) ha sido un poco accidente: no lo planee demasiado y ha sido más un proceso de descubrimiento que otra cosa en cuanto a que funciona, pero hay muchas partes que no están nada bien implementadas (incluso llegando a afectar la jugabilidad; por ejemplo las explosiones bloquean los controles durante demasiado tiempo).

Las herramientas básicas que he usado son las siguientes:

  • Z88DK: compilador de C para máquinas basadas en el procesador z80, lo que incluye el ZX Spectrum (y otros de la época como el Amstrad CPC). Incluye un ensamblador y es bastante sencillo escribir código asm en linea. El runtime no es muy grande, pero en general es más lento y ocupa más espacio que escribir ensamblador a mano (claro).
  • La librería SP1: el Spectrum no proporciona soporte para sprites vía hardware, así que no hay otra que implementar un motor basado en las funcionalidades que sí están disponibles. En realidad no usé sprites en el juego, pero la librería es cómoda para manejar tiles (sobretodo si no sabes qué estás haciendo :P).
  • png2c: una herramienta que he programado para convertir imágenes en código C (datos en realidad) listo para usar con SP1.
  • png2scr: permite convertir imágenes al formato SCR que podemos mostrar en pantalla durante la carga del juego

Aparte existen gran cantidad de programitas que nos pueden ayudar en el proceso, pero la mayoría son binarios para Windows y, aunque muchos de ellos funcionan con WINE, programar png2c y png2scr ha sido entretenido y un buen ejercicio para ayudarme a entender cómo funcionan algunas cosas.

En general Z88DK tiene de todo para empezar, pero si quieres investigar un poco (y para dar un toque final más profesional), recomiendo echar un ojo a otras herramientas que pueden ser úiles (como bas2tap, porque el cargador BASIC que usar Z88DK es bastante limitado). Muchas de las herramientas incluyen el código fuente en C y compilan en Linux sin problemas.

Ya en cuanto a documentación, para Traxtor no necesité mucha porque los ejemplos y el código fuente de SP1 son bastante claros, pero si alguien quiere hacer las cosas un poco mejor a la primera recomiendo ojear How to Write Spectrum Games (de Jonathan Cauldwell, al final de la página; es en ensamblador, pero muy bien explicado) y en general la documentación enlazada en WOS.

Además hay kits para desarrollar juegos, como La Churrera de Mojon Twins (sí, españoles y a estas alturas... ¡leyenda! :D), o el Arcade Game Designer de Cauldwell; que incluso si no nos interesa usarlos, siempre podemos ojear su código fuente cuando nos quedemos atascados ;).

Anotación por Juan J. Martínez, clasificada en: programming, speccy.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: