@ agnasg

agnasg


Motor gráfico: Irrlicht

06-04-2009 9:05 AM

No importa qué tipo de juego vas a programar, siempre vas a necesitar un motor gráfico (a menos por supuesto que te propongas como meta un juego no gráfico). Hay juegos 2D, juegos 3D, con visión isométrica (como Diablo y Fallout). El punto de vista puede ser primera persona (tu personaje no se ve) o 3ra. persona (tu personaje se ve siempre). El juego puede ser de aventura, aventura con acción, puede ser un juego de rol, puede ser un shooter como Doom o Quake. (Ver esta lista de tipos de juegos). Siempre necesitarás una motor gráfico.

El motor grafico maneja el despliegue de los gráficos en la pantalla. Puede ser tan simple como desplegar una imagen estática, o tan complejo como generar una escena dinámicamente en 3d, con sombras, luces, la perspectiva correcta etcétera. En mi página sobre desarrollo de juegos hay una discusión sobre el tema para el que esté interesado.

La lista de motores gráficos es grande, pero para el desarrollador independiente con bajo presupuesto las opciones no son muchas. La idea aqui es no reinventar la rueda, programar un motor gráfico consume bastante tiempo y de lo que se trata es programar juegos, no motores gráficos. Yo cometí ese error y luego de varios años todavía no había terminado. El tiempo del programador independiente es limitado y hay que usarlo con inteligencia.

Si el juego que vas a desarrollar es 2D no parece haber mucha discusión, la mejor opción es SDL. Es simple como su nombre lo indica, multiplataforma y hay suficiente documentación disponible.

Si el juego es 3D la lista luego de eliminar todas las opciones con demasiadas desventajas queda reducida a Ogre e IrrlichtOgre (wikipedia) es una plataforma madura y solida con mucho tiempo en el mercado. Pero la curva de aprendizaje es ruda al comienzo. Irrlicht es muy fácil de usar, tiene muchas características que Ogre no tiene (y viceversa) pero dicen que visualmente es pobre. Yo me decidí por Irrlicht, basicamente porque está hermosamente programado, por lo que sería una delicia modificarlo e incorporarlo en mi juego. Ogre está programado en C y es más difícil de incoporar como componente. Ogre al final del día es más poderoso, pero requiere mucho trabajo. Además por lo pronto la premisa basica de mi proyecto es terminar. E Irrlicht ofrece un camino claro para lograr ese objetivo aun cuando el resultado no va a ser el  técnicamente más avanzado.

Este post forma parte de una serie sobre los componentes de un MMO. Estoy poniendo como ejemplo Nunsoot, mi MMO. Más detalles aqui y aqui.