miércoles, 12 de junio de 2019

aMazeing. Programa para generar juegos (1)

Después de copiar el listado del juego Cuarta Dimensión (que ya comenté en esta entrada del blog) me quedé con ganas de ver cómo funcionaba originalmente. Faltaba la parte en ensamblador, y los movimientos de los sprites eran muy burdos. Me decidí entonces a hacer una revisión del mismo y hacer un juego simple pero jugable. Sin embargo, me daba mucha pereza hacerlo al estilo ochentero.

La solución que se me ha ocurrido es programar la herramienta aMazeing, para generar automáticamente juegos con scroll horizontal a partir de la definición de los elementos más importantes: pantalla base, juegos de caracteres, y mapa del laberinto o cueva. Para ello he ido desarrollando una aplicación sencilla que está escrita en el leguaje de programación Java.

La aplicación está en un estado muy preliminar, por lo que iré describiendo los avances de la misma en otras entradas del blog. Y cuando esté terminada la subiré a GitHub.

De momento sólo permite especificar la aplicación en SCREEN 1, y podemos definir el juego de caracteres (patrones) así como los colores de los patrones, y definir el mapa del juego, estableciendo los patrones que aparecerán en las distintas posiciones del mapa. Ahora mismo sólo se puede generar código en BASIC.

Lo primero que se hace es ir editando la tabla de patrones, que en el modo de pantalla SCREEN1 tiene 256 caracteres diferentes, cada uno con dos colores: uno para la tinta y otro para el papel. Y los colores de los caracteres se agrupan en bloques de 8, por lo que tenemos como máximo 32 combinaciones de color diferentes. Se puede modificar la paleta estándar de MSX, que está formada por 16 colores distintos.



La edición de cada patrón es muy sencilla. Por un lado se modifican los pixels, indicando si son papel ("0") o tinta ("1"). Después se especifican los colores para la tinta y el papel.


Una vez que tenemos definidos los patrones, editamos el mapa, y situamos en el mismo los patrones que queremos que aparezcan. Todas estas tareas eran muy muy tediosas en su día, y contar con una herramienta para poderlo hacer de forma gráfica es muy conveniente.


Finalmente, generamos el código del juego. Ahora mismo sólo genera código BASIC, bastante optimizado, pero como se puede apreciar, con desplazamiento muy lento.



El código del programa generado está disponible en GitHub:
 https://github.com/humbertomb/mymsx/tree/master/amazeing/DIMENS41.BAS

No hay comentarios:

Publicar un comentario