Crea tu propio videojuego con Allegro

A la hora de hacer un videojuego, muy pocas veces se requiere tener que hacer todo de cero (o básicamente no se haría nada), sino que existen librerías que facilitan las tareas de hacer gráficos en pantalla, producir sonido, mantener cuenta del tiempo, carga de archivos de datos e imágenes, etc., de tal manera que uno como creador se concentre en lo que realmente vale la pena invertir el tiempo: crear una experiencia divertida, con reglas consistentes.

Allegro es el acrónimo recursivo de Allegro Low LEvel Game ROutines. Mientras que ya existen otras librerías y programas que proveen recursos de mayor nivel que Allegro, y que esperamos dar cabida en este blog, Allegro es un conjunto de rutinas de «bajo nivel», lo que significa que se requiere un poco de conocimiento computista para hacer las tareas que les mencioné anteriormente, con la recompensa de una gran flexibilidad y portabilidad. Este artículo es más bien un abreboca para aquellos que tienen la espinita de hacer un videojuego, y tratará de ser lo más general posible.

Alex The Allegator 4 Screenshot
Alex The Allegator 4, de Free Lunch Design. Un juego para PC. Haz click en la imagen para ir a la página de su creador.

Allegro es una librería escrita en lenguaje C, por lo que se usa como cualquier otra librería C, incluyendo los encabezados (headers) apropiados, para luego hacer llamadas a funciones. Allegro provee en general:

  • Rutinas de gráficos: Inicialización de pantalla, gráficos 2D (la especialidad de Allegro), texto y 3D rudimentario (no acelerado).
  • Rutinas de sonido: Muy básico, reproducción de WAV y generación directa de sonidos.
  • Rutinas de control de tiempo (timers)
  • Rutinas de carga de datos: compresión de datos del juego y carga de imágenes (formato PCX o BMP).
  • Rutinas de control del juego: teclado, mouse, joystick.

Allegro no trae soporte para comunicación por red, ya que los desarrolladores desde hace tiempo han considerado que existen buenas librerías de este tipo ya desarrolladas. Un gran punto a favor de Allegro es que la librería es extremadamente portable: se pueden hacer ejecutables para Windows (con diversos compiladores como Visual Studio, MinGW, Cygwin o Borland), UNIX (diversos sabores: Linux, Solaris, etc.), BeOS, Mac OSX, DOS, QNX, sin cambiar una sola línea de código. Yo, en particular, utilizo MinGW para desarrollar y la experiencia con Allegro ha sido buena hasta ahora.

Allegro logo
Logo oficial de Allegro.

Otro gran punto fuerte de la librería es la extensa comunidad que la respalda. Desde las listas de desarrollo de la librería hasta una página con foros y listados de juegos, ubicado en http://www.allegro.cc, esta es una comunidad con gente muy amable, echadores de vaina pero serios a la hora de responder preguntas o comentar sobre algún tema.

El punto complicado de Allegro es su instalación y uso para aquellos que se están iniciando en el mundo de los compiladores como GCC (o MinGW en Windows). No son pocas las veces que llega alguien preguntando sobre algún error que da el compilador, de hecho, es bastante frecuente por lo que hay un foro dedicado a responder ese tipo de dudas. En general, una vez que ya se sabe instalar librerías para GCC, el proceso suele ser directo.

Hacer un videojuego como los que soléis estar acostumbrados a ubicar en tu tienda o buhonero favorito requiere un gran equipo de programadores, artistas, diseñadores y gerentes, además de una gran cantidad de dinero y tiempo. Los juegos que revisamos en este blog son en su mayoría esfuerzos de personas independientes, incluso no ligadas a la programación, pero que poseen una curiosidad que los lleva a crear un juego. Desde luego que hacer un videojuego requiere tanto o más esfuerzo como en cualquier otra forma de arte, y la programación es tan sólo una habilidad necesaria más. Espero ver más personas interesadas en esta emocionante área de los videojuegos.

Links interesantes en este post:

19 comentarios en «Crea tu propio videojuego con Allegro»

  1. Hola facu,

    Has hecho una excelente pregunta. Es algo que he estado pensando para próximos artículos, pues no creo que sea algo que pueda cubrir en uno solo. Por ahora te recomendaría, si sabes inglés, este tema del foro de gamedev.net con muy buena información introductoria.

  2. me aburro con los mismo juegos todos los termino,quiero
    comprar otros pero no tengo demasiado dinero en
    especial uno que me interesa mucho.
    ¿podre crear el video juego de metal slug 3?
    pero a mi modo?

  3. @jaime: No entendí muy bien tu planteamiento. ¿Eres jugador consumado y quieres hacer juegos porque todos los terminas? Hacer algo tan pulido como Metal Slug 3 desde cero no es una tarea sencilla.

  4. Me gustraria saber como hacer un juego en el que estan todos los personajes de todos los juegos que se me ocurran y con esos personajes seguir su propia historia

  5. tengo la idea de un videojuego muy interesante ,algunos lo confundirian con halo, pero es total mente diferente tiene mas trama y es mucho mas emocionante .nueva clase de extraterrestres (tengo los diseños) super armas ,nuevos trajes para los soldados y bestias alienigenas increibles .tengo la historia casi completa (soy de colombia)solo que no se como poderlo crear o darle la idea a alguna compañia¿podrian ayudarme? (el nombre es ¨en busca¨)

  6. @jeisson @Omega Zero Si no han programado algo más sencillo, creo que están apuntando demasiado alto. Pasarían años antes de poder completar un juego así. Les recomiendo que comiencen por cosas más sencillas.

  7. hola me llamo aldo y siempre he deseado crear mi propio video juego, el que quiero es de pelea parecido a street figther 2 pero con mis propios personajes y sus respectivos poderes pero no se que programa utilizar o que hacer primero, que me recomiendas por favor, este es mi email, pechy20@hotmail.com

  8. Siii que momento!
    Yo crearé un juego totalmente diferente para xbox 360, ¡BASTA DE LOS MISMOS SHOOTERS! (batman,resident evil,halo,etc.)
    Tampoco va a ser como un GTA 4,assassins creed, prince of persia, prototype,etc.
    Podría ser algo como Little big planet, un juego cercano a ese pero de otra manera con muchas maneras de juego como si pusieran "jugar plataforma" o jugar tipo MTGS 4, creo que la verdad estoy pensando juegos de ps3 pero hacer un todo junto para xbox 360 xD.
    Bueno mi proyecto del juego es secreto, pero verán que será un gran juego aunque no gane puede ser que cree videojuegos en un futuro no muy distante a demás de eso quiero trabajar así que en 20 o 10 años verán mi nombre en las mejores companías preparense no voy a descansar hasta llegar a ser ese hombre que quiero ser!

  9. hola,quiero crear un video juego online llamado cards masters,y ya tengo toda la historia lista con los personajes,villanos,los tontos entrometidos,y mucho más,incluso he hecho 8 comics de cards masters,y contando.por eso he entrado a esta pagina web.que yo tenga solamente 11 años no es un impedimento,quiero ser muy popular entre mis compañeros de la Omar torrijos.Además este es uno de mis más anhelados sueños.

Responder a jeissonCancelar respuesta