Asteroids: estructura del proyecto

Antes de meternos en harina deberíamos pensar un poco cómo vamos a estructurar el proyecto. El proyecto es la forma que tiene CBM prg Studio de organizar los ficheros en ensamblador y otros ficheros asociados (ej. sprites, pantallas, etc.).

Es más, mejor que un único proyecto podemos utilizar varios. Como vamos a ir haciendo refinamientos sucesivos, mejor que trabajar sobre un único proyecto, podemos definir un proyecto, trabajarlo, probarlo y, cuando estén cumplidos sus objetivos, copiarlo como punto de partida para el siguiente proyecto. Así tendremos Asteroids01, Asteroids02, Asteroids03, etc. De este modo será fácil volver a un paso anterior e identificar los avances.

Todos y cada uno de los proyectos (carpetas con un fichero *.cbmprj) tendrán la siguiente estructura:

  • Un fichero “Asteroids.asm”. Será el fichero principal, el punto de partida.
  • Varios ficheros “ConstXX.asm” y “LibXX.asm”, correspondientes a las librerías que utilicemos: sprites, joystick, manejo de caracteres, etc.
  • Varios ficheros “XX.asm”, por ejemplo, “Jugador.asm”, “Disparos.asm”, “Asteroides.asm”, etc. Esto no es más que una forma de organizar el código en bloques autocontenidos, evitando tenerlo todo junto en un único fichero, lo que dificultaría mucho su comprensión.
  • Varios ficheros de recursos, por ejemplo, definiciones de sprites (“Sprites.spt”), definiciones de caracteres personalizados (“Caracteres.cst”), definiciones de pantallas (“Pantallas.sdd”), etc.
  • El fichero “Mem.asm” con el mapa de memoria.

En resumen, algo así para empezar, aunque lo iremos complicando poco a poco:

Asteroids - Estructura inicial

Por su parte, el fichero principal, “Asteroids.asm”, tendrá tres partes principales:

  • Un cargador BASIC. Esto es simplemente para facilitar la ejecución del programa tras su carga.
  • Una parte de inicialización. Esta parte incluirá el código preparatorio que sólo se tendrá que ejecutar una vez o, al menos, una vez por partida.
  • Una parte de bucle de juego. Típicamente todos los juegos tienen un bucle, en el que de forma sucesiva se van actualizando los diferentes elementos (la nave, los disparos, los asteroides, …) hasta que ocurre algo que nos saca del bucle, por ejemplo, que se han agotado las vidas.

Asteroids - Estructura principal

Y lo anterior ya nos hace reparar una cosa: los juegos del C64 no se cargaban, se jugaba una vez, y listo. Se cargaban y se jugaban muchas veces, hasta que el jugador o jugadores se cansaban, en cuyo caso seleccionaban una opción de volver a BASIC (raro) o más bien apagaban y volvían a encender. Por tanto, podemos empezar pensando directamente en la fase de juego, que es lo que sale natural, pero antes o después habrá que meter algo más que permita esa repetición de partidas.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s