Novedades del Blog

lunes, 30 de junio de 2008

¡¡ CAMPEOOOONES OE, OE, OEEEEEEE!!!!


Ya se que no tiene mucho que ver con el tema del Blog, pero no me puedo resistir el ponerlo, aunque solo sea para decir que ayer, como comprendereis, no hice ni una linea de codigo :D
En dias como el de ayer Batman se sentiria orgulloso de ser Español, jejejeje....
¡¡CAMPEOOOOOONES, CAMPEOOOOONES, OOOEEE, OOOEEE, OOOEEEEEEEEEOOO !!!

lunes, 23 de junio de 2008

Pequeño paron por causa de fuerza mayor


Pues si, he parado unos días el desarrollo de Batman debido a que he sido uno de los afortunados ganadores de una PS3 en mi curro, y junto a mi antigua PS2 con el Guitar Hero y mi XBOX360 recientemente adquirida, la tentación era demasiado grande como para no hacer uso de estas maquinitas :))) Jeje, eso si, custodiadas todas ellas por Batman y Robin.

Pero como toda fiebre se pasa, despues de pegarme unas buenas horas de vicio, ya he vuelto a la normalidad y al desarrollo de Batman jejeje...

Aun asi he avanzado algo el motor, y ya he implementado la clase World, Room y Entity, asi que ya queda menos para poder ver algo.

Como muestra del "Play Center" que me he montado en casa aquí tenéis una fotito, ahora solo me falta una Tele de 42' Full HD y ya no habra nada que me saque de la habitación.

lunes, 16 de junio de 2008

Nucleo del Engine

El nucleo del Engine esta casi migrado, a priori, parecia una tarea facil pero se ha ido complicando, aun así creo que vamos por el buen camino. Las clases RenderContext y RenderDevice estan migradas a falta de probarlas, la clase RenderManager esta en proceso, ya que solo esta migrado el Bitmap, espero poder acabar los demas en breve.

Uno de los cambios más dificiles que he encontrado ha sido a la hora del pintado, cuando se crean los vertices, ya que en C# se utiliza un objeto llamado GraphicsStream, este se encarga de ir almacenando los vertices del objeto a pintar mediante su método Write() .

Pongo un pequeño ejemplo, es una parte del método Draw() del pintado de un Bitmap, seguro que hay mas maneras de implementarlo pero esta es la que me parece mas optima, cuando haga las pruebas vere que tal funciona :)

Pongo el antes en C++ ...:

m_pVertexBuffer->Lock( 0, SIZE_VERTEX_BUFFER_REQUERIDO, ( void**) &pVertices, 0 );
//Y ahora creamos un vertice ...
pVertices->x = x;
pVertices->y = y;
pVertices->z = z;
pVertices->w = rhw;
pVertices->u = u;
pVertices->v = v;
pVertices++;
... // Asi todos los vertices que te hagan falta
m_pVertexBuffer.Unlock();

Y el despues en C#:

GraphicsStream data = m_pVertexBuffer.Lock(0,0, LockFlags.None);
//Y ahora creamos un vertice ...
data.Write(new CustomVertex.TransformedTextured(x,y,z,rhw,u,v));
... // Asi todos los vertices que te hagan falta
m_pVertexBuffer.Unlock();

viernes, 13 de junio de 2008

Progreso del Proyecto

He agregado una nueva opcion al blog para ver el progreso del proyecto, intentare actualizarlo lo más posible y siempre que pueda, porque al ser una imagen tengo que andar retocandola, pero para que se vaya siguiendo mas o menos es suficiente.

lunes, 9 de junio de 2008

Buscaba un "Bernie" y he encontrado a "D-o-S"

Pues si, aunque parezca un juego de palabras no lo es, D-o-S ha decidido ayudarme en esta nueva ocasión.
Conocí a D-o-S a traves de su participacion en el remake de Alien 8 y quede impresionado con su trabajo, me puse en contacto con él, e intentara participar en lo que pueda.
Muchas gracias D-o-S.

Y como muestra un botón...

miércoles, 4 de junio de 2008

Buscando un "Bernie Drummond"

Bernie Drummond es la persona que ayudo a Jon Ritman con el aspecto gráfico del Batman original, por esa razón busco a mi "Bernie Drummond" particular, ya que mi anterior colaborador no puede ayudarme en esta ocasión, una lastima.
Los conocimientos que debe tener son de 3DMax u otras herramientas de 3D que sean capaces de generar ficheros con extension .x . Tambien debera tener conocimientos de animación para darle movimiento a los personajes.
Basicamente esto es lo que necesito para este proyecto, cualquier otro conocimiento extra, por supuesto, sera bienvenido :)

Los interesados podeis poneros en contacto conmigo en batman3d@data6.com o poniendo un comentario en esta entrada con vuestro e-mail, para ponerme en contacto con vosotros.

lunes, 2 de junio de 2008

Primeros pasos: Modulos del Proyecto

Esta es la estructura que hay más o menos hasta la fecha en C++, entre paréntesis esta lo que debe hacer y digo debe porque durante el desarrollo las cosas pueden cambiar. El texto en cursiva indica que es un nuevo modulo a implementar desde cero.

Engine Gráfico:
  • RenderContext (encargado del pintado).
  • RenderDevice (gestión del Device Gráfico).
  • RenderManager (gestión de los Recursos Gráficos).
    • Bitmaps (gestión de los bitmaps del juego).
    • Textures (gestión de las texturas del juego).
    • StaticMesh (gestión de las mayas que no tienen animación).
    • AnimatedMesh (gestión de las mayas que tienen animación).
    • Cameras (gestión de las cámaras del juego).
    • ParticleSystem (sistema de partículas del juego).
Game:
  • Globals (contienen los objetos mas usados para tenerlos siempre a mano).
  • Interface (controla como se va a visualizar el juego).
    • InterfaceReal (muestra el juego con perspectiva real).
    • InterfaceIsometrica (muestra el juego en isometrica).
  • MenuManager (manejara los menus y sus opciones).
    • Menu (definición de un menu generico).
      • MenuPrincipal (Manejo del menu principal).
      • MenuGameOver (Manejo del menu game over).
      • MenuPause (Manejo del menu pause).
        • Controls (definición de un control para el menu).
          • ControlButton (maneja los botones de los menús).
          • ControlText (maneja las cajas de texto de los menús).
  • World (gestiona los objetos que van a aparecer en nuestro mundo del juego).
    • Room (gestiona los objetos de cada una de las habitaciones del juego).
      • EntityManager (gestiona las Entidades que aparecen en nuestro juego).
        • Entity (objeto que aparecera en el juego).
          • ComponentDamage (dotara a la entidad de la capacidad de sufrir daño).
          • ComponentGet (dotara a la entidad de la capacidad de coger items).
          • ComponentIANPC (dotara a la entidad de Inteligencia Artificial).
          • ComponentItem (dotara a la entidad de la capacidad de almacenar items).
          • ComponentKill (dotara a la entidad de la capacidad de infringir daño).
          • ComponentNavigation (dotara a la entidad de la capacidad de moverse).
          • ComponentNavigationRails (dotara a la entidad de la capacidad de moverse por un recorrido establecido).
          • ComponentPortal (dotara a la entidad de la capacidad de ir de una habitación a otra).
          • ComponentVisualization (dotara a la entidad de la capacidad de ser visible).
        • DefEntity (definicion de objetos que aparecen en el juego).
          • DefComponentDamage (definición de la capacidad de sufrir daño).
          • DefComponentGet (definición de la capacidad de coger items).
          • DefComponentIANPC (definición de Inteligencia Artificial).
          • DefComponentItem (definición de la capacidad de almacenar items).
          • DefComponentKill (definición de la capacidad de infringir daño).
          • DefComponentNavigation (definición de la capacidad de moverse).
          • DefComponentNavigationRails (definición de la capacidad de moverse por un recorrido establecido).
          • DefComponentPortal (definición de la capacidad de ir de una habitación a otra).
          • DefComponentVisualization (definición de la capacidad de ser visible).
Este es en un esquema básico de los módulos que va a contener en un principio el juego, ahora solo falta hacerlo realidad :)

Y dale Perico al torno...

Pues si, vuelvo a intentarlo, a ver si esta vez es la buena, y consigo acabar este remake que empece hace ya mas de 1 año y que por dejadez y poco tiempo tuve que abandonar.
Ademas de fuerzas renovadas también voy a intentar hacer algunos cambios al respecto, del anterior versión de mi remake:
  1. Este ultimo año he empezado a utilizar C# en el trabajo lo que me ha permitido coger bastante soltura en este lenguaje. Intentare, si es posible, migrar el código de la anterior versión a este nuevo lenguaje. Por supuesto no abandono las DirectX que tantas satisfacciones me han dado.
  2. Aunque la apariencia gráfica de la anterior versión del remake me parece genial, no es el objetivo de un buen remake. A mi modo de entender, un remake debe ser lo mas fiel posible al original pero con mejoras gráficas, de sonido y de jugabilidad, cuanto menos. Y aunque el Batman estilizado y fortachón esta muy bien, a mi me gusta ese gordito que andaba a pasitos y que tantas horas de juego me ha dado :)
  3. La principal idea de este remake es crear un modo de juego lo mas similar posible al original y otro con nuevas funcionalidades (giros de camara, tipos de vistas, etc..) que aun están por definir. Para que estas funcionalidades puedan ser factibles necesito crear un entorno totalmente 3D.
De momento estoy con la migracion del código y pruebas de rendimiento, pero iré poniendo como va el proyecto en este blog para que podáis ir siguiendo su evolución.

Muchas Gracias y espero poder mostrar cosas lo antes posibles, mientras tanto podéis descargaros la primera beta que hice en batman3d.data6.com