sábado, 1 de agosto de 2009

AIRO - 3D Game Engine



AIRO, es un proyecto personal, hijo de otros proyectos mas pequeños, que plantea ser un "game engine" que me permita, como primer objetivo, aprender a desarrollar un videojuego, ya que considero que programar un videojuego es, en mi punto de vista, una de las tareas mas completas dentro del desarrollo de programas, creo que no existe aplicación que abarque tantos temas como un videojuego (controles, audio, gráficos, redes, inteligencia artificial, etc).

En segundo objetivo, me permite tener una base para desarrollar juegos y lograr terminar esa materia pendiente que es participar en el Concurso Nacional de Videojuegos del Uruguay y ganar esa Nintendo DS (ese es el tercer objetivo).

AIRO actualmente se esta escribiendo en C/C++, esto se debe a que hay partes de proyectos mas antiguos como describí al principio, pero por un tema de prolijidad de código (y en algunos casos por rendimiento) estoy migrando lo escrito en C a C++.

Se puede ver un modelo de Master Chief cargado desde un archivo 3DS con texturas en BMP, la franja negra de la izquierda es uno de los primeros intentos de generar texto.

Para el manejo de la ventana y el input (controles: teclado, mouse y joystick) uso SDL para que en un principio pueda esquivar las llamadas a la API (Application Programming Interface - Interfaz de programación de aplicaciones) del SO (sistema operativo) y ocuparme de ellas luego en una fase mas avanzada del proyecto.

Mejor texto, aunque todavía con el fondo negro de la textura.

Los gráficos están a cargo de la librería OpenGL, y en cuanto al sonido es probable que se use OpenAL, pero todavía no he dedicado ningún tiempo de desarrollo al sonido.

Creo importante aclarar, que aunque se usen librerías, estas son usadas lo mínimo posible, por ejemplo, los textos que se usan en AIRO, no son generados por la extensión SDL_ttf sino por código propio así como la lectura de los modelos 3D y texturas TGA y BMP.

Ya arreglado el problema con el texto se comienzan a desarrollar funciones para poder aplicar animaciones, véase el medidor de FPS en la esquina izquierda de la imagen (clic en la imagen para mayor tamaño)

Las imágenes que acompañan la nota están desactualizadas pero cumplen la función de mostrar un poco la evolución del proyecto.

Al pasar el tiempo iré mostrando mas avances de este proyecto y quizás si puedo tener algún tiempo libre escribiré algún articulo mas técnico sobre como funciona AIRO.

No hay comentarios.: