Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Interfaz gráfica para editor de un engine 2D.

Iniciado por Pepius, 03 de Agosto de 2011, 02:45:18 AM

« anterior - próximo »

Pepius

Hola,

Llevo cerca de un año desarrollando mi propio engine 2D. He llegado a un punto en el que está bastante maduro, funcionando bajo OpenGL, con soporte para scripting con Python, físicas (Box2D), sistemas de partículas, etc, además de una arquitectura extensible (basada en componentes).

El motor en si, recibe como entrada una escena definida en un formato de etiquetas (algo parecido a xml o html, bastante básico). Funciona a la perfección pero es un fuerte cuello de botella en el desarrollo de un juego el tener que editar a mano posiciones, atributos, etc. Hace tiempo ya que pienso en hacer un editor de escenas, donde el usuario pueda crear entidades y posicionarlas sobre el espacio 2D, editar sus atributos, añadir/eliminar componentes, etc, y creo que ha llegado el momento.

Mi pregunta es: Alguna recomendación? Es requerimento que el toolkit tenga soporte para una zona de dibujo de OpenGL y que pueda capturar eventos como clicks del raton y shortcuts para manipular los elementos del espacio 2D, amén de poder navegar por menus, editar atributos, etc.

Programo con C++ y tengo mi experiencia con ello, pero el mundo de las GUIs es totalmente ajeno a mi, y no se si decantarme por QT, GTK, o cualquier otro toolkit. El engine no es multiplataforma, funciona sólo sobre Windows, como dato.

Como podeis ver, voy bastante perdido en este tema, pero solo necesitaría unas cuantas directrices de por donde empezar a documentarme. Por supuesto, cualquier consejo, comentario o información es bienvenido.

Muchas gracias!

P.D: El proyecto es open-source, podeis visitar la página de google code al respecto: http://code.google.com/p/alegria-engine/
En la página principal hay un par de videos de pruebas, teneis todo el código hasta el momento y la wiki está en proceso (guia de usuario wip aqui http://code.google.com/p/alegria-engine/wiki/UserGuide). Si consigo tirar adelante el editor pronto tendreis más noticias mias!

fjfnaranjo

Hola Pepius.

Yo más que ha darte un consejo vengo a añadir aun más opciones a la lista que ya tendrás :P

Una cosa que puedes hacer, es introducir el interfaz en el juego, y no el juego en el interfaz. Es decir, en lugar de programar con GTK, etc.., lo que haces es mostrar los controles de una interfaz de usuario dentro del juego, con OpenGL. Esto te permite hacer un editor WYSWYG.

Por supuesto, no te voy a recomendar que te pegues el curro de hacerte un sistema de GUIs tu solo. ¡Hay muchos ya hechos en Internet que son libres!

Ala, coso añadido :P
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

Pepius

#2
Hola fjfnaranjo!

El tema es que no busco una interfaz para el juego en si, sino hacer un editor. Esto implica que voy a necesitar modelos de árbol y similares, y me parece un curro tremendo :D

Realmente es una opción y no la descarto (¿más opciones? ¡maldita sea!), pero creo que no es lo que estoy buscando.

Porcierto, pongo aqui un bocetillo que hice con el Gimp y GTK de más o menos por donde quisiera que fuera el editor:

http://i.imgur.com/Qyhu3.jpg

Un saludo!

The_Dragon_Ladis

Qt no es sencillo, es lo siguiente. Y viene preparado para OpenGL (incluso trae ejemplos de su uso) aparte de trabajar con C++.

nsL

youtubeando un poco (verbo hermano de googlear), y basandome en la respuesta de The_Dragon_Ladis he visto este video http://www.youtube.com/watch?v=o2HCS2jCVZo para que te hagas una idea de que se puede hacer con Qt.

Ademas he visto que tiene un menu arriba de Engine -> Run. curioso :D
Yo no muero hasta la muerte -

Pepius

Justo me habiais pillado mirando tutoriales de QT, ahora me acabais de convencer :D.

Me parece que es lo que voy a elegir porque es bastante sencillo e intuitivo, con todo el tema del QT Creator, y los signals/slots que me parece la repera. Me he mirado como comentais el QGLWidget y es muy sencillote, de similar uso a GLUT, y me vendrá de perlas. Además, el tema ModelView no parece nada complicado y ya tengo en mente más o menos como organizar las estructuras de datos, así que, a no ser que pasara algo raro, me quedo con QT!

Mi idea inicial es hacer algo muy light, que me permita posicionar entidades y editar atributos y poco más, para así tener una herramienta con la que acelerar la creación de la primera demo (que llevo hechas a mano algunas partes ya y es un infierno) y además tantear el terreno. A posteriori ya haré algo más currado.

Sea como sea iré comentando cosas por aqui. Muchas gracias por vuestras respuestas y un saludo!

Mars Attacks


Pepius

...

Me pregunto si aun estoy a tiempo de usar GTK.  |:|

:D

Pepius

Buenas :D

Nada, me paso por aqui para decir que estoy ahora metido de lleno con esto de programar el editor de mi engine, con QT como comenté que iba a hacer, y la verdad me está gustando mucho. Ahora mismo estoy en una parte un poco tediosa, que es la de crear Widgets para todos los atributos de una entidad y tal (y aun me quedan...) y aun no me he metido con la integración de OpenGL, pero la verdad es que QT me está gustando un montón, pues es muy potente y fácil de utilizar, asi que lo recomiendo.

Os dejo un par de screenshots de el dialogo de edición de entidades, aun por terminar.


josepzin


Pepius

Hey josepzin :D Cuanto tiempo! Si, aun sigo por allí aunque más que nada porque conozco a la gente, pues no hago nada de 3D ya, solo programo :)  Y me acordé que había abierto este hilo y digo, voy a dejar constancia de que aun estoy con ello y que todo va viento en popa ^^

Un abrazo!

josepzin

Yo tambien he dejado las 3D, la verdad es que tendría que visitar de vez en cuando 3DPoder, sigo teniendo mucho aprecio a la gente del foro.

¡Me alegra saber que sigues en accion!

Mars Attacks


josepzin


Pepius

Jajaja! No me había dado ni cuenta, es el nombre que suelo utilizar cuando tengo que poner nombres random  ^_^'






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.