Anuncios Google

GNU Game Maker

Quería compartir con la comunidad en esta (mi primera) bitácora, un proyecto que llevo tiempo construyendo. Como se puede entender por el título, se trata de una especie de Game Maker (para el que no lo conozca, un programa para crear juegos sin programar). Es una cosa que llevo queriendo hacer desde hace más de 8 años, desde que por primera vez descubrí el susodicho programa y cree mi primer juego tipo plataformas. Aunque en el título he puesto GNU Game Maker, aún no tengo decidido el nombre (si tienes alguna sugerencia, es bienvenida).

Antes de que nadie se emocione, no está (ni muchísimo menos) acabado. Ahora mismo estoy con la GUI, hecha con Qt, con la que llevo varios meses, y prácticamente tengo el motor hecho, que he construido en los últimos 4 o 5 años usando SDL y OpenGL, y aunque esté mal que yo lo diga tiene bastante potencia ya. Ahora me queda la parte más difícil, hacer que el programa pueda crear automáticamente un juego usando dicho motor, y crear objetos con un comportamiento sin que el usuario tenga que programar nada. Y lo más importante y dificil de todo, que funcione.

Lo que quiero conseguir con este programa no es poco. En unas primeras versiones estará orientado a PC como GM, pero, dado que usa OpenGL  y SDL, podrán crearse juegos que funcionen tanto en Windos, Linux, PSP, Wii, etc. Además, no solo generará el ejecutable, sino tambien el código fuente, por lo que permitirá desde cambiar partes concretas del mismo como inspeccionarlo para aprender C++. El hecho de disponer del código fuente también permitirá crear paquetes .deb o similares para distribuciones linux.

Os dejo algunas capturas de la interfaz actual:

Un montón de ventanas

Una muestra de la ventana de creación de sprites. El sprite en cuestión es una parte del stick del juego "bota", publicado en esta comunidad:

Ventana de Sprites

A la izquierda puede verse el arbol del proyecto, donde en la parte de sprites pueden haber subcarpetas o grupos, por ejemplo, un grupo stick que contiene la parte central del stick y las partes (animadas) de los extremos. Este arbol de la izquierda es uno de los elementos más dificiles de implementar de la interfaz.

Como ya he comentado, por ahora la interfaz no hace nada (puedes cargar sprites, sonidos y música, pero no hará nada con ellos salvo mostrar las imágenes y reproducir los sonidos y la música). Los apartados de Sprite, Sounds y Songs están implementados, pero Objets y Rooms aún no. En estos momentos estoy con el botón de "compilar" que te genera el programa, aunque me pondré más intensamente después de los exámenes. Espero que algún día pueda publicar una primera versión, aunque estimo que no será hasta finales de año o en 2012. Para entonces os pediré vuestra colaboración para empezar a programar juegos con este programa y así mejorar poco a poco este programa.

Entre las características que tendrá el programa, están:

  • El tamaño de los sprites será independiente del tamaño con el que se pintan en pantalla. Como puede verse en la segunda captura, los sprites son de 256x512 que representan una barra minúscula.
  • Los sprites podrán ser escalados y rotados de forma eficiente gracias a OpenGL.
  • Sistema de cámaras con desplazamiento suave y zoom (GM en este aspecto es una "bazofia").
  • Posicionamiento en coma flotante: Un objeto no estará en un pixel determinado, sino en unas coordenadas reales.
  • En general, todo el renderizado se realizará con OpenGL, por lo que tendrá aceleración hardware, y así mayor potencia y rapidez.
  • Los objetos serán probablemente orientados a eventos, como en GM.

En resumen, es un proyecto que me emociona y ansío terminar y que espero que algún día llegue a ser considerado una seria alternativa a GM. Si consigo hacer que genere juegos para PSP o Wii, creo que puede llegar
a ser un pequeño punto de inflexión para la scene de dichas
plataformas (o eso me gusta creer), puesto que usuarios sin conocimientos de programación
podrán crear juegos. De hecho, un usuario podría hacer un juego para PC, y portarlo directamente a todas las plataformas posibles (PSP, Wii, NDS, etc).


Editado: El límite del ancho de las imágenes es de 500 pixeles, sobrepasar este límite puede descolocar la web e incumple las Normas de la Comunidad, antes de volver a postear por favor revíselas.| AORV


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

4.555555
Tu voto: Ninguno Votos totales: 4.6 (9 votos)

Anuncios Google

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de martin7777

Como va la cosa? Te tenías

Como va la cosa?

Te tenías que hacer una web para seguir el proyecto más de cerca. Si te amarga acerla a mano programando la puedes crear con Drupalgardens.


Imagen de joserc87

Web

Lo suyo sería hacerla "a mano" y ponerla en la web del proyecto de sourceforge, http://magma-dev.sourceforge.net/. Lo malo es que me da mucha pereza. El diseño Web es de los pocos campos de la informática que nunca me ha atraido. Por ahora no me agovia el no tener web, porque tampoco habría mucho que enseñar, no?

Por supuesto, si a alguien le gusta el tema de las páginas web y quiere colaborar...

PD: Ahora mismo en la web solo hay una copia del html de OpenOffice.org porque estaba haciendo pruebas :P. No quiere decir que tenga que ser así la web.

EDIT: Me he bajado una plantilla css muy chula para el proyecto, así que de momento el tema de la web está medio solucionado. Solo faltaría ir rellenándola, pero bueno, eso ya lo haré conforme avance el proyecto.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Como va despues de casi un año?

Pues eso como va. En porcentajes??

Imagen de joserc87

como pasa el tiempo ..

El Programa en si está bastante parado pero por otra parte el motor sí está muy avanzado. Ahora me he metido a investigar la programación para dispositivos android, y estoy portando el motor a java. Aunque mi principal objetivo es el pc, estaría bien que compilase para android.
Me gustaría poder partirme para hacer todas las cosas que tengo en mente...


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Como va?

Alguien sabe como va este proyecto?

Imagen de joserc87

Estado del proyecto.

En este mismo momento "estoy con las manos en la masa". Aunque el proyecto va viento en popa (lo he retomado al principio del verano), es un GRAN desafío. No es solo un programa, sino un programa que genera programas, y estos últimos deben de funcionar, es decir, que no pueden tener errores ni de compilación ni de ejecución, lo que es un tema delicado, así que si para final del verano tengo algo que funcione, aunque sea muy básico, para mi ya sería un logro.

Ya tengo la parte de la interfaz bastante avanzada (en realidad solo los sprites, los sonidos y la música, la parte de los objetos aún no está empezada ya que es algo más compleja y aún no tengo definido exáctamente como se van a definir los objetos). Ahora estoy empezando con la parte de construcción (build) que dados los sprites, sonidos, música y los objetos genera un programa. Como podrás imaginar esta es la parte más compleja, ya que el resto es solo construir la interfaz que defina el juego. Por ahora solo copia las imágenes y sonidos del proyecto en el arbol de directorios y genera un par de archivos de cabecera.

En resumen, ahora mismo tengo:

  • Interfaz: en torno al 40% hecho.
  • Builder (generador de código o como lo quieras llamar): al rededor del 1% o menos :P.
  • Motor del juego: casi al 98% de lo que será finalmente.

Así que tened paciencia :D. Por cierto, gracias por el interés y por recordarme que cuente como va la cosa.

Saludos!

 


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Te lo estas currando mucho

Te lo estas currando mucho y deseo que lo finalices cuanto antes pero hacer un programa así lleva su tiempo.

Si a finales de verano tienes algo interesante podrias compartirlo (aunque tan solo sirva para hacer las sprites) porque la verdad si lo haces tal y como lo describiste arriba va a ser un gran programa.


Todo bienMientras los medios sigan mintiendo,
Las paredes seguiran hablendoTodo bien

Imagen de joserc87

Gracias.

Esa era mi intención, publicarlo aquí encuanto tenga algo.

Aunque se me había olviado hacer una aclaración, el programa no hará los sprites (es decir no servirá para dibujar), solo los definirá, no se si me explico. En otras palabras, el programa coge varios trozos de una o más imágenes para construir un sprite animado para el juego, definiendo que partes de cada imagen corresponden a cada frame, etc. No le pongo un editor de imágenes al programa porque creo que ni en mis mejores sueños pueda hacer algo a la altura de programas como Gimp o Photoshop. En todo caso pondré un botón para editar la imagen con un programa externo a elegir entre photoshop, gimp o paint, aparte de que sería una pérdida de tiempo, siendo Gimp (por ejemplo) completamente gratuito.

Igualmente pasa con los sonidos y la música. Puedes añadirla al juego, pero no puedes hacerla con el programa, sino con un programa externo (hay muchos).

A lo mejor dentro de muchos años cambio de idea y añado un editor, quien sabe.

Saludos!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Como va despues del verano

Bueno, pues eso, despues de todo el verano como va el proyecto

Imagen de joserc87

Pues paraillo.

No he avanzado grán cosa. He estado sobre todo con el motor, intentando mejorarlo, añadiéndole más funcionalidad y sobre todo haciéndolo más general, para que programar con el motor sea lo más sencillo posible.

Además, tengo reparos para meterme de lleno en la interfaz, ya que no se exactamente como se van a programar los objetos ¿Orientado a eventos como en Game Maker? No se.

En fin, se que algún día terminaré esto, aunque para entonces tenga que usar bastón xD.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de JRizzoA

Wow

Wow increible, excelente aplicación. La probaré en cuanto la termines. Espero llegar a ser un coder tan bueno como tu xD

Imagen de Almamu

El nombre podría ser una cosa

El nombre podría ser una cosa como: "Game Sphere" o "Game Designer" o "SDL Maker" o "OpenGL Maker"...

Imagen de P22

Para el nombre, opino que no

Para el nombre, opino que no debería incluir el termino maker, ya que sería un poco... no se, extraño. Opino que si va a hacer un programa de ese calibre el solo, que tenga algo que lo identifique y no que haga referencia al ya existente. Incluso le recomendaría que ni siquiera incluyese game, aunque eso ya es su eleccion.

Un saludo


¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.

Mi review: iPod Touch 4G

Imagen de joserc87

Nombre.

Respecto al tema del nombre, el otro día no podía dormir y me vino a la cabeza: Magma-dev. Lo que significa me lo guardo para cuando sace la primera release para dejaros con un poquito de intriga :P.

Saludos!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Yo te apoyo en ello, yo

Yo te apoyo en ello, yo también uso ese programa y me gustaría mucho uno para linux

Imagen de Tinakus.Nav

Espero

Espero con ansias...

Respecto al nombre le pondria "Easy Game Maker", siempre y cuando sea facil crear el juego, sino esta bien GNU Game Maker

Imagen de joserc87

OK

Tendré en cuenta tu sugerencia. Por suerte, aún tengo algunos meses para pensar un nombre :D. Intentaré que sea lo más simple posible, pero con suficiente potencia, a ser posible, sin necesidad de scripts.

Ya estoy impaciente por que llegue el verano y pueda ponerme a tope con esto.

Saludos y gracias por la sugerencia!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.