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 - blau

#1
Proyectos / Editor para voxeles
31 de Agosto de 2014, 07:30:20 PM
Buenas,

como último vestigio de bohemia artística... (no me puedo resistir a citar a arniches) .., en fin...

que estas vacaciones despues de que varias personas se interesaran por que mejorase un antiguo editor que hice... me he puesto y lo he rehecho atendiendo a algunas peticiones.

Video: https://www.youtube.com/watch?v=ezDoNi4yve8&list=UUv2pMGQPRzuZAE0PrwZuzbg

Lo pongo por aquí por si alguien quiere probarlo y dar alguna impresión...

https://dl.dropboxusercontent.com/u/59983887/Voxel3.zip

Y de regalo un programita para "robar" modelos de la pagina qblocks.. cuando seleccionas un modelo se traspasa al editor mediante un socket ;)

https://dl.dropboxusercontent.com/u/59983887/QblockSniffer.zip

Me he quedado en puertas de añadir una parte donde juntar los modelos con animacion esqueletal y secuencial... pero no voy a tener mucho tiempo... :(
#2
Proyectos / The Dark Triad: Dragon's Death
10 de Marzo de 2013, 02:22:55 AM
 EDIT
{
     Ya estamos en kick starter... todo apoyo es bienvenido :)
     http://www.kickstarter.com/projects/1604283933/the-dark-triad-dragons-death
}



Llevo ya un tiempo realizando mi primer videojuego "serio", un rpg isométrico por turnos en 3D, tela, y por fin ya ha empezado a despuntar :), no me dejan enseñar material ingame final, pero si que puedo enseñar dos capturas de nivel técnico...

En la primera se puede ver un render isométrico en wireframe, donde se aprecia la iluminación, aunque no tanto los sistemas de partículas, y tb se ven las banderitas para la lógica del juego...

En la segunda se puede ver al mapa de navegación que calculo a partir de las mallas de los modelos, lo rojo es transitable, lo amarillo son puertas, lo naranja paredes, lo azul escaleras y lo gris modelos que no se les ha asignado el tipo... que me acabo de dar cuenta, cuando pille al diseñador lo pico, jejeje,...

En fin, que dentro de poco saldremos en kick starter y cualquier ayuda que nos echéis es poca...  0:-)
también estamos en STEAM GREENLIGHT por si nos podéis echar una mano allí también...  llevamos más de 5000 votos pero son insuficientes... aunque creo que está bastante bien... y da moral...
Y el site oficial  The Dark Triad donde ya podéis reservarlo... ;)

PD: Si. el editor es la repera, pero hay juego que importa los niveles... palabrita del niño jesús... :D


#3
Buenas,

vaya por delante que ando un poco perdido en esto y quizas suelte alguna parida sin fundamento... pero por eso pregunto...

estoy empezando a plantearme el render de un juego isométrico con vista 2.5d en la que todos los modelos de momento son 3D, pero que al no rotar la cámara espero poder optimizar bastante...

la idea que llevo para evitar quebraderos de cabeza más tarde es ceñirme al modo reach de xna, es decir, shader model 2.0 y sin multi render targets, el tema está en que necesito implementar un sistema que permita añadir la mayor variedad posible de luces...

había pensado en usar técnicas multipass para ir añadiendo luces con un shader, que creo que es lo más parecido a deferred rendering que se puede conseguir con shader model 2.0 y reach ...

¿voy medio bien orientado? ¿es posible implementar un deferred render en estas condiciones? ¿conocéis alguna guía espiritual sobre el tema donde pueda encontrar información específica a mi caso?

Ya he estado googleando un rato... pero hoy no he pescado nada, voy a seguir...

Un saludo

#4
XNA / Darktriad
26 de Noviembre de 2012, 12:21:16 AM
Llevo tiempo sin publicar por aquí nada de lo que estoy haciendo... y hoy estoy contento porque va tomando forma...

si... es otro editor... xD  ... pero es para un juego 3D, no controlamos herramientas de modelado, vamos a base de tiles y creo que he implementado muchas cosillas útiles, como:

1) La gestión de modelos con diversos perfiles de texturas, meshes disponibles y animaciones, que creo con otra herramienta que hice anteriomente.
    Básicamente pretendo sacar la mayor cantidad de modelos posibles de un mismo .fbx, cambiando texturas y meshes visibles o invisibles.
2) Un sistema de poses para las instancias, para tener varias poses que nos gusten de cualquier modelo con su escala y rotación
3) Escala los modelos en base a unidades de mundo, para que se ajuste al espacio que va a ocupar.
4) He implementado las transformaciones de traslacion, rotación y escalado con el mouse, pero lo hice para transformar una sóla instancia y ahora he cambiado el sistema para manejar varias y tengo que ajustarlo porque ya no trabajo en espacio local sino en el del padre.
5) He implementado un sistema de etiquetado para los modelos para poder filtrar a lo hora de elegir por etiquetas: Pared, Roca, Mobiliario... que ha quedado muy bien... pero esta tarde me he cargado el archivo xml donde guardaba las definiciones y resulta que no lo tengo en el repositorio... así que no aparece como funciona en el vídeo  ^_^' espero que mis compis no se lo hayan cargado..

Bueno, en fin, que creo que cuando esté terminado vamos a hacer niveles como churros... y merecerá la pena el esfuerzo  ;) o eso espero....  ^_^'

http://www.youtube.com/watch?v=jl1GDhygHiw&feature=youtu.be

Sé que le falta mucho pulimento, pero salva, carga y puedo poner instancias, que es un hito... tengo que añadir más opciones como lock y visibilidad de objetos por capas o por objeto, terminar de ajustar las transformaciones, dar mejores formas de ajuste... undo/redo,... pufff....

A ver si puedo ir dando noticias en relativamente poco tiempo... que estoy deseando pasarme al gameplay...
#5
Off-topic / Hostal/Colegio Mayor o lo que sea en Madrid
20 de Noviembre de 2012, 11:00:15 AM
Buenas,

tengo que ir 4 dias a Madrid a mediados de Diciembre y necesito buscar alojamiento barato, limpio, con internet y cerca de la Uned... a ser posible.

ando algo perdido y me vendría bien que alguien pudiera aconsejarme algo?
#6
General Programadores / Identificadores unicos
05 de Noviembre de 2012, 01:11:23 PM
Buenas, estoy intentando implementar una gestión de identificadores únicos para mis instancias...

la idea es gestionar la carga/clonado desde ficheros xml y que no haya colisiones... es decir... tener un manager de id global... y para cargar tener otro... una vez realizada la carga/clonado y que están las referencias bien establecidas... lo traspaso al manager global...

lo he hecho así... http://pastebin.com/PhZUyV0z

.. pero no me termina de convencer... hay algún patrón de diseño o alguna forma mejor de hacerlo?

Gracias...
#7
General Programadores / Clases dinámicas en c#?
09 de Julio de 2012, 10:17:45 AM
Quizás esté rizando el rizo... pero tengo el siguiente planteamiento...

   1. Brainiac Designer (gracias @Vicente ),       que es un gui open source para construir arboles de comportamiento,
            que tiene un sistema de plugins que permite importar los nodos con los que quieras trabajar.
            el problema es que los nodos tienen que derivar de su jerarquia de nodos que está orientada al diseño...
            además Brainiac accede a las propiedades del nodo y sus atributos por reflexión---


   2. TreeSharp... libreria open source que implementa la funcionalidad de los árboles de comportamiento... y donde tendré los nodos que quiero usar.


El problema, como no hay multiherencia en c# no puedo mezclarlos sin liar una gorda...

Por lo que me gustaría hacer un puente entre los dos de forma trasparente... la idea es desde el plugin cargar el ensamblado donde almaceno mis nodos derivados de treesharp... leer los tipos y crear tipos de derivados de brainiac de forma dinamica... para que el plugin se los pase al diseñador de brainiac y poder trabajar con ellos de forma totalmente automática...


Si quiero que las propiedades de un nodo treesharp se pasen al nuevo nodo brainiac tengo que crear tipos dinámicos, he planteado usar ExpandoObject pero hasta ahora no he logrado encontrar la forma en que derive de una clase de brainiac...  supongo que tendré que entrar al trapo en el código de brainiac y cambiar el modo de hacer las cosas... pero me da escalofríos....

alguien sabe como hacerlo o se le ocurre como hacer esto de cualquier otra forma?

PD: espero haberme explicado bien, que esta mañana me noto muy espeso  ^_^'
#8
Proyectos / ¿Es tu proyecto demasiado grande?
06 de Abril de 2012, 03:25:29 AM

Basado en los datos aportados por las compañias desarrolladoras desde hace mas de 20 años, ahora puedes conocer de primera mano lo que cuesta un desarrollo y el tiempo estimado de desarrollo para una sóla persona....

Calculador de presupuestos para juegos

#9
XNA / Voxels
13 de Marzo de 2012, 10:32:45 AM
Esto es lo último en lo que ando liado....


http://www.youtube.com/watch?v=Mc4r0drngno


un pequeño editor para modelos voxelizados....  8)

#10
XNA / Un poquito de informacion sobre la windows store y xna
12 de Marzo de 2012, 09:18:12 AM
Parece ser que Xna desaparece, pero se conserva el espiritu, lo que no dicen nada es de la nueva relacion con la Xbox...  :(

http://www.armlessoctopus.com/2012/03/09/microsoft-outlines-their-unified-metro-vision-sans-xna/
#11
XNA / Asset Manager
08 de Enero de 2012, 09:19:58 PM
Buenas,

esta semana he retomado un editor de sprites que estaba haciendo y le he dado un pequeño avance...

como siempre se me ha ido la olla y me he metido en más de lo que que me había planteado...

mi intención era integrar un sistema esqueletal de transformaciones 2d, con interpoladores para posición, rotación y escalado,  más unos interpoladores de color y de frame actual, y hacerlo independientemente del framework xna, y de estar forma crear un package con el spritesheet y las animaciones que le afecten de forma independiente.

Casi todo lo tenia hecho de un proyeto anterior... pero se me vino a la mente la idea de deformar un sprite usando el sistema esqueletal, es decir, si triangulizo un sprite, aplicarle las transformaciones a esos vertices por separado, vamos, haciendo blending de transformaciones por vertice.

El tema es que lo he implementado, pero no me termina de convencer, y creo que hay dos motivos:
   1. Para interpolar uso las transformaciones absolutas de los bones, debería hacerlo de forma relativa
   2. Asigno el mismo peso a todos los vertices influenciados por un bone.

No soy mucho ducho en editores 3D y no se como lo hacen, pero me imagino que tendrán que solucionarlo de una manera parecida.

Mi primer proposito es atacar el punto 1, pero no se como atacar el punto 2...

Aquí dejo un enlace a mi ultima build del proyecto. Tienes que clickar el botón de animaciones para mostrar la parte que estoy desarrollando actualmente.

Seguramente cascará.. y no se pueden añadir bones ni imágenes todavía... porque me he centrado en la funcionalidad.

En el árbol se pueden ver distintos tipo de bones:

   Normales:
   Imagen: Muestran un sprite.
   Influencia: Es un bone que inlfuencia a una imagen y tiene un nodo shape asociado
   Shape: Permite seleccionar los vertices de la imagen influenciados por el bone de influencia asociado al bone imagen.

   En el shape es donde tengo que cambiar los pesos... pero no se me ocurre algo que pueda hacerse de forma gráfica...umm...
  salvo alguna especie de puntos de fuerza con un radio de accion y un ratio de atenuacion....
  Aunque intuyo que haciendo las influencias de forma relativa mejorará bastante.

También si alguien tiene un rasterizador de triangulos para winforms me vendría muy bien... :)

#12
XNA / Eventos y garbage
26 de Diciembre de 2011, 05:23:37 PM
Buenas,

últimamente me he concienciado un poquito más con el garbage collector... me he hecho un componente gráfico para ver como se va comportando el recolector... y todavía me asombro de que algunas cosas que he hecho en el pasado fuesen decentemente...       ^_^'  

el caso es que he estado haciendo un sistema de particulas un poquito especial... y me he dado cuenta de que producía mucho garbage pese a que tenía implementado un pool de objetos y no sabía por que...

investigando me he dado cuenta de que el problema viene dado por las lineas comentadas de este código, que  gestiona cuando una particula entra en una zona, y se suscribe a la muerte de la particula para procesar su salida.

pues bien esto tan nimio hace que en un PC de oficina no se puedan gestionar ni 512 particulas, el recolector se enchufa cada menos de 2 segundos y framea que es un gusto, eliminando este codigo y gestionando la salida del contenedor desde la particula hace que el recolector se llame cada 9 segundos y que vaya a 60 fps sin problemas...

y la pregunta es ¿por que? ¿por que? ¿por que?

Código (csharp) [Seleccionar]
Container.cs

        public void ProcessParticleEnter( Particle particle )
        {
           Debug.Assert( !ContainedParticles.Contains( particle ) );
           ContainedParticles.Add( particle );
         // particle.Died += new Action<AstroObject>( particle_Died );
       }

       //void particle_Died( AstroObject obj )
       //{
       //    ProcessParticleExit( obj as Particle );
       //}

       public void ProcessParticleExit( Particle particle )
       {
           Debug.Assert( ContainedParticles.Contains( particle ) );
           ContainedParticles.Remove( particle );
       //    particle.Died -= particle_Died;
       }


Particle.cs

       protected override void LocalDie()
       {
           if (CurrentContainer!=null) CurrentContainer.ProcessParticleExit(this);
       }

#13
XNA / Shawn abandona el barco...
14 de Diciembre de 2011, 09:46:34 AM

:(

http://blogs.msdn.com/b/shawnhar/archive/2011/12/13/from-games-to-telephones.aspx

y la pregunta que me hago es, ¿se está hundiendo el barco?
#14
General / Aplicaciones nativas para chrome web store
26 de Octubre de 2011, 10:01:55 AM
"Today's Chrome web browser update means you can develop, sell, download and play 3D games written in C++ right from the Chrome Web Store, without plug-in."

http://altdevblogaday.com/2011/10/26/native-client-for-dummies/

Hablan de Native Client, y supongo que será sólo para chrome... con lo que se limita mucho el mercado... pero aun así es un "experimento" interesante...
#15
General Programadores / C# Observable
03 de Octubre de 2011, 01:25:17 PM
He probado a implementar un observable de esta manera, pero no me vale cuando se pasa por referencia,

he estado investigando, y he visto la libreria reactions, pero aparte de que no encuentro la referencia para poder probarla, tiene una manera un poco rara de trabajar. ¿Alguien tiene algúna idea aparte de hacerlo todo en plan manual?

  public struct Subject<T> where T : struct
    {
        T _value;

        public event Action<T> ValueChanged;

        public T Value
        {
            get
            {
                return _value;
            }
            set
            {
                _value = value;
                OnValueChanged();
            }
        }

        private void OnValueChanged()
        {
            if (ValueChanged != null) ValueChanged(_value);
        }

        public static implicit operator T(Subject<T> m)
        {
            return m._value;
        }

        public static implicit operator Subject<T>(T m)
        {
            return new Subject<T>() { Value = m };
        }
    }

    public class SequenceData : Engine.Core.Data
    {
        public Subject<float> Duration;
   
        protected override void OnSave(System.Xml.XmlWriter writer)
        {
            writer.WriteElementString("Duration", Duration);
        }

        protected override void OnLoad(XmlTokenCollection reader)
        {
            reader.ReadElementString<float>("Duration", out Duration);
        }
    }
#16
General Programadores / Duda de C# y genericos
30 de Septiembre de 2011, 09:57:44 PM
Estoy definiendo las estructuras que almacenan los datos usados para interpolar valores...

he usado genéricos por reusar código y mantener una misma lógica para todo... pero como no me resuelve el tipo genérico hasta que lo decalro, tengo que copiar el mismo codigo una y otra vez en las clases finales...

Ver InterpolatorDataColor, InterpolatorDataVector2, InterpolatorDataFloat, ... los metodos LoadKey y SaveKey son identicos...

la pregunta clave es ¿Hay alguna manera sencilla de subir estos dos métodos a la clase padre genérica?


Bueno ahí va un tocho de código...

Código (csharp) [Seleccionar]

namespace Engine.Interpolators
{
   public enum InterpolatorDataTypes { Float, Color, Vector2 }
   public enum InterpolationTypes { None, Linear, Bezier, Hermite }

   //------------------------------------------------------------------------------------------------------------
   public class KeyData<T>  where T : struct
   {
       public float Time;
       public T Value;
       public T InTan;
       public T OutTan;
   }

   //------------------------------------------------------------------------------------------------------------
   public abstract class InterpolatorData : Engine.Core.Data
   {
       public abstract InterpolatorDataTypes InterpolatorDataType { get; }
       public InterpolationTypes InterpolationType;

       protected override void OnSave( XmlWriter writer )
       {
           writer.WriteElementString( "InterpolationType", InterpolationType.ToString() );
       }

       protected override void OnLoad( XmlReader reader )
       {
           InterpolationType = (InterpolationTypes) Enum.Parse( typeof(InterpolationTypes), reader.ReadElementString( "InterpolationType" ) );
       }
   }

   //------------------------------------------------------------------------------------------------------------
   public abstract class InterpolatorData<T> : InterpolatorData where T : struct
   {
       public List<KeyData<T>> Keys = new List<KeyData<T>>( );

       protected override void OnSave( XmlWriter writer )
       {
           base.OnSave( writer );
           writer.WriteStartElement( "Keys" );
           writer.WriteAttributeString( "Count", Keys.Count.ToString( CultureInfo.InvariantCulture ) );
           {
               for ( int index = 0; index < Keys.Count; index++ )
                   SaveKey( index, writer );
           }
           writer.WriteEndElement( );
       }

       protected override void OnLoad( XmlReader reader )
       {
           int Count;
           base.OnLoad( reader );
           reader.ReadToFollowing( "Keys" );
           reader.GetAttribute( "Count", out Count );
           reader.ReadStartElement( "Keys" );
           Keys = new KeyData<T>[ Count ].ToList();
           for ( int index=0; index < Count; index++ )
           {
               Keys[index] = new KeyData<T>( );
               LoadKey( index, reader );
           }
       }

       protected abstract void SaveKey( int index, XmlWriter writer );
       protected abstract void LoadKey( int index, XmlReader reader );  
   }

   //------------------------------------------------------------------------------------------------------------
   public class InterpolatorDataColor : InterpolatorData<Microsoft.Xna.Framework.Color>
   {
       public override InterpolatorDataTypes InterpolatorDataType { get { return InterpolatorDataTypes.Color; } }

       protected override void SaveKey(int index, XmlWriter writer)
       {
           writer.WriteStartElement( "Key" );
           {
               writer.WriteElementString( "Time", Keys[index].Time );
               writer.WriteElementString( "Value", Keys[index].Value );
               if ( InterpolationType == InterpolationTypes.Bezier || InterpolationType == InterpolationTypes.Hermite )
               {
                   writer.WriteElementString( "InTan", Keys[index].InTan );
                   writer.WriteElementString( "OutTan", Keys[index].OutTan );
               }
           }
           writer.WriteEndElement( );
       }

       protected override void LoadKey( int index, XmlReader reader )
       {
           reader.ReadStartElement( "Key" );
           {
               reader.ReadElementString( "Time", out Keys[index].Time );
               reader.ReadElementString( "Value", out Keys[index].Value );
               if ( InterpolationType == InterpolationTypes.Bezier || InterpolationType == InterpolationTypes.Hermite )
               {
                   reader.ReadElementString( "InTan", out Keys[index].InTan );
                   reader.ReadElementString( "OutTan", out Keys[index].OutTan );
               }
           }
           reader.ReadEndElement( );
       }
   }

   //------------------------------------------------------------------------------------------------------------
   public class InterpolatorDataFloat : InterpolatorData<Single>
   {
       public override InterpolatorDataTypes InterpolatorDataType { get { return InterpolatorDataTypes.Float; } }

       protected override void SaveKey( int index, XmlWriter writer )
       {
           writer.WriteStartElement( "Key" );
           {
               writer.WriteElementString( "Time", Keys[index].Time );
               writer.WriteElementString( "Value", Keys[index].Value );
               if ( InterpolationType == InterpolationTypes.Bezier || InterpolationType == InterpolationTypes.Hermite )
               {
                   writer.WriteElementString( "InTan", Keys[index].InTan );
                   writer.WriteElementString( "OutTan", Keys[index].OutTan );
               }
           }
           writer.WriteEndElement( );
       }
       protected override void LoadKey( int index, XmlReader reader )
       {
           reader.ReadStartElement( "Key" );
           {
               reader.ReadElementString( "Time", out Keys[index].Time );
               reader.ReadElementString( "Value", out Keys[index].Value );
               if ( InterpolationType == InterpolationTypes.Bezier || InterpolationType == InterpolationTypes.Hermite )
               {
                   reader.ReadElementString( "InTan", out Keys[index].InTan );
                   reader.ReadElementString( "OutTan", out Keys[index].OutTan );
               }
           }
           reader.ReadEndElement( );
       }  
   }

   //------------------------------------------------------------------------------------------------------------
   public class InterpolatorDataVector2 : InterpolatorData<Microsoft.Xna.Framework.Vector2>
   {
       public override InterpolatorDataTypes InterpolatorDataType { get { return InterpolatorDataTypes.Vector2; } }

       protected override void SaveKey( int index, XmlWriter writer )
       {
           writer.WriteStartElement( "Key" );
           {
               writer.WriteElementString( "Time", Keys[index].Time );
               writer.WriteElementString( "Value", Keys[index].Value );
               if ( InterpolationType == InterpolationTypes.Bezier || InterpolationType == InterpolationTypes.Hermite )
               {
                   writer.WriteElementString( "InTan", Keys[index].InTan );
                   writer.WriteElementString( "OutTan", Keys[index].OutTan );
               }
           }
           writer.WriteEndElement( );
       }

       protected override void LoadKey( int index, XmlReader reader )
       {
           reader.ReadStartElement( "Key" );
           {
               reader.ReadElementString( "Time", out Keys[index].Time );
               reader.ReadElementString( "Value", out Keys[index].Value );
               if ( InterpolationType == InterpolationTypes.Bezier || InterpolationType == InterpolationTypes.Hermite )
               {
                   reader.ReadElementString( "InTan", out Keys[index].InTan );
                   reader.ReadElementString( "OutTan", out Keys[index].OutTan );
               }
           }
           reader.ReadEndElement( );
       }  
   }
}



Un saludo
#17
General Programadores / Yield
16 de Septiembre de 2011, 01:00:53 AM
Simplemente escribo esto porque me he quedado prendado de la instruccion yield de C#, y por si alguien le viene bien usarla algun dia.

Conocía la instrucción y la había usado, pero de forma no creativa.

Ayer, necesitaba depurar un algoritmo de pathfinding, puufff... que tedio... me tenia que chupar 100 ciclos del algoritmo para poder llegar al punto que yo queria... y claro, cuando tienes un algoritmo planteado para completar todas las iteraciones en una sola llamada... pues si quieres cambiarlo tienes que pringar un poquito  con las variables y enmarranas un poco el codigo....

el caso es que me vino a la cabeza la instruccion yield,  en piss pass hice que el metodo devolviera un IEnumerable<int>  y añadi un yield return con el numero de ciclo y en seguida pude debuggear visualmente todo el proceso.


http://www.youtube.com/watch?v=QfJzqmhP_VI



IEnumerable CoreFind( )
{
    if ( Tree.Count == 0 ) yield break;
   
    int bucle = 0, a, b;
   
    do {
        Cell c = Tree.GetFirst( );
                ........
                ........ 
        bucle++;
        yield return bucle;
    } while ( Tree.Count > 0 );                 
}



void Update(float seconds)
{
    if ( !Debugging && MS_New.RightButton == ButtonState.Pressed && MS_Old.RightButton == ButtonState.Released ) {
        path_finding.Reset( );
        Enumerator = path_finding.Update( seconds ).GetEnumerator( );
        Debugging = true;
    }

    if ( Debugging )    {
       if ( Enumerator != null )  {
           if ( MS_New.LeftButton == ButtonState.Pressed || (KB_New.IsKeyDown( Keys.Space ) && KB_Old.IsKeyUp( Keys.Space )) ) {
               Logger.Write( "Ciclo {0}", Enumerator.Current );
               if ( !Enumerator.MoveNext( ) )  {
                    Enumerator = null;
               }
           }
        }
        if ( Enumerator == null )   Debugging = false;
    }
}





#18
XNA / Xna no soportado en Windows 8?
15 de Septiembre de 2011, 03:18:07 PM
Parece ser que a xna le quedan dos telediarios...  :(

Citar
Create immersive games using the power of DirectX

The new Windows 8 graphics stack is better integrated, making Direct2D, Direct3D, and DirectCompute
components easier to use together and requiring fewer duplicated resources than before. Capabilities
previously available only in XNA, such as DirectXMath, XAudio2, and XInput, are now available. For the
ultimate experience in gaming and video, use DirectX 11.1 to bring stereoscopic 3D to your apps.

Digo yo que mantendrán una misma linea y al menos proveerán un framework parecido.

¿Vicente?
#19
XNA / Prototipo de editor para un juego retro
14 de Agosto de 2011, 02:22:21 AM
Buenas, como este mes por fin he tenido algo de tiempo libre, ademas de piscina, barbacoas y playa, me he puesto con un editor de juegos a la antigua usanza... ;)

http://www.youtube.com/watch?v=ZPHjpB-ErnM

La verdad es que creo que me esta quedando bastante bien...  8), es bastante rapido de manejar y al final creo que he resuelto bastante bien los movimientos de los sprites  :o

Ahora me toca definir los enemigos, y empezar con los bosses, las colisiones las tengo planteadas, pero me las voy a dejar para lo ultimo junto con  el salvar/cargar...  ^_^' puff...no me queda na...

Se aceptan criticas constructivas, y si alguien se anima a probarlo lo pongo para descarga,... :)

Un saludo

Un saludo
#20
General / Marmalade
22 de Junio de 2011, 08:42:23 AM
No se si le habéis echado un ojo a esto, pero lo estuve trasteando anoche y es impresionante...

http://www.madewithmarmalade.com

si alguien necesita desarrollo cruzado para ios/android/bada..., en C++, en Visual Studio 2010, con acceso a las API particulares de cada sistema, con unas API comunes que tienen una pinta bestial, un montón de ejemplos, de documentación, y que se nota que es algo ya maduro.... pues que no se lo piense.

La pena es que no esta para c#    ^_^'





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.