Estrenamos el tag “Making of” enseñándoos un escaneo de una de las páginas de cuaderno de cuadritos que rellené en un viaje desde Sevilla hasta casa de mis padres, en mi pueblo. Durante ese viaje diseñé todas las fases de Nanako in Classic Japanese Monster Castle. Poco antes de salir de casa había terminado de programar el motor completo.
Cada fase ocupa 21 bytes. El primero de ellos contiene información sobre las plataformas. Si os fijáis, hay ocho plataformas posibles en cada pantalla. Cada bit del primer byte de cada pantalla indica si la plataforma correspondiente está o no está. Si os fijáis en el escaneo, podéis ver el patron de bits dibujado sobre cada pantalla, así como su valor decimal.
Los siguientes 10 bytes nos dicen donde se ubican los objetos no móviles (calaveras, cajas azules o jarrones). Los cuatro bits menos significativos indican la coordenada X del objeto y los cuatro más significativos la coordenada Y. El tipo de objeto se calcula al azar cuando se pinta la pantalla. De la misma forma, los últimos 10 bytes nos indican dónde tenemos que dibujar las cajas rojas móviles. Después de esto, el programa se olvida de su ubicación. El motor del juego opera única y exclusivamente con la información que hay en el buffer de pantalla (con los tiles).
En el buffer de tiles, de 24×16, cada casilla puede tener un valor 0 (traspasable), 1 (no traspasable) o 2 (inicio de caja). Una caja, en el buffer, se representa por una fila 2, 1 y otra fila 1, 1. De este modo podemos detectar perfectamente la ubicación de una caja, aunque tengamos varias contiguas o apiladas.
Y poco más. Con todas estas artimañas tenemos que el mapa del juego ocupa nada más y nada menos que 525 bytes. De hecho, en la versión original de Speccy había un hueco para 25 pantallas más… ¿Alguien se anima a diseñarlas?
Para más señas, podéis mirar el código fuente de la versión de Amstrad CPC, descargable desde la ficha del juego.
Me encantan los entresijos de los juegos. 😀
Muy interesante. Me sirve de guía para el planteamiento de un jueguillo que quiero hacer…
¡He! Que bien 🙂
La verdad es que parece todo muy optimizado, no sé si sería capaz de volver a pensar en bits y bytes para optimizar tanto :O
CRACKS!!! con lapiz y papel, con un par de …ubrhes?.
Genial, simplemente genial. Siempre he visto virtud en la sencillez, en lo óptimo e inteligentemente simple. Chapó tío.
Astjim
Jejeje, eso si, al nath se le murieron 4 de las 7 neuronas que tiene haciendo los mapas xDDDD