lunes, octubre 19, 2009

Programando un RPG en BASIC para MSX (I)

Ultimamente no tengo mucho tiempo libre, pero entre rato y rato (como por ejemplo momentos del tipo se-me-han-hecho-las-7-de-la-mañana-trabajando-y-tengo-que-volver-en-dos-hora-que-mas-da-no-dormir) he empezado a programar un pequeño RPG en BASIC para MSX.

Principalmente lo estoy programando en PC con el openMSX y cuando estoy en casa paso el BAS a mi MSX via diskette de 3.5. En general estoy editando dentro del mismo editor BASIC, ya que puedo ejecutar instaneamente y ya me va bien tal cual.

El juego esta inspirado en los Ultima clásicos. En realidad la idea de hacerlo me vino cuando supe que tanto Akalabeth como el primer Ultima se habían programado en BASIC en un Apple II.
También me he inspirado en juegos RPG-aventura de Spectrum como el "Ojo del Guerrero de la Estrella" o "El Misterio de la Montaña de plata"; aunque quiero un poco mas de velocidad, sobretodo al dibujar al escenario y más jugabilidad actual (vamos, que cualquiera se lo pueda pasar).
Para poder terminarlo en un tiempo finito, el juego esta muy simplificado. Hay una area, una isla, con dos pueblos, un bosque; todo compactado en un total de 4 x 4 pantallas.

Después de investigar un poco los modos de pantalla del MSX me decidí por usar el modo SCREEN 1, usando el texto como tiles, para poder imprimirlos con PRINT en vez de con VPOKE. De esta manera solo utilizo VPOKE para las tiles y sus respectivos colores.

Para empezar hice un pequeño editor de mapas en Flash que luego me escribia las lineas DATA de las pantallas. Como imprimo el escenario con PRINT, no es mas que una tira de letras, hasta que se reescriben los caracteres. Estos tiles los cree con el MSX Tile Editor y de ahí tambien exporte las lineas DATA.
Todas las tiles son graficos 8 x 8 y las he dibujado intentando imitar el estilo del primer Ultima, aunque en mi caso son la mitad de pequeños. Al principio todas las tiles estaban en blanco y negro, pero buscando por documentacion en internet descubrí donde pokear para cambiar los colores, así que en la versión actual todo esta un poco mas alegre. Supongo que de haber estado mirando las versiones de Apple II, todo el texto lo escribí en mayusculas, lo cual me vino de perlas por las limitaciones de colorido en este modo. Los gráficos son cutres, pero ya me gusta que tenga este aspecto.
El sprite del protagonista tambien se escribe como un caracter, por lo que solo se mueve de bloque en bloque; pero dado que ese es el estilo de juego que busco (cada movimiento = un turno), ya me va bien. Guardando el caracter de fondo y volviendolo a imprimir cuando se mueve cualquier elemento se puede crear facilmente le ilusion de movimiento sobre un background.

Así que de momento ya tengo un editor, un personaje y un mundo navegable. Ahora falta poblar el mundo de personajes y acabar de de crear el escenario. El juego funciona perfectamente en mi MSX2 Sony, cargandolo desde diskette. Para el siguiente articulo, espero tener el juego casi terminado (¡qué optimismo!). Creo que me quedan muchas cosas que decir, pero ya lo dejo para la proxima vez.

1 comentario:

ale/pepino dijo...

¡Molaría jugarlo cuando lo tengas! Tiene buena pinta.