jueves, 20 de diciembre de 2007

Demo: Water

Otro demo mas a la cuenta. En esta ocasión se trata de un simulador de superficies, escrito para Ogre, en el cual podemos observar algunas características interesantes de este motor de gráficos.



Water ( Gamegine + Ogre)

Por otra parte, me he dado a la tarea de rediseñar el pipeline de ejecución del framework. Ahora, en Gamegine, es posible trabajar con un GameController predefinido o escribir el propio e implementarlo en tu aplicación. Un GameController, como su nombre lo indica, controla el programa, o dicho de mejor forma, controla el flujo del programa. Es importante hacer notar que el framework está diseñado para que ustedes mismos armen su motor de la manera que ustedes prefieran, o simplemente usar los controladores básicos.

Hoy vamos a hablar del pipeline de ejecución. Este, no es otra cosa que una colección de objetos que se ejecutan secuencialmente, siendo que al terminar la ejecución del último elemento en la lista se termina la aplicación. Más adelante hablaremos de como cambiar este comportamiento, por ahora nos centraremos en definir un GameHandler. Este es, en palabras sencillas, un elemento dentro del pipeline (cola) de ejecución. Un handler puede ser cualquier cosa que ustedes deseen implementar, siendo su representación más natural un objeto de tipo GameLevel. Este último es el elemento a implementar si queremos agregar algo a nuestros programas. En próximos tutoriales veremos más información sobre estos elementos del framework.

.

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.



.

lunes, 30 de julio de 2007

Integracion del Render System

Este fin de semana pasado termine de integrar el CORE del framework, la caceria ha terminado.

Ahora me encuentro trabajando en el Sistema de Rendereo, una serie de mas de 50 clases, en las que estuve trabjando hace unos meses, que necesitan algunas modificaciones, pero que no esta resultando tan complicado de integrar. Si todo sale como esta planeado, en una semana terminare la fase de integracion y comenzara una nueva fase de caceria de bugs, tras la cual podremos tener el primer beta del framework.

Tambien, revisando algunos archivos viejos, encontre las fuentes de un modelo de nave para un juego que estuve diseñando hace un par de años con unos amigos, su nombre es "Invaders" y es un clon del famosisimo juego "Space Invaders". Creo que sera un buen incio para comenzar a probar las habilidades del framework.

Por el momento les dejo con esta noticia, esperando tener mejores muy pronto.

.

lunes, 16 de julio de 2007

de caceria con el gamegine

Falta poco para el primer beta del Gamegine Framework. En esta entrega podremos encontrar servicios basicos para el inicio de aplicaciones 3D, asi como una serie de clases que nos serviran para crear elementos dentro de nuestros juegos.

En este primer beta, y aunque paresca ridiculo, no encontraremos los renderers, ya que estos son una serie de mas de 50 clases que no he integrado al framework y que me tomaran un poco mas de tiempo el hecharlos a andar.

Por ahora ando de caceria: he tenido muchos descuidos durante el desarrollo del Gamegine, sumado a que no soy un guru en c++, asi que hay mucho trabajo por depurar.



.

sábado, 30 de junio de 2007

Gamegine con soporte para XML

Hace un buen rato que no publico algo sobre el Gamegine. La respuesta es: "Si". Gamegine sigue en desarrollo, pero un poco mas lento de lo que habia esperado.

En estos dos ultimos meses, me he dado a la tarea de diseñar un mecanismo para desarrollar aplicaciones de una manera facil y eficiente. La premisa es: diseñar un sistema basado en modulos que me permitan crear un motor de juegos para diferentes tipos de aplicaciones.

El motor se esta desarrollando en lenguaje C++ y esta diseñado para correr en las plataformas: Windows, Linux y MAC; aunque en un futuro buscariamos la manera de implementar codigo para desarrollar aplicaciones para las consolas de Sony, Microsoft y Nintendo.

Los que desarrollen aplicaciones en .Net se sentiran como en casa con el sistema de configuracion del entorno Gamegine que actualmente esta en desarrollo, basado en Xml, ya que el framework consiste en una estructura basica para el desarrollo de aplicaciones, la cual debe encargarse de todos los detalles relacionados con la libreria grafica, capturas, inteligencia artificial, audio, etc.

En estos momentos me encuentro desarrollando las librerias para dar soporte Xml a la plataforma. Inicalmente, contamos con un XmlReader, XmlWriter y un conjunto de clases para ensamblar documentos xml en memoria.

Espero poder continuar mas adelante con los articulos referentes a la infraestructura Gamegine, para que conozcan los servicios que estaran disponibles en esta suite para el desarrollo de videojuegos.

.

domingo, 27 de mayo de 2007

trabajando en el sitio web

Despues de un buen rato de andar desaparecido, ya estoy de vuelta. Ha habido muchos problemas por aca, asi que Gamegine estuvo unos dias en el cajon, pero ya estamos de vuelta.

Por ahora solo me resta comentarles que ya estoy trabajando tambien en un sitio Web para el proyecto, aunque aun esta en fase de diseño-desarrollo, pero pueden checarlo aqui.

.

domingo, 29 de abril de 2007

Gamegine.Config

Seguimos vivos. Esta semana hubo varios problemas tecnicos, pero ya han quedado todos superados.

He estado trabajando en un sistema de configuracion del framework. Me refiero a configuraciones externas del framework. Una de las mejores ideas que he encontrado, ha sido crear un archivo de configuracion Xml (muy a la .Net). Tenemos varias ideas para utilizar estos archivos y muy pronto sabremos mas alrespecto.

Sigan en contacto, pronto liberaremos el primer beta. El martes estare trabajando en una lista de las caracterisitcas que podremos encontrar en esta primera entrega y actualizare el sitio web del proyecto.

.

sábado, 14 de abril de 2007

Gamegine, segunda parte

Bienvenidos a la segunda parte de la introducción a Gamegine. Hemos estado trabajando muy duro y pronto tendremos un beta de una aplicación utilizando el Gamegine Development Framework. Mientras eso sucede, vamos apliticar un poco sobre lo que es este framework y lo que podemos esperar de él.


Segunda parte


Gamegine Development Framework

Si alguno ha programado en una empresa grande, en donde las herramientas, trabajo en equipo y la reutilización de código son el pan de cada día, seguro ya saben a lo que me refiero.

Un framework es precisamente eso, un conjunto de herramientas y/o código, que nos permiten realizar nuestro trabajo de una manera sencilla, sin meternos en complicaciones o encargándose de la parte rutinaria (o de talacha) que encontramos durante el desarrollo de un proyecto. Con esto no quiero decir que un framework de desarrollo va a realizar todo el trabajo por nosotros.

Un framework para el desarrollo de aplicaciones varía con base al tipo de aplicación a desarrollar. En nuestro caso, necesitamos un conjunto de librerías y herramientas que nos permitan crear videojuegos.

¿Que tiene de diferencia Gamegine con respecto a tantos otros motores de videojuegos en la red?, se preguntarán ustedes. Veamos lo de esta manera: Gamegine no es un motor de videojuegos.

Podemos ver a Gamegine como la parte central, o el kernel, de una aplicación en 3D.



¿Que podemos esperar del Gamegine Development Framework?

La respuesta más acertada sería: una librería que te permitirá crear cualquier tipo de aplicación 3D.

Tenemos muchas ideas lo que podríamos hacer con este framework, y tengan por seguro que en los próximos meses les daremos noticias muy gratas.

Una de las aplicaciones más importantes que van a ver la luz en los próximos meses es el Gamegine Game Studio, desarrollado utilizando el Development Framework y que estamos seguros que van a disfrutar.


.

domingo, 8 de abril de 2007

nuevo logo

Ahh! estamos estrenando tema y logo.

El logo tiene algo que ver con la idea detrás de Gamegine. Es el segundo intento y el proyecto ya va tomando forma propia.

.

Sitio oficial de Gamegine

He estado trabajando en el nuevo sitio oficial de Gamegine. El sitio Web aun necesita mucho tiempo de desarrollo, pero cuando menos ya recupere el dominio que había contratado y un nuevo host.

Como ya les había comentado, Gamegine será una plataforma de desarrollo de código abierto, por lo que calificaba perfectamente para inscribirlo a SourceForge.Net.

Les comentaré más adelante otros planes que tenemos para este ambicioso proyecto. Mientras tanto, no dejen de suscribirse a la lista de correo para estar informados sobre los avances del proyecto.

Gamegine.net

.

viernes, 30 de marzo de 2007

Gamegine, primera parte

Dejenme comenzar con la siguiente observación: Gamegine es un proyecto relativamente nuevo que aún se encuentra en su fase inicial de desarrollo. Muy pronto tendremos disponible los elementos iniciales de esta plataforma y una serie de Demos y ejemplos para familiarizarse con ella.

En el transcurso de las proximas semanas estaremos publicando una serie de artículos mediante los cuales comenzarás a famiiarizarte con los elementos básicos de desarrollo de aplicaciones en Gamegine.


Primera parte
Descripción inicial de Gamegine

Gamegine se compone básicamente de dos partes: un framework para el desarrollo de applicaciones 3D y un conjunto de herramientas que nos permitirán crear contenidos para nuestras aplicaciones.


Gamegine Framework

El framework está compuesto por todos los elementos de código necesarios para la creación de una aplicación en 3D. Esta es una parte muy importante de todo el sistema, ya que es la encargada de darle toda la funcionalidad a la plataforma de desarrollo. No está de más mencionar que todas las herramientas y gestores de contenidos utilizan este framework como pieza central de su desarrollo.

Para entender mejor la idea del framework, vamos a realizar la siguiente analogía: cuando desarrollamos un programa, en cualquier lenguaje de programación, utilizamos controles, estructuras y los diferentes elementos que, de acuerdo a una secuencia lógica, dan forma a nuestra aplicación. Gran parte de la funcionalidad necesaria para desplegar texto en pantalla, gráficos, sonido, etc; ya se encuentra disponible para nosotros en forma de APIs. De la misma manera, Gamegine constará de una colección bien estructurada de elementos de código que se encargarán de desarrollar las tareas elementales en una aplicación en 3D, dejándonos a nosotros la parte divertida.

Podemos resumir que Gamegine será una gran biblioteca de código diponible para desarrollar diversas aplicaciones en 3D, teniendo un enfoque principal en el desarrollo de videojuegos.


Gamegine Studio

Sin duda una parte muy importante en el desarrollo de aplicaciones es el gestor de contenidos. Hoy en día existen muchas herramientas que nos permitirá crear personajes, interfaces y demás elementos de un videojuego. Gamegine ofrece todo esto y mucho más, siendo que su principal objetivo es el de proveer un mecanismo sencillo y eficiente para integrar todos los elementos de nuestras aplicaciones, tanto de código como de contenido, minimizando el tiempo de desarrollo y, por tanto, el capital necesario para el desarrollo de juegos triple A.

Entre las herramientas que podremos encontrar, cuando menos en su fase inicial, se encuentran las siguientes:

- Diseñador de interfaces
- Administrador de fuentes
- Editores de particulas y efectos especiales
- Administrador de Sonido
- Editor de niveles
- Creación de personajes
- Animación
- Generador de combos
(entre otros)


Gamegine en su fase inicial

Creemos que este proyecto es uno de los más ambiciosos en este ramo, ya que promete crear no solo un conjunto de herrmientas, que nos permitirán desarrollar video juegos, entre otras cosas, si no que promete poner a equipos de desarrollo relativamente pequeños al nivel de empresas mundiales. Y todo esto sin que tengan que pagar un centavo.

Para lograr esto, utilizaremos herramientas que ya se encuentran disponibles en el mercado, realizando las interfaces necesarias para que nuestras aplicaciones corran sobre estas capas de aplicación de forma transparente.


Visión y Misión

Creemos que el desarrollo de videojuegos en nuestro pais no se ha explotado, no tanto porque no haya los medios, sino porque hasta ahora no hay un apoyo lo suficientemente importante como para dar un impulso importante en esta industria.


---
En el siguiente Post estaremos hablando de las estructuras de código básicas que podemos encontrar en el framework, así como los elementos disponibles para el desarrollo de aplicaciones.

Hasta entonces.

.

domingo, 18 de marzo de 2007

estilo provisional

Ya tenemos un estilo en el blog. Iniciamlmente tendremos una copia modificada del estilo que utilizo en mi blog personal, pero conforme la idea de Gamegine vaya aterrizando y tomando forma propia, iremos actualizando su imagen.

.

Inicio del blog

He creado este blog porque pienso escribir en el todos aquellos detalles que van a dar forma a este motor de videojuegos.

Gamegine no va aser simplemente un motor de juegos, sino que sera un conjunto de herramientas y recursos que nos ayudaran a crear videojuegos sin meternos con las complejidades que implica el desarrollo de una aplicacion de este tipo.

Podemos esperar de Gamegine una coleccion de aplicaciones que nos permitiran crear contenidos profesionales en un tiempo de desarrollo razonable.

Gamegine estara enfocado a aquellos desarrolladores independientes que, como nosotros, no cuentan con presupuesto como para invertir en un juego AAA, pero tienen las ideas, vision y persistencia necesarios para para crear un juego mejor que Halo.

Lo mejor de todo es que Gamegine sera gratuito.

Aun no contamos con el software, el cual se encuentra en proceso de desarrollo y, desgraciadamente, aun falta mucho para la primera liberacion beta. Sin embargo, aqui encontraran los detalles necesarios para conocer esta nueva propuesta y, por supuesto, opinar al respecto.

En el transcurso de las siguientes semanas conoceremos los detalles a fondo de este nuevo motor de juegos, asi como los objetivos y planes de desarrollo.

Si crees tener lo necesario para entrar a esta industria, no dudes en regresar y darle una oportunidad a lo que te proponemos.

.