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:
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:
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:
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
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Comentarios
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.
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.
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??
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...
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Como va?
Alguien sabe como va este proyecto?
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:
Así que tened paciencia :D. Por cierto, gracias por el interés y por recordarme que cuente como va la cosa.
Saludos!
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.
Mientras los medios sigan mintiendo,
Las paredes seguiran hablendo
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!
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
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.
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Wow
Wow increible, excelente aplicación. La probaré en cuanto la termines. Espero llegar a ser un coder tan bueno como tu xD
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"...
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
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!
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
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
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!
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.