Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - 16BITBoy

#1
General Programadores / ¿Que programar y que no?
12 de Marzo de 2009, 05:55:00 PM
Buenas.
Esto que me planteo tiene que ver con que programar a la hora de realizar un juego y que no, por el tema de "no reinventar la rueda" o esa frase que lei por aqui que decia "o haces engines, o haces videojuegos".

Yo ya he programado un pequeño videojuego, un simple pong, en C++ y allegro, y la verda analizando el tipo de juego te das cuenta que necesitas algoritmos muy basicos y muy pocos y que poco te importan programarlos, importandote poco si existen ya o no, yo los hice por mi cuenta.

La cosa es que me dispongo a dar el salto a otro genero, por ejemplo un plataformas, un juego de disparos tipo avioncitos(1941) o un RPG (bueno este ultimo puede k sea el 3er salto que dé, mejor un plataformas xD). Entonces me pongo a analizar que me hace falta para por ejemplo un plataformas, pues me hace falta codigo que sea capaz de cargar tiles de un archivo o varios, me hace falta codigo para generar mapas a partir de...¿archivos XML? o algun formato que me saque de la manga quizas.... en resumidas cuentas te das cuenta de que te hace falta muchisimas cosas que no tienes con una libreria o motor de juegos como algunos la llaman a allegro, entonces la pregunta es: ¿Estas cosas, si habria que programarlas, como un marco de trabajo para que sirva para siguientes desarrollos o por el contario, seria mejor buscarse un engine lo mas currado y completo posible, con editor de niveles, algoritmos basicos de fisica, con el generador de mapas etc etc?

Lo único que he encontrado como mas próximo a lo ultimo son programas como RPG Maker o GameMaker, que aunque los veo bien, a mi me gusta mas el C/C++, o cualquier otro lenguaje, la cosa es que me permita mas flexibilidad que esos dos programas, como por ejemplo que si algo le faltan se lo pueda añadir, o modificar algo a mi gusto, yo por ejemplo, no podria hacer que GameMaker por poner uan ejemplo supiese leer un paquete de datos (imaginense lo que sea que contenga da igual) el cual he programado yo su formato, cosa que con C++ seria solo ponerse a ello.

Creo que me he enrollao demasiado, en resumen ¿que creeis ustedes que se deberia programar a la hora de crear un juego y que no, si lo haces para aprender y como (por ahora) hobbie, gustandole a uno la programación?

Un Saludo!
#2
General / ¿Alguno estuvo en la OSWC 2008 de malaga...
20 de Octubre de 2008, 10:52:12 PM
esta mañana?, lo digo por que iba de excursion por ahi y lo primero que habia en el programa era algo como "desarrollo de videojuegos y software libre" que daba la charla los de pyro, y llegue tarde al evento (putos atascos xD) y llegue justo cuando terminó. ¿Estuvo bien aquello, o fue un rollo? ¿alguen lo grabo o algo? si es asi aver si alguen puede hacer el favor y lo sube a youtube o a algun sitio que me hacia ilu aver de que hablaban y me quede con las ganas xDD (ya, se que parezco un poco cara con la petición, pero no veas que putadón no llegar, sabiendo que era una de las cosas que queria ver :P

Un Saludo ;)
#3
General Audio / DUM (Calling from earth Remix) Concurso
12 de Septiembre de 2008, 02:46:59 PM
Buenas,

Participo en un concurso de remixes, en el que hay que haceruna version de un tema de The Martin brothers, yo he presentado el mio y me gustaria que lo escuchaseis y lo votaseis si os gusta por favor. Espero que lo disfruteis igual que yo lo he hecho haciendolo.

El remix es Calling from earth By Adrian Perez (a.k.a. DjChacal). Si quiereis votarlo, haceis click en el enlace que sale en mi apartado que dice "Sign up or register to vote", luego eso cambiara a "vote" le dais y listo.

http://www.dancetracksdigital.com/dirtybird_remix/remixes.php?id=434

Gracias ;)
#4
General Programadores / Librerias boost precompiladas
30 de Agosto de 2008, 02:24:19 PM
Buenas.
Pues preguntaba si alguen tiene estas librerias para MSVC 9 o MINGW precompiladas y me las pueda mandar, por que he intentando bajarmelas del sitio oficial y el instalador que te las descarga precompiladas no funciona, y tampoco puedo compilarlas yo, por que hace falta un tal "Boost.Jam", y tampoco tira el enlace para descargarlas. Intenté bajarlo por devpaks y estan mal las que estan, le faltan archivos de cabecera. Quiero probarlas pero no tengo forma de descargarlas.

Aver si me podeis hacer el favor, gracias ;)
#5
Buenas

Pues eso, estoy intentando de hacer cositas un poco mas grandes, el pong mas o menos lo pude hacer de tiron desarrollando y pensando los pequeños algoritmos y rutinas al vuelo, o casi, mientras programaba, pero ahora que quiero hacer algo mas elaborado, no se como planificarmelo, osea una sola función del juego( en caso de un plataformas 2D por poner un ejemplo, la funcion que muestre un mapa en pantalla) puede estar dividida en muchas otras funciones pequeñas mas especificas(el que carga un archivo en memoria, para que otro lo interprete y haga un mapa segun dice ese archivo, el que carga los tiles para ese mapa partiendo de un archivo con todos ellos, la de scroll...), y cada funcion puede necesitar de ciertos datos y manejar estructuras de datos. ¿Como se supone que debo diseñar esa "mecanica" (o como debe funcionar)? He leido algo de diagramas de flujo, o pseudo codigo, pero casi me parece lo mismo que escribirlo a pelo en C++, o bien no lo he terminado de entender bien el concepto de eso.

¿Como haceis ustedes para diseñar como va a funcionar vuestro programa / juego, partiendo de que sabes ya lo que el juego o programa debe o podra hacer? ¿Algun tipo de documento?

Se que puedo tirarme a escribir codigo de lo que se me vaya ocurriendo, pero se que un dia puedo tener las cosas muy claras, y al siguiente no saber por que o para que puse tal variable o tal propiedad en una clase, pudiendoseme ocurrir otra muy distinta, y tener que reescribirlo todo ^^ (por poner un ejemplo de caos)

Un Saludo!
#6
General Programadores / Callbacks y variables "volatile"
09 de Agosto de 2008, 01:08:38 AM
Buenas. Tengo un problema con el cierre desde el boton cerrar de la ventana de mi programa. ( Xtreme Pong, el juego que enseñe antes en proyectos)

El caso es que el cierre del programa desde el boton cerrar de la aplicación se debe de programar a través de la libreria allegro que uso, entonce según la documentación, debo de usar la función:

set_close_button_callback(close_button_handler);

Esta pues ya sabeis llama a una función cada vez que se produce el evento de hacer click en el boton X de la ventana.

Y se debe hacer asi, todo esto según la documentación de allegro:

// Creamos una variable, que dirá cuando cerrar el programa

volatile int endProg;

//una función a la que llamar

void close_button(void)
{
     endProg = 1;
}
END_OF_FUNCTION(close_button) //Es necesario esto para alegro con esta función


luego, hacemos lo siguiente:

LOCK_FUNCTION(close_button_handler);//Se bloquea la funcion
set_close_button_callback(close_button_handler);//Se ajusta que funcion llamar


luego es cosa de ir comprobando en nuestro bucle si endProg == 1 y si es asi salir del bucle y que vaya cerrando el programa.

Pues lo mio esta asi:

volatile int endProg;

...

void close_window(void)
{
   endProg = 1;
}
END_OF_FUNCTION(close_window)


en mi función init_gameloop():

     
       LOCK_VARIABLE(speed_counter);
LOCK_FUNCTION(increment_speed_counter);

LOCK_VARIABLE(fps);
LOCK_VARIABLE(frame_count);
LOCK_FUNCTION(fps_proc);
LOCK_FUNCTION(close_window);//Aquí la bloqueo <------------

install_int_ex(increment_speed_counter, BPS_TO_TIMER(60));
install_int(fps_proc, 1000);

// Text with transparent background
       alfont_text_mode(-1);
text_mode(-1);

       endProg = 0;

//Setting the window close button callback
set_close_button_callback(close_window); //<---pongo la función

       buffer = create_bitmap(320,240);

       gconf = new GAME_CONFIG();

       gconf->gameType = 0;
       gconf->players = 1;

       // Finally, enter the game loop
      gameloop();
 
      // Removing timers, we dont need them anymore
      remove_int(increment_speed_counter);
remove_int(fps_proc);


ahora entrando a gameloop():

void gameloop()
{
   while(endProg == 0)
   {
       menu(gconf);
       if(endProg == 0)game(gconf);

   }
}


En otras funciones de otros modulos, modifico el valor de endProg cuando un usuario pulsa ESC desde el menú por ejemplo, o en el menu selecciona la opcion salir, y cambia de valor perfectamente, pero se ve k la función esa (close_window) que se llama en el callback, no me cambia el valor por muy volatile que sea. Ya probe cambiando el tipo, antes era bool y ahora lo hice con int como veis, pero nada hay algo ahi que no me cuadra, sera otra tonteria pero llevo tela tiempo viendo y no doy con lo que es.

Si en la función close_window pongo exit() en ve de k cambie le valor, me cierra el juego sin problemas, pero se que no es la mejor forma teniendo cosas en memoria que liberar, aparte en ciertos pc's les da fallo al cerrar con ese codigo del exit.

llevo ya un tiempazo con esto, y no doy con la solución, quiero arreglar eso que es lo unico que me falta pa dejar el codigo bonito y el juego bien, y subir el juego actualizao ya con su codigo fuente.

Un Saludo!
[/code]
#7
Proyectos / Xtreme Pong, mi primer videojuego
29 de Julio de 2008, 01:41:29 PM

Buenas a todos, os dejo aqui algo en lo que llevo trabajando hace unas cuantas semanas en mis escasos ratos libres.
Bueno si, es otro clón del clásico pong, un juego que simula ser un juego de tenis, en el que tenemos 2 palas y una bola rebotando por la pantalla, asi de simple. Ya lo habia desarrollado antes aunque me quedo demasiado cutre y con muchos fallos y nunca me decidí a publicarlo, pero esta vez esta reprogramado desde 0.

Lo podeis descargar desde aqui: http://16bitboy.wordpress.com
O desde aqui: http://www.greatgamesexperiment.com/game/xtremepong

No seais muy crueles con los comentarios xD, dentro de unos dias subire tambien el codigo fuente, para el que no sepa y quiera cuirosear o aprender.

Un Saludo!
#8
Buenas, pues tengo un problema muy extraño, resulta que estoy codificando una clase, y luego la uso en el codigo creando un objeto de el.

Esta clase, por donde sea aunque a ojo no lo encunetro, tiene que tener un fallo, pero lo curioso es que cunado ejecuto el modo debug (GDB) el programa se ejecuta perfectamente xDD.

Me da que algo ocurre que el GDB esta haciendo debug de alguna compilación anterior a la actual pues mediante GDB no detecto nada. Aunque puede que no... hago un paso a paso donde creo puede estar el error y nada extraño ocurre. Ni desbordamientos ni nada parecido, y el programa se ejecuta a las mil maravillas. Vereis tengo esto:


class KEYBOARD_EVENTS
{

   private:
       class KEY_EVENTS
       {
           public:
               int value;
               int event_suceeded;
               int event_type;
       };
   public:

       KEY_EVENTS keyevents[128];

       KEYBOARD_EVENTS()
       {
           int i;
           for (i=0; i<=128; i++)
           {
               keyevents[i].value = 0;
               keyevents[i].event_suceeded = 0;
               keyevents[i].event_type = 0;
           }
       }

la clase sigue, pero el problema no puede estar fuera de esto, pues no llega a ejecutar ninguna otra función que no sea el constructor.

en mi otro procedimiento, creo un objeto de esta clase:

void init_gameloop()
{
   LOCK_VARIABLE(speed_counter);
LOCK_FUNCTION(increment_speed_counter);

LOCK_VARIABLE(fps);
LOCK_VARIABLE(frame_count);
LOCK_FUNCTION(fps_proc);

install_int_ex(increment_speed_counter, BPS_TO_TIMER(30));
install_int(fps_proc, 1000);


   kbEvents = new KEYBOARD_EVENTS(); // <<-- AQUI LO CREO

   buffer = create_bitmap(vConf->w,vConf->h);

   // Finally, enter the game loop
   gameloop();

   // Removing timers, we dont need them anymore
   remove_int(increment_speed_counter);
remove_int(fps_proc);

}


Uso el ide Code::Blocks 8.02 junto con mingw, y la libreria allegro.

Aver si alguen se le ocurre de que puede ser, a mi ya me tiene mareado xD, aun sigo buscando el porque, y lo que aun siendo tan extraño error, me sigue pareciendo una tonteria que estará por ahi y no la veo, aun asi he dedicido dejar este tema aqui aver si alguen puede hecharme una mano, por que es que llevo ya buen tiempo mirandomelo todo y no doy con el problema.

Decir tambien que si quito la línea :



kbEvents = new KEYBOARD_EVENTS(); // <<-- AQUI LO CREO



el programa se ejecuta con normalidad, por lo que el problema con mas razón debe estar en la clase que dije antes, pero donde, y mas dificil es encontrarlo si el debug no me dice ningun error, por mucha variable que inspeccione.

Un Saludo!
#9
Buenas, pues tengo esa curiosidad, y no me refiero a que "Lenguaje de programación" usais, sino que idioma (los que sepais almenos uno mas, sobre todo inglés) usais cuando vais a escribir por ejemplo el nombre de un procedimiento o variable, o los comentarios y documentación.

Resulta, y por eso tengo la curiosidad, de que yo no se si escribr en español o en ingles por que, hago las dos cosas xD, vereis hay nombres y cosas que a la hora de dar nombre a una variable por ejemplo me es mas corto en ingles y es mas comodo asi de escribir, k en español alomejor es mas largo y queda mas feo al acortarlo. Otras veces por comodidad lo hago en español. Esto hace que el codigo quede bastante raro xDD.

Los comentarios los hago en español, pero por ejemplo, si alguna vez distribuyo el código de lo que estoy desarrollando, seria un problema, ya que el ingés digamos que es el k esta mas internacionalizado y esta a la orden del dia en todos lados.

¿y ustedes como lo haceis?

Un saludo!





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.