sábado, 28 de agosto de 2010

Un par de capturas con PagedGeometry y ParticleUniverse funcionando

Aquí os adjunto hoy dos capturas del cliente funcionando con PagedGeometry (en este caso el bosque que podéis ver) y el sistema de partículas de ParticleUniverse.


Esta captura representa que es de noche (utilizando Caelum) y dos efectos especiales en las manos (mano de fuego y mano de hielo)

En esta otra es la misma que la anterior solo que de día. Parece que ya va cogiendo forma, que os parece ;) ?

REngine, el engine de MProject

Como comenté en los primeros posts, el cliente para MProject utiliza Ogre como engine gráfico. Pero para hacer algo más escalable en vez de insertar código de Ogre directo en el cliente, desarrollé un "mini-engine" con el cual poder desarrollar más fácilmente el cliente, utilizando así una capa de abstracción para facilitarme el desarrollo así como también el futuro cambio a otro engine por si algún día se diera el caso.

Este engine lo llame REngine. No es un engine como tal, si no más bien un conjunto de clases de alto nivel que me ayudan a que todo sea un poco mas fácil. Además de Ogre, también están añadidas las funcionalidades de plugins para Ogre y las siguientes librerías:


  • Plugins de Ogre
    • Caelum
    • Hydrax
    • PagedGeometry
    • ParticleUniverse
  • OIS (Input)
  • MyGUI (Gui)

Os pondré un pequeño ejemplo de un "Hello World" para que veáis lo simple que es :

#include "RGraphics.h"
#include "Log.h"



int main(int argc,char *argv[])
{


    if( !sRGraphics.Init(3) )
    {
         sLog.outError("Failed to Init RGraphics.");
         return -1;
    }


    if( !sRGraphics.setMode(320,240,false,"REngine Test"))
    {
         sLog.outError("Failed to set mode.");
         return -2;
    }


    while(sRGraphics.Render())
    {
    }


  return 0;
}


Como podéis ver con 4 lineas básicamente se inicializa el sistema gráfico .Sin duda este engine será lo primero a ser liberado.

martes, 24 de agosto de 2010

Características actuales

Actualmente después de numerosas re-escrituras del proyecto por fin creo que esta versión va a ser la definitiva y os voy enumerar las características principales que actualmente el proyecto tiene desarrolladas.

Comunes

  • Sistema de Log's 
  • Consola de comandos/debugeo en color
  • Sistema Multi-Hilo
  • Gestor de configuraciones (.conf files)
  • Parser de XML

Servidor


  • Acceso a base de datos SQLite (fácilmente expansible a otros motores de bbdd)
  • Autentificación de clientes
  • Selección de jugadores
  • Gestión de mapas
  • Replicación optimizada de objetos del mundo.


Cliente


  • Engine gráfico bajo Ogre3D.
  • Sistema de interfaz de usuario bajo MyGUI
  • Sistema atmosférico bajo Caelum.
  • Sistema de partículas FX
  • Sistema de attachament entre modelos 
  • Carga de modelos especiales para MProject  (RModels)
    • Animaciones esqueléticas
    • Attachament de FX,Modelos,...
  • Sistema de terrenos

Resumen

En resumen, actualmente esta desarrollado un servidor con una implementación básica del mundo virtual capaz de manejar a los diferentes usuarios con sus personajes y dejar el mundo persistente (guardando los datos en la bbdd) y un cliente capaz de interpretar y representar los datos del servidor en un mundo visual.

En los próximos posts intentaré ir explicando un poco más a fondo el funcionamiento interno, así también también como las novedades y algunos pequeños "how to" de los problemas que me voy encontrando.

domingo, 22 de agosto de 2010

Primera screenshoot

Aquí os adjunto la primera captura ;)


Que es MProject?

Respuesta rápida: Un proyecto de desarrollar un RPG Multijugador Masivo.
Respuesta larga: La letra 'M' de MProject provienen de MMORPG (Multiplayer Massive Online Rol Playing Game). MProject comenzó hace unos 4 años como un proyecto de fin de curso con el propósito de desarrollar un juego online muy simple y básico. Durante estos 4 años el proyecto ha sido reescrito y rehecho en multitud de ocasiones , así como también ha cambiado varias veces de nombre. Empezó llamándose "Gang's Project' (algunos lo conocerán como 'Ganga'). Porque se ha reescrito tantas veces? Realmente porque cuando empiezas a desarrollar un proyecto de tal envergadura con el tiempo te vas dando cuenta de los errores, y de que siempre se puede implementar las cosas de una mejor forma y eficiente. Por eso la ultima versión esta basada en el conocido servidor Mangos para World Of Warcraft.

Actualmente estoy en fase de desarrollar una primera versión alpha para 0.1 donde simplemente los jugadores podrán entrar al mundo virtual y darse un paseo por el. En el próximo post os enumeraré las características que están implementadas en este momento.

Bienvenidos!

Después de mucho tiempo con el proyecto 'MProject' al final me he decidido a crear este blog, para explicar un poco el desarrollo del proyecto y así darlo a conocer al mundo.

Así que sin más preámbulos comenzaremos!