Bennu Game Development

Foros en Español => Novedades y Releases => Topic started by: SplinterGU on August 09, 2017, 03:03:31 PM

Title: r342 liberada
Post by: SplinterGU on August 09, 2017, 03:03:31 PM
Cambios desde la r335 a la r342 (estaba debiendo detalles de algunas releases, ahora las incluyo aca)

r335
[bugfix] fix en dirty rects
[bugfix] crash con mod_debug

r338
[bugfix] put_screen bug

r339
[bugfix] mapas transparentes en 32bits (bitmap_analize bug)

r342
[bugfix] variables globales en libmode
[bugfix] si un argumento de una funcion/proceso tenia el mismo nombre de una variable global, esa variable global se usaba dentro de la funcion/proceso. Ahora los parametros nombrados igual que una variable global son considerados locales a esa funcion/proceso. (no modifican la global)
[feature] Se agrega soporte de archivos de configuracion (.ini)

Soporte de archivos de configuracion:

Deben ser nombrados igual que el dcb pero con la extension .ini, por ejemplo, si nuestro dcb se llama "mijuego.dcb", el archivo de configuracion debe ser nombrado "mijuego.ini"

un ejemplo de archivo de configuracion:


# comentario 1
; comentario 2

; Seccion [bennugd] es usada por bennugd
; todas las keys son opcionales

[bennugd]

video.mode=320x240x32 ; <ancho>x<alto>[x<profundida>]
video.fullscreen=0 ; 1=pantalla completa - 0=modo ventana

# video.scale_resolution=800x600 ; <ancho>x<alto>
# video.scale_resolution_aspectratio=0 ; 0 = normal
                                       ; 1 = izquierda
                                       ; 2 = abajo
                                       ; 3 = derecha
# video.scale_resolution_orientation=0 ; 0 = ajusta la imagen a la ventana
                                       ; 1 = preserva el aspecto



(http://forum.bennugd.org/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABs0lEQVQ4jY2SP4viQBiHX0UQWz/AXb+VX8Iu/YqFhdhcd5BKEOTKC9jJFYrFgo3FIjYiCRauhTCQDMp4bJFklzCuLJLOWNj8rpDMJt7u7Q08xQzze953/hAR0el4QJLw8KR4fXkE/Wtch01zjP6gmxLsd9uPJafjAf1BF82WjmZLR61eRa1eVfNmS4cMxP8JksGk6FPB6XjAii1Qq1fBBYMMBL79+InvDIrbB0CzIpSmQHF0RnF0vkiTFxZX7A+6MOzwU0FxdEZKYJpj1fp1eO5KzF0JzYreF/iekzr77QMUhh2q1zDsUIULPQl6fXkEFww53cWKLWCaY3DBVMuaFWHuSsT7fM/5W5DTXYUMBGQgUJoCpelFst9tcc84DDuE7znQrAiFnrwIkuGY/W6rBIYdQgYC7RmHZkXwPQf3jL8JiCglISLKVCaqzfhZfc9RcMFwc/eMfGd9EWQbS+R0F9nGEtnGEpnKBJnKJFWxPNygPNygPePggqE942nBdTjG9xyUhxvVcqEnsWILrNjiTfCRJN9ZI99Zp8LxWsy73ztTmYCI6ObuGV/7Tym+/PqtICL6A7F/dNYyWabFAAAAAElFTkSuQmCC)
Title: Re:r342 liberada
Post by: gecko on August 09, 2017, 03:32:42 PM
Copado lo de los .ini.

Setea un valor inicial que después en el codigo podemos cambiar? Podemos definir variables o algunas otras cosas?
Title: Re:r342 liberada
Post by: JaViS on August 09, 2017, 05:54:45 PM
Interesante, que valores soporta el ini?
hay que hacer algo desde el lado del codigo para leer/escribir valores?


Saludos!
Title: Re:r342 liberada
Post by: SplinterGU on August 09, 2017, 06:44:01 PM
Quote from: gecko on August 09, 2017, 03:32:42 PM
Copado lo de los .ini.

Setea un valor inicial que después en el codigo podemos cambiar? Podemos definir variables o algunas otras cosas?

gracias

estos son iniciales, despues se pueden cambiar en el codigo con set_mode, etc.

video.mode
video.fullscreen

estos son fijos, una vez seteados no se cambian desde codigo, se supone que se setean para ajustar un juego a la pantalla de un dispositivo:

video.scale_resolution
video.scale_resolution_aspectratio
video.scale_resolution_orientation

Quote from: JaViS on August 09, 2017, 05:54:45 PM
Interesante, que valores soporta el ini?
hay que hacer algo desde el lado del codigo para leer/escribir valores?


Saludos!

los valores son los del ejemplo, el ejemplo, seria la documentacion.

al momento, solo a nivel engine (modulos/core)

facilmente se puede crear un modulo mod_config, que recoja todos los sections, keys y values que el callback de configuracion da, y luego ofrecerlos para poder ser leidos desde el codigo.

pero actualmente no se pueden manipular desde codigo bennugd... el escribir tambien podria ser posible en un mod_config.

(interesante idea...)
Title: Re:r342 liberada
Post by: l1nk3rn3l on August 09, 2017, 07:03:51 PM
 ;D  Buenas noticias maestro..

tengo sugerencias..  ::)

1. que desde codigo se pueda llamar a otro dcb.. digamos desde la mod_system 
una funcion execute_dcb("app2.dcb");  yo creo que con esta bastaria... volviera a llamar
al void main()  de c++  por asi decirlo... pero con el parametro del nuevo dcb..
seria util para las consolas/mobiles..  y otros

2. desde el archivo de configuracion se pueda especificar el dcb con el cual comienza el juego
si aparecen varios , deberia aparecer una lista para escoger

["data.mb4", "juego tetris"] ,
["main.dcb", "juego naves"] ,
["main2.dcb", "juego rts"], ... .....


Gracias
Title: Re:r342 liberada
Post by: SplinterGU on August 09, 2017, 07:08:22 PM
Quote from: l1nk3rn3l on August 09, 2017, 07:03:51 PM
;D  Buenas noticias maestro..

tengo sugerencias..  ::)

1. que desde codigo se pueda llamar a otro dcb.. digamos desde la mod_system 
una funcion execute_dcb("app2.dcb");  yo creo que con esta bastaria... volviera a llamar
al void main()  de c++  por asi decirlo... pero con el parametro del nuevo dcb..
seria util para las consolas/mobiles..  y otros



Gracias

esto lo podrias hacer con un system, aunque imagino que si en la consola no puedes llamar a un ejecutable ya no serviria, el problema con la sugerencia es la limpieza de la memoria, seria bastante complejo limpiar todos los recursos reservados, contando incluso que algunos no son controlados por el motor, como ser allocs del usuario... seria bastante complejo hacerlo prolijo.
Title: Re:r342 liberada
Post by: l1nk3rn3l on August 09, 2017, 07:13:22 PM
seria algo asi como un exit();

pero que cuando termine de liberar bennu tenga una variable global que indique que no termine..

sino que ejecute otra vez el main o el run_dcb..

seria muy util en consolas y en moviles.. ya que ejecutar algo desde consola es dificil / requiere permisos / o no esta disponible...
Title: Re:r342 liberada
Post by: SplinterGU on August 09, 2017, 07:26:39 PM
podria ser, llamar a un dcb como si fuera una funcion y cuando este termine, continue en dcb principal.

aunque hay que hacer un gran refactor del motor, eso si, seria mas factible.

lo de ejecutar otro dcb que reemplace el actual, no seria imposible, pero si bastante complejo, y quedaria sin poder liberar todos los mallocs que el usuario hizo.
Title: Re:r342 liberada
Post by: Jate on August 10, 2017, 02:30:57 PM
Aun estoy muy verde en el tema, asi que pregunto desde la ignorancia:

Y seria posible lanzar un programa externo y que el bennu quedase en suspension o algo asi?

Lo que quiero decir es que si podria hacerse como un front-end o un launcher de movil para ejecutar otras aplicaciones temporalmente.

Como ejemplo se me ocurre el Day of the tentacle que desde el juego puedes ejecutar el Maniac Manion que es un juego externo, no?
Title: Re:r342 liberada
Post by: SplinterGU on August 10, 2017, 04:45:41 PM
Quote from: Jate on August 10, 2017, 02:30:57 PM
Aun estoy muy verde en el tema, asi que pregunto desde la ignorancia:

Y seria posible lanzar un programa externo y que el bennu quedase en suspension o algo asi?

Lo que quiero decir es que si podria hacerse como un front-end o un launcher de movil para ejecutar otras aplicaciones temporalmente.

Como ejemplo se me ocurre el Day of the tentacle que desde el juego puedes ejecutar el Maniac Manion que es un juego externo, no?

en movil desconozco, eso lo puede responder josebita, desde PC, si se puede.
Title: Re:r342 liberada
Post by: l1nk3rn3l on August 10, 2017, 10:46:07 PM
Hay forma de soportar resoluciones grandes como widescreen

1024×576, 1152×648, 1280×720, 1366×768, 1600×900, 1920×1080, 2560×1440 and 3840×2160

no se si es problema de SDL , pero intento usar inclusive constantes de bennu como M1280X1024

y explota...

este maximo funciona normal...

set_mode (1024,768,32);                     
 
en adelante crashea...    :-[

Internamente esta limitado o el SDL 1.3 no soporta ?
Title: Re:r342 liberada
Post by: SplinterGU on August 11, 2017, 02:02:39 AM
en bennugd no hay limite, hasta 9999x9999 deberias poder, el tema es que lo soporte el operativo/driver de video/SDL, etc, resoluciones extrañas no las va a tomar.

con respecto a las constantes, no todas las constantes que quieras existen.
Title: Re:r342 liberada
Post by: Jate on August 11, 2017, 10:02:18 AM
Quote from: SplinterGU on August 10, 2017, 04:45:41 PM

en movil desconozco, eso lo puede responder josebita, desde PC, si se puede.

Gracias, me mirare las funciones con tranquilidad. Es dificil encontrar tiempo para todo ;)
Title: Re:r342 liberada
Post by: l1nk3rn3l on August 11, 2017, 02:22:14 PM
Quote from: SplinterGU on August 11, 2017, 02:02:39 AM
en bennugd no hay limite, hasta 9999x9999 deberias poder, el tema es que lo soporte el operativo/driver de video/SDL, etc, resoluciones extrañas no las va a tomar.

con respecto a las constantes, no todas las constantes que quieras existen.


Gracias    ;D
Title: Re:r342 liberada
Post by: Ryo Suzuki on August 13, 2017, 11:25:22 AM
Gracias por el update. Gran trabajo.

Quote from: l1nk3rn3l on August 09, 2017, 07:03:51 PM
1. que desde codigo se pueda llamar a otro dcb.. digamos desde la mod_system 
una funcion execute_dcb("app2.dcb");  yo creo que con esta bastaria... volviera a llamar
al void main()  de c++  por asi decirlo... pero con el parametro del nuevo dcb..
seria util para las consolas/mobiles..  y otros

2. desde el archivo de configuracion se pueda especificar el dcb con el cual comienza el juego
si aparecen varios , deberia aparecer una lista para escoger

["data.mb4", "juego tetris"] ,
["main.dcb", "juego naves"] ,
["main2.dcb", "juego rts"], ... .....

Creo que sería genial, la verdad.
Title: Re:r342 liberada
Post by: Drumpi on August 18, 2017, 05:34:55 PM
Genial, ¡¡nueva release!! Esta noche cenamos bennu frito :D

Veo cambios que se andaban pidiendo a gritos desde hace tiempo (ese modo 32bits se sigue resistiendo ^^U) e interesante adiciones. Lo del ini es muy interesante, porque así veo que podemos ahorrarnos código... Lo que no significa que los juegos sean compatibles a todas las resoluciones (es que ya veo a Futu pidiendo ports a punta pala :D).

Luego le echo un vistazo, aunque no creo que note los cambios ^^U

Gracias por tu trabajo, Splinter!!
Title: Re:r342 liberada
Post by: blostec on September 11, 2017, 08:22:59 PM
Actualizado a la última release, gracias Juan. Por cierto, no he visto que nadie lo mencionara pero BennuGD ya tiene 10 años, y parece que fue ayer cuando empezó esto. Felicidades a todos y en especial al SplinterGU!!
Title: Re:r342 liberada
Post by: SplinterGU on September 12, 2017, 12:48:21 AM
gracias blostec!
Title: Re:r342 liberada
Post by: Futu-block on October 05, 2017, 11:50:47 AM
Quote from: Drumpi on August 18, 2017, 05:34:55 PM
Genial, ¡¡nueva release!! Esta noche cenamos bennu frito :D

Veo cambios que se andaban pidiendo a gritos desde hace tiempo (ese modo 32bits se sigue resistiendo ^^U) e interesante adiciones. Lo del ini es muy interesante, porque así veo que podemos ahorrarnos código... Lo que no significa que los juegos sean compatibles a todas las resoluciones (es que ya veo a Futu pidiendo ports a punta pala :D).

Luego le echo un vistazo, aunque no creo que note los cambios ^^U

Gracias por tu trabajo, Splinter!!

no te creas, llevo una racha de desanimo, y eso que bennu es el unico lenguaje que me interesa
Title: Re:r342 liberada
Post by: folken on October 05, 2017, 02:08:14 PM
Excelente trabajo maestro Splinter, tener updates de Bennu me imagino requiere bastante esfuerzo de tu parte, te felicito.

Saludos  ;D ;D ;D
Title: Re:r342 liberada
Post by: SplinterGU on October 06, 2017, 01:34:23 AM
gracias folken!
Title: Re:r342 liberada
Post by: hokuto40 on April 26, 2019, 08:41:33 AM
Hola SplinterGU.

Ya no vas a actualizar mas bennugd,no tienes pensado añadirle nuevas funciones para facilitar el desarrollo de los juegos.

Si quieres sugerencias,tienes una buena cantidad en el apartado de divgo,crees que alguna de las sugerencias que he hecho se podrian introducir en bennugd.
Title: Re:r342 liberada
Post by: panreyes on April 26, 2019, 09:13:08 AM
BennuGD 1 está actualmente abandonado, ahora está dándole caña a BennuGD 2.0 en sus ratos libres.

Quizás para la nueva versión se puedan implementar, pero no sería mala idea llevarlos a cabo en el código de usuario para poder portar dicho código a diferentes div-likes si es necesario.
Title: Re:r342 liberada
Post by: SplinterGU on April 26, 2019, 11:35:02 AM
no esta abandonado totalmente...
Title: Re:r342 liberada
Post by: SplinterGU on April 26, 2019, 11:37:51 AM
estos dias estoy intentando buscar espacio de tiempo para retomar los cambios que tenia en la version bennugd1, y de ahi adaptar esos cambios y fixes a bennugd2 (los que apliquen)

bennugd2 ya tiene varias/muchas (o muchas/varias) cosas nuevas...
Title: Re:r342 liberada
Post by: Futu-block on April 26, 2019, 03:01:16 PM
hype hype
Title: Re:r342 liberada
Post by: hokuto40 on April 26, 2019, 05:01:21 PM
Ok.Seguire de cerca bennugd2
Title: Re:r342 liberada
Post by: blostec on April 26, 2019, 08:15:26 PM

Excelente noticia SplinterGU, gracias por seguir dedicando tiempo a este gran proyecto. Seguiré atento para actualizar si subes una nueva release.
Saludos!