A PAck of classic GAMEs for BEnnugd

Started by DCelso, November 05, 2008, 12:03:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

estuve leyendo las reglas del proyecto, queria comentar algunas cosas que pueden servir...

Tanto las variables globales, variables locales, const, defines, procesos y funciones, una vez escritos en el proyecto/juego, todos los procesos del juego van a tener estas variables. La excepcion a esto son las variables publicas y privadas, que solo las contienen los procesos que las crean. Tambien es posible usar #undef, pero el #define no molesta porque solo es en tiempo de compilacion. (Regla 3, que solo habla de variables globales y consts, y no tiene encuenta lo otro... Yo quitaria esa regla.)

Yo haria los juegos por separado, haciendo un main menu, con la opcion de configuracion de teclas/sonido, y otras opciones que pueden ser utilizadas por cada juego en un archivo separado, y este archivo con estas funciones deberia ser incluido en cada juego, de forma que el principal tendria opciones de configuracion y ejecutaria al juego que se elija, en el juego que se elija el usuario puede ir al "menu (submenu en realidad)" con opciones de configuracion y otra que se necesite y una opcion mas de abondonar la partida, con lo que regresearia al menu principal con todos los juegos... de esta forma los juegos tendran todos el mismo menu de configuracion (salvo que se necesite una configuracion extra en algun juego especifico) con el mismo look&feel... y toda la historia...
Todo esto no es algo complicado de hacer, y resultaria muy util.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

me encanta esta forma de hacer el menú, así los juegos que utilizan el mouse  o alguna forma específica de cualquier cosa se puede configurar de ésta forma.

Buena idea Splinter.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

#183
hola, primero que nada unas disculpas por estar tardando tanto los proyectos, pero he entrado en periodo de exámenes y trabajos finales. El wiz ya lleva más de la mitad y el conecte pues ya lo vieron. Aunque en realidad escribo esto porque me he hecho un código para exportar e importar los gráficos de los juegos.

El código consiste en un prg que te permite dada una carpeta con un fpg adentro (y el prg también), sacar todos sus gráficos y un archivo con cada uno de sus puntos de control (dentro de la carpeta, y un código con el nombre del fpg).

Y otro código que te permite dado la carpeta producto del anterior recrear el fpg original .

ésto nos permitirá subir la carpeta con los gráficos y los archivos binarios que nos generen el fpg en lugar de los gráficos normales, y de ésta forma no perder los puntos de control de ellos, y recrear los fpgs cada uno a la hora de descargar nuestros juegos.

Espero explicarme.

El único problema es que al exportar un png, el color transparente se transforma en blanco, me doy cuenta que esto sucede hasta en el editor fpg, así que supongo que no es cosa de mi código, por tal motivo pregunto: Splinter... ¿Qué puede ser?  :'(   ... :) Bueno, dejo el código para el uso de todos, si el problema es mío, entonces ¡¡¡ayuda!!! de lo contrario, entonces también ¡¡¡ayuda!!!  ... Hasta luego :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

#184
cuando decis "sucede hasta en el editor de fpg", cuales son los otros programas?
fpg de que profundidad de color?

Los puntos de control seria interesante guardarlos en algun archivo de datos o en algun documento.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Hola prg, he probado tu import y export y van bien
He hecho lo siguiente, usando un fpg de 8 bits mío he extraido las imágenes con el extract y he visto que hacía mal los archivos de puntos. Te falta inicialicar el indice de puntos a cero en cada nueva imagen
es decir

if (map_exists (0,z))
save_png(0,z,z + ".png");
otro_os=fopen(z+ ".pdc",o_write);
puntos = 0; // <----------------------- esta línea.
repeat
hay=get_point(0,z,puntos,&xx,&yy);

Luego he visto las imágenes (que las extrae en 32 bits de color) con el GIMP y el trasnparente es el  transparente. Lo que pasa es que si lo abres con un editor que no soporte trasnparencias en pngs se ve blanco, por ejemplo el acdsee.
El import, parece ir bien usando las imágenes anteriormente extraídas.

Lo que pasa es que, a ver, si ves el ejemplo del galaxian, normalmente con un solo punto de control tenemos de sobra, así que en vez de crear un archivo con  los puntos de control por imagen, hacemos que este forme parte del nombre del png. quedando un nombre como "numero_imagen-numero_x_punto_control-numero_y_punto_control-nombre_descriptivo_imagen.png"

Por otro lado, para evitar que haya que depender de tener que crear un fpg antes de poder ejecutar el juego se ha optado porque el program cree internamente el fpg que necesita a través de la imágenes, independizando así al ejecutable final de la necisidad del archivo fpg, así que necesita por narices las imágenes con el nombre en el formato comentado anteriormente.

Es mejor que veas el ejemplo del galaxian para entenderlo.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

#186
Quotecuando decis "sucede hasta en el editor de fpg", cuales son los otros programas?
fpg de que profundidad de color?

:D a mi editor, el que estoy haciendo con código bennu.

fpg de que profundidad de color?

pues hice pruebas con un fpg de 32 b de profundidad, y el color transparente se transformaba a blanco, y los que estaban semitransparentes se respetaban (esto es al exportarse con save_png). Me pasa lo mismo cuando abro un png 32b con paint, excepto que paint no me respeta los semitransparentes :) (paint de windows), y luego lo guardo.

adjunto el fichero fpg abajo, con el que hice las pruebas.

La verdad no entiendo qué está sucediendo... Pero aquí está por si alguien quiere hacer pruebas.

Gracias por responder Splinter, aquí está el fpg, y agrego una imagen que exporté.
______________________________________________________________

QuoteHola prg, he probado tu import y export y van bien
He hecho lo siguiente, usando un fpg de 8 bits mío he extraido las imágenes con el extract y he visto que hacía mal los archivos de puntos. Te falta inicialicar el indice de puntos a cero en cada nueva imagen
je je je, no me había dado  cuenta de eso. Gracias. corregido.

QuoteLuego he visto las imágenes (que las extrae en 32 bits de color) con el GIMP y el trasnparente es el  transparente. Lo que pasa es que si lo abres con un editor que no soporte trasnparencias en pngs se ve blanco, por ejemplo el acdsee.
El import, parece ir bien usando las imágenes anteriormente extraídas.

a mí si me sale esto, y utilizo el fireworks, pero creo que el problema es cuando el fpg es de 32b, cuando es de 8 se exporta en color negro, pero esto es completamente  normal.

eh exportado los gráficos de otro fpg de 32b y luego los corrí en el proyecto al que pertenecían y todas las partes que deberían tener el color transparente o 0 ahora son blancas.

...


QuoteLo que pasa es que, a ver, si ves el ejemplo del galaxian, normalmente con un solo punto de control tenemos de sobra, así que en vez de crear un archivo con  los puntos de control por imagen, hacemos que este forme parte del nombre del png. quedando un nombre como "numero_imagen-numero_x_punto_control-numero_y_punto_control-nombre_descriptivo_imagen.png"

Por otro lado, para evitar que haya que depender de tener que crear un fpg antes de poder ejecutar el juego se ha optado porque el program cree internamente el fpg que necesita a través de la imágenes, independizando así al ejecutable final de la necisidad del archivo fpg, así que necesita por narices las imágenes con el nombre en el formato comentado anteriormente.

Es mejor que veas el ejemplo del galaxian para entenderlo.

sí, ya entiendo, incluso en mis juegos yo no necesito los puntos, y si los necesitara, pues los pongo en un archivo aparte, y listo (como dice Splinter :) ). yo sólo lo hice porque recuerdo que había problemas con esto, y pensé en dar una ayudadita. :)

Bueno pues incluyo mi fpg para que también experimenten con él y vean qué puede ser. quizá sea un error a la hora de hacer el fpg, pero bennu detecta sus gráficos como 32b.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

Algo falla pero no se lo que es. Está relaccionado con tus imágenes.
Resulta que en mi fpg 8 bits, lo paso a imágenes con tu export, lo borro, vuelvo a crearlo con tu import creándose el fpg en 32 bits, borro las imágenes y vuelvo a extraerlas con tu export y el transparente sigue existiendo si abro las imágenes con el GIMP.

En cambio he hecho lo mismo con tu fpg y pasa lo que comentas, desaparece el transparente, aunque la imagen es de 32 bits, donde debería estar el transparente está el blanco.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

kim-elet-o

Corregido bug en la funcion CargaPngsEnFpg utilizada en el Galaxian (y tambien en el jet pac), el bug consistia en que solo se borraba el ultimo png cargado en memoria, dejando todos los demas cargados, tambien se ha cambiado el orden de los parametros que la funcion recoge del nombre del png, con lo cual he cambiado tambien los nombres de los pngs en el proyecto, lo de cambio del orden de los parametros se comentaron en este post hace una semana o dos, ahora el orden es el siguiente <Numero grafico>-<Coordenada X>-<Coordenada Y>-nombre o descripcion del png.png, ejemplo: 001-003-003-Disparo nave.png.
En cuanto el proyecto jet pac esta en marcha, llevo un 35 o 40% realizado, no tengo tanto tiempo ultimamente como tube con el Galaxian, los culpables son los dias de vacaciones niveas que me tome y que en mi curro ha habido unos dias en que si habia trabajo, seguire informando.

;) :D ;) :D
|/
|\im-elet-o el yayo programador.

DCelso

#189
ok, actualizado mensaje inicial del tema (topic).
¿Alguien más quiere apuntarse a hacer motores de juegos clásicos?
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

wow, muy interesante la forma de cargar gráficos en galaxian. Me tocará darle unos retoques a mi juego. ¿Sonidos no estamos utilizando? No veo ninguno.

Bueno, a trabajar con el wiz. :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

kim-elet-o

No le he puesto sonido a mis juegos, ejem digamos que... nunca le he puesto sonido a mi juegos, y por lo tanto no se como se hace  :-[ :-[ :-[ :-[, supongo segun que tipo de juegos seria complicar un poco bastante el codigo, pero si el codigo del juego es simple siempre se le puede añadir sonido para que este tenga mas miga.

|/
|\im-elet-o el yayo programador.

SplinterGU

Quote from: kim-elet-o on December 17, 2008, 09:39:23 AM
No le he puesto sonido a mis juegos, ejem digamos que... nunca le he puesto sonido a mi juegos, y por lo tanto no se como se hace  :-[ :-[ :-[ :-[, supongo segun que tipo de juegos seria complicar un poco bastante el codigo, pero si el codigo del juego es simple siempre se le puede añadir sonido para que este tenga mas miga.

Nahhh... vamos que tu puedes!!!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes

variable = load_wav();
play_wav(variable,numero_de_veces);

Aparte, porto el pixfrogger, si os parece bien :)

Prg

Quote from: kim-elet-o on December 17, 2008, 09:39:23 AM
No le he puesto sonido a mis juegos, ejem digamos que... nunca le he puesto sonido a mi juegos, y por lo tanto no se como se hace  :-[ :-[ :-[ :-[, supongo segun que tipo de juegos seria complicar un poco bastante el codigo, pero si el codigo del juego es simple siempre se le puede añadir sonido para que este tenga mas miga.



Es como cuando cargas un map, guardas su identificador, y luego lo utilizas en la función
play_wav(identificador, veces a reproducir (0 para que sólo 1 vez))
(play_song si es música ogg o de ese tipo )
y se reproduce y listo. un disparo colocas play_wav en el begin y ya está. Yo tengo que ver, pues no quiero que pese mucho, los gráficos me ha tocado comprimirlos y los sonidos no lo se.
:)

en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)