Tutorial BennuGD para Sega Dreamcast – Gestión de colores

Una vez ya hablado del apartado sonoro y de la no gestión de memoria RAM en Dreamcast, pasamos a hablar de los Assets (ficheros de gráficos) y colores para desarrollar para Dreamcast con BennuGD.

Lo más probable es que tu juego vaya a tener gráficos o conjuntos de gráficos, llamados assets, y con un conjunto de colores o paleta de colores. En este tutorial, te voy a ayudar a administrar de la manera más óptima este aspecto y te voy a dar las razones de porqué trabajar de la siguiente manera.

Déjame decirte de entrada que, si tienes hacer un juego con muchísimos colores y multitud de assets, piénsate 2 veces si de verdad BennuGD es tu lenguaje. ¿Por qué?

ADMINSITRACIÓN DE COLORES EN BENNUGD

BennuGD nos permite trabajar con 8, 16 y 32 bits de colores (Waw!!). Cuántos más colores tengan tus assets, más grande serán en cuanto a tamaño y más espacio ocuparán en RAM.

Como comentaba en post anteriores, hay un problema muy serio con la liberación de RAM en BennuGD para Dreamcast (es inexistente vamos…) y esto hace mella en cómo vamos a crear nuestros assets y cantidad de colores. El motivo es simple, al no poder liberar RAM, tenemos que administrar muy muy bien la cantidad de ficheros y colores que vamos a usar, ya que al no poder liberarlos, si volvemos a recargar colores o ficheros, la memoria irá disminuyendo poco a poco hasta quedarte sin espacio libre.

Para establecer los colores en BennuGD, disponemos de las constantes globales MODE_8BITS, MODE_16BITS y MODE_32BITS, que podemos establecer de la siguiente manera cuando configuramos la pantalla para nuestra Dreamcast.

set_mode(640,480, MODE_8BITS);

set_mode(640,480, MODE_16BITS);

set_mode(640,480, MODE_32BITS);

 

Lo aconsejable es usar una profundidad de color de 8 bits

Las tres opciones son válidas y todas ellas funcionan, pero haciendo varias pruebas y una estimación media, según la cantidad de colores que usemos en BennuGD, habrá más o menos RAM libre. Tal es así que estos son los valores aproximados de ram:

CONSTANTE RAM TOTAL RAM LIBRE IMPACTO EN RAM
MODE_8BITS 16 Mb 12 Mb BAJO
MODE_16BITS 16 Mb 10 Mb ALTO
MODE_32BITS 16 Mb ?¿ Mb EXTREMO

Como podrás ver (sin contar la de 32BITS ya que no lo probé por la cantidad exageradamente corta que ya con 16 quedaban libres) el hecho de usar como mínimo 16Bits como profundidad de color, junto con varias variables y #includes propias de BennuGD cargadas, es un problema serio en cuanto a espacio en RAM, ya que de 16Mb propias de la Dreamcast, nos quedamos con alrededor de 10mb libres, 5Mb ya han sido ocupados…esto no es nada bueno para lo poco que tenemos.

RECOMENDABLE

Aunque parezca que esté echando pestes de BennuGD, no es así. BennuGD es un muy buen lenguaje y framework para desarrollar videojuegos, pero la versión de Dreamcast no está optimizada (por los problemas que sean), eso es una realidad.

No podemos pasarnos en cuanto al uso de memoria y debemos optimizar todos los recursos posibles, así que mi consejo es que si vas a trabajar con BennuGD para Dreamcast, hagas un único fichero .fpg donde almacenes todos tus assets, con una única paleta de colores (256) compartida, ya que la carga/descarga de assets, no va correctamente y cada vez que uses un .fpg de 8bits en código, deberás recargar la paleta de colores y eso implica, que la ram se vuelve a sobrecargar..¿Qué lío no? No es la mejor vía para realizar este tipo de desarrollos, lo normales es dividir la estructura de código y los assets igual, pero este lenguaje no nos permite otra vía si queremos trabajar así.

En el próximo tutorial, explicaré como trabajar con los assets (imágenes) de 8Bits y ficheros .fgp destinados a Dreamcast de manera cómoda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *