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, 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.
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: