Nueva versión de este port, ahora con la posibilidad de alternar "al vuelo" entre gráficos originales y 16 bits
Después de publicar la versión 1.0 de este port, empecé a trabajar para añadir el cambio de gráficos al vuelo. Esto ya estaba implementado en el port de C+SDL, pero no era prioritario para una versión inicial. Lo importante era finalizar el juego en Godot.
El mecanismo es sencillo, al pulsar la tecla C una variable pasa del valor 0 al 1. También se modifica otra variable que establece que set de gráficos debe usar, siendo 0 el conjunto de gráficos originales y 1 el conjunto de gráficos en 16 bits.
Los nodos principales en ejecución reaccionan al cambio de la primera variable, forzando a sus nodos "hijos" a hacer el cambio de gráfico (si corresponde). Una vez terminados todos los hijos la primera variable vuelve a su valor 0.
(Todo lo dicho se puede ver en el código fuente)
Esta parte es sencilla. Jean, los enemigos y objetos son del tipo "AnimatedSprites2D" así que es suficiente con crear una nuevo tipo de animación y añadir los nuevos diseños de 16 bits. En cuanto ese nodo recibe de su "padre" la orden de cambiar, consulta el valor de la variable que indica en que set gráfico está y carga la animación correspondiente.
Aquí la cosa se complica. En este caso el tileset son el suelo, paredes, techos y algunas decoraciones (como las sillas de la entrada a la abadía). Su tamaño es de 8x8 píxeles y es independiente de cada habitación.
En el port de C+SDL fue algo muy fácil: sustituir un set de tiles por otro en la variable que guardaba esos tiles. El cambio era instantáneo y sin necesidad de hacer pasos extra (aparte de la orden de cargar el nuevo fichero PNG).
Intenté lo mismo con Godot pero obtuve una pantalla en negro. Investigando en la documentación y por Internet, encontré que la forma de conseguirlo iba a ser distinta.
Hay que generar un segundo tileset y decirle a la escena principal si cargar uno y otro. ¿Que significa esto? Pues volver a dibujar todas las habitaciones del juego con el nuevo set gráfico.
Este trabajo me llevó varios días, por suerte el sistema de diseño de Godot me permitía tener el tileset original debajo a modo de plantilla. Esto aceleraba el nuevo proceso de dibujado.
Tras terminar el redibujado y superar las pruebas de testeo, aproveché para corregir algunos tiles faltantes en la versión 1.0. Exportar el juego a arquitecturas x86 y ARM (32 y 64 bits) y... ¿ahora que?
Salvo que tenga algún fallo que no haya detectado, no voy a sacar nuevas versiones del juego. Al menos por un tiempo. Me gustaría trabajar en nuevo port. Tengo alguna idea, pero debo ver si soy capaz de llevarlo a cabo.
24/02/2025 - Personal