Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Empezando un nuevo engine DX11

Iniciado por XÑA, 16 de Agosto de 2011, 10:34:52 PM

« anterior - próximo »

XÑA

Sí, lo he pensado, lo de enmascarar las estructuras.... ;)

Gracias

XÑA

Cambios en el GUI. Sé que estoy un poco pesado con esto, pero el GUI es complicado de hacer de narices, o quizás es que me complico demasiado la vida... Como no tengo prisa, rehago y rehago. De momento creo que voy bien, porqué la única forma de saberlo es que sea fácil de programar, y que tenga lógica.

Ahora mismo, he añadido algo muy efectivo, y es que cuando usas el Drag & drop, parpadean los elementos que pueden recibir ese Drop. Me parece muy útil, porqué así ya sabes enseguida dónde puedes llevar los objetos que coges.

http://javiermaura.wordpress.com/2011/10/03/siguiente-con-el-gui/

El menú también funciona, así que en teoría mañana ya puedo dedicarme al control slider!!!  :)

Pepius

Hola, muy interesante tu proyecto!

Una cosa que no entiendo muy bien es lo de la GUI. Esa GUI es para ingame o para alguna especie de editor?

Un saludo!

XÑA

Sigo con los avances. Esta vez una pantallita general...

http://javiermaura.wordpress.com/2011/10/08/guigueando/

Pues contestando a Pepius, decirte que el GUI es el para crear un editor del juego, al estilo de Unity ( no es que vaya a hacer un Unity!!! jajaja). Así como un engine facilita mucho el desarrollo de un juego, y nadie lo pone en duda, creo que un GUI facilitará muchísimo el desarrollo de un editor o lo que sea. Para que veas el ejemplo, este es el código para el radio button:

            radio = new RadioOption(GUI, this,"Type");

            radio.X = 150;
            radio.Y = 2;
            radio.Name = "RdOption";
            radio.Options.AddRange(new string[] { "Fixed size", "Bounded rectangles" });
            radio.ComputeChanges();


Al estar orientado a juegos, no tiene nada que ver con Windows Forms. Algo muy muy importante, por ejemplo, es que forms sólo actualiza un control cuando se invalida. Eso te fuerza a gestionar eso por ti mismo, y es...tedioso. Como este GUI es para juegos, yo llamo al update de cada control en cada frame, y también lo dibujo. Por tanto, te olvidas de invalidar, con lo que el código es mucho más claro y sencillo.

Mi idea es desarrollar un editor basado en DX11 (aunque funciona con DX10 ahora mismo) pero que sea independiente del device. Así, se podrá cambiar el device, y funcionará en XNA, o en móvil, o en OpenGL.
El motor ya está hecho por dentro. Tu trabajas con un material que tienes unas propiedades: Diffuse, specular, normal... Luego tienes luces y finalmente un mesh. Entonces el motor genera los shaders que necesita dinámicamente. Si el device no es capaz de soportar normales, por ejemplo, entonces no se ven y listo. No se basa en fallbacks, que son shaders más básicos que se usan por si el hardware no soporta ciertas propiedades. Como lo shaders se construyen dinámicamente si una propiedad no se puede utilizar, se genera ese shader sin esa propiedad y listo.

De hecho, espero que muy pronto pueda ponerme con el editor de escenas 2D, donde podrás ir montando las escenas. Ese para mi será el primer milestone importante.

Por cierto, el editor es 64 bits. Ya lo pensé con vistas a futuro... :D






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.