lunes, 17 de diciembre de 2007

una pequeña pausa

Seguramente se preguntan "que ha pasado con el desarrollo de tan no famoso framework?", pues simplemente ha tenido que pasar al cajon por unos dias, porque me encuentro trabajando en un sitio Web bajo en cargo, pero estos dias debo retomar el proyecto.

En estos momentos me encuentro rediseñando el sistema de control de flujo en el juego, de tal manera que sea posible cargar al pipeline de ejecucion, cualquier otro objeto que no sea un nivel de juego. De esta manera sera posible cargar pantallas de presentacion, videos, paneles con informacion, etc; ademas de juegos.

Mas noticias en un par de dias.

.

miércoles, 12 de diciembre de 2007

demo: CelShading

Otro demo más a la cuenta, este se trata de un programa que explica la forma en la que se pueden cargar efectos al renderer, como el "CelShading".


CelShading (Gamegine + Ogre)

Ahora me encuentro rehaciendo la parte de inicialización y liberación de recursos, ya que ha estado tronando. Espero este fin de semana comenzar con un juego-tutorial que se me ha ocurrido.

.

martes, 11 de diciembre de 2007

demo: camera track

Un demo más a la cuenta. Esta vez fue extremadamente sencillo echar a andar el demo de Ogre que se llama CameraTrack, cuyo objetivo es mostrarte que este motor es capaz de crear un objeto que pueda seguir una ruta predeterminada (algo así como un riel).

Por ahora, continuaré portando los demos de Ogre, de tal manera que sirvan para una base de cómo debe implementarse una aplicación Ogre dentro de Gamegine, pero la próxima semana comenzaremos con demos propios.


Camera Track (Gamegine + Ogre)

Ya estoy pensando en la mascota para Gamegine, aunque tal vez aun es muy pronto. Se aceptan sugerencias.

.

lunes, 10 de diciembre de 2007

captura de perifericos

Finalmente, he terminado de implementarle control de periféricos al gamegine framework, aunque el único que he probado, hasta el momento, es el del mouse. Mañana estaré probando con el teclado y probablemente la próxima semana podamos hacer algún demo que controle un joystick.

La idea principal dentro del gamegine es la modularidad (algunos le dan otro nombre). El otro día venía haciendo cuentas y descubrí que dentro de poco cumpliré diez años como desarrollador de software. Así que sé de lo que les hablo cuando les digo que el éxito de un programa depende, en gran medida, de su habilidad para adaptarse a los cambios. Pero, ¿cuales cambios?, me dirán. En realidad pueden ser cambios estratégicos, como la implementación de una nueva herramienta, o el mantenimiento de la misma, así como poder quitar y poner elementos sin que la aplicación se venga abajo. Así, es posible tener el engine trabajando sin la necesidad de cargar una librería de física, por ejemplo, sonido u otra cosa; y luego echarla a andar simplemente con agregarla al archivo de configuración.

El sistema de control de periféricos que he diseñado es un muy buen ejemplo de lo que les digo. Por ejemplo, para poder escuchar cambios en el movimiento del mouse, lo que necesito hacer es crear una clase que herede de una interfaz de nombre "GameInputMouseListener" y sobrecagar el método asociado al evento que me interese escuchar. Esta clase, de forma interna y, portanto, transparente, se inscribe al servicio de escucha del periférico y se da de baja cuando ya no sea necesario. También, depende de la configuración del framework el determinar qué librería se ha de encargar de llevar a cabo esta tarea. Para tí, lo único que tuviste porqué preocuparte es por sobrecargar un método.

Vamos a documentar muy bien estas características en otro post, mientras tanto, visiten el sitio oficial del gamegine para ir conocientdo como va el asunto.

Por mi parte, estaré posteando más seguido para comentarles el avance del desarrollo del framework, así como plticando de nuevos planes, como el desarrollo de un juego que ha de servir de tutorial para iniciarse en el uso de estas librerías.

.

jueves, 6 de diciembre de 2007

esta vivo!!

Casi un mes desde mi ultimo post, y es que por aca, con Gamegine, ha habido enormes cambios. De hecho, el proyecto se ha transformato tanto que casi debi cambiarle el nombre, pero no va a ser así, en escencia, sigue siendo el mismo.

Todo ocurrio hace un par de semanas, leyendo algunos mails del grupo de IGDA Mexico, cuando me di cuenta que necesitaba hacer algunos cambios.

El motor de juegos ha cambiado, así como el enfoque que éste ha tomado, pero la idea sigue siendo la misma: un framework para el desarrollo de videojuegos. Por ahora, falta resolver el modo en el que los jugadores interactúan con los dispositivos de entrada, la forma en la que entran en juegos los menús y las trancisiones entre una escena y otra; por mencionar algunas de las cosas que se me ocurren.

Ya les mostraré más avances hoy en la noche, mientras tanto, les dejo con la primera imagen que he sacado del framework. Se trata de un remake del demo "Beizer Patch" que viene con Ogre, pero utilzando el framework de Gamegine. En mails posteriores les explicaré como funciona el framework.




Beizer Patch Demo (Gamegine + Ogre)

.

jueves, 8 de noviembre de 2007

retomando el camino

Un mes, quien diria que ha pasado tanto tiempo. Muchos problemas familiares por aca, pero ya todo esta solucionandose poco a poco. Ya estoy compilando otra vez y, a jusgar por el numero de errores, me falta un par de semanas mas para tenerlo completo.

Como se ha hecho constumbre ( y so tiene que cambiar pronto) los dejo con la espectativa de una pronta publicacion del Gamegine. Estoy convencido de que al final, habra valido la espera.

.

domingo, 7 de octubre de 2007

implementacion de OpenGL

Ya esta listo el sistema de rendereo para el Gamegine. Al final, ha llevado mas tiempo del estimado, pero habra valido la pena cuado veamos los resultados.

El siguiente punto a desarrollar es un renderer. Ogre dispone de 2: OpenGL y DirecX9. Creo que por fines prácticos, implementare el primero, y un poco mas adelante agregaremos el segundo. Estas clases no son tantas como el sistema de rendereo,por lo que no debe llevar mas de una semana la implementacion.

Por cierto, he olvidado mencionar que estoy trabajando con Ogre version 1.4.0. No es la ultima version disponible, pero bastante reciente (la ultima version disponible es 1.4.5). Por lo que podemos esperar efectos y caracteristicas muy interesantes. Para aquellos que estan interesados en el apartado grafico, y se preguntan: ¿de que sera capas el Gamegine? Pues la respuesta es muy sencilla: el sistema de rendereo es el mismo Ogre. Aunque he realizado un buen de cambios, eliminado codigo e integrado otros modulos mas afines a Gamegine; el corazon del renderer sigue siendo Ogre. Asi que para que se den una idea, visiten la galeria de graficos de que es capaz este renderer:

Galeria de materiales Ogre

Se que algunos de ustedes se han de reguntar: ¿porque crear una version adaptada de Ogre? A corto plazo esto significa mucho mas trabajo, puesto que si deseamos seguirle el paso a tan fabuloso renderer, necesitamos estar actualizando nuestro codigo y readaptandolo segun lo que Ogre tenga planeado. Eso sin tomar en cuenta que aun no se si a los chicos deTorus Knot Software (desarolladores del proyecto Ogre) pudiese molestarles la idea. Pero a la larga nos traera mas beneficios.

Tengo la idea de que en determinado momento, Gamegine tendrá el equipo adecuado para mantener su propio renderer. Además, la arquitectura de Ogre no me ha gustado tanto, asi como su falta de politicas de desarrollo. El resultado es grandioso, pero no me ha agrdado la idea de contruir el Gamegine al rededor de Ogre, mas bien, necesitamos un sistema de rendereo que se adapte a Gamegine a la perfeccion. Una arquitectura que me ha agradado bastante, y que de hecho el diseño que he implementado en Gamegine ha tomado su ejemplo, es la de Irrlicht, el cual es un maravilloso renderer, con un codigo muy limpio y veloz. Pero al final termino convenciendome Ogre por la cantidad de caracterisicas y posibilidades.

Por ahora los dejo con esto y con la espranza de ver a finales de este mes la primer version alpha del gamegine framework y mas noticias tambien.

Les dejo con esta imagen de un juego que se llama MotorM4x, que utiliza Ogre como renderer, que simplemente ma ha dejado maravillado.



.