Este artículo está incompleto. Tal vez puedas ayudar a completarlo. Allegro es una biblioteca orientada al desarrollo de videojuegos, originalmente escrita por Shawn Hargreaves para la computadora Atari ST que más tarde adaptó y amplió para el compilador DJGPP, y que es distribuida libremente. Actualmente funciona en las siguientes plataformas: DOS, Unix (Linux, FreeBSD, Irix, Solaris), Windows, QNX, BeOS y MacOS X.
Allegro permite manejar gráficos en casi cualquier profundidad de color (8, 15, 16, 24 y 32 bpp1)).
Con los gráficos de 8bpp se utilizan paletas y mapas de color, lo que permite realizar multitud de efectos como transparencias, fundidos, etc.
Con gráficos de 32bpp permite el uso del canal alfa, el cual permite definir transparencias.
Soporta varios formatos gráficos: BMP, TGA, PCX y LBM. También permite registrar nuevos formatos si se desea.
Puede crear bitmaps en la memoria convencional y en la de vídeo, y permite realizar copias, girarlas, cambiarles el tamaño o dibujar en ellos. También pueden utilizarse para dibujar sprites.
Incluye una colección de funciones que permiten crear gráficos 3D a la vieja usanza; esto es, sin aceleración gráfica. De esta forma pueden crearse juegos tridimensionales simples sin necesidad de disponer una tarjeta gráfica. Las funciones de dibujo permiten diversos modos y filtros, incluyendo texturas, sombreados, transparencias, z-buffer, etc.
También permite reproducir sonidos, tanto digitalizadas (VOC, WAV) como música MIDI, pudiendo controlar el volumen, el timbre, la velocidad, etc.
No sólo permite cargar los sonidos desde archivos de disco sino que también ofrece funciones para generarlos al vuelo.
Por un lado, incluye funciones para leer y escribir objetos (imágenes, animaciones, sonidos, …) en diversos formatos: BMP, PCX, TGA, FLC, FLI, GRX, VOC, VAW, MIDI.
También incluye un sistema de empaquetado que permite guardar varios objetos en un único archivo. Con una sola función pueden leerse todos estos objetos, que se almacenan en una lista (array) desde la que se puede acceder a ellos individualmente.
Finalmente define una colección de funciones de bajo nivel que permiten crear, leer y escribir en archivos de disco mediante el algoritmo LZSS, que aun sin ser el que más comprime, funciona de forma rápida y simple.
Facilita la entrada de información a través del teclado, de mandos de juego (joysticks, gamepads, …) y ratón.
Incluye un sistema para definir interrupciones de reloj, lo que permite crear cronómetros u otros métodos para controlar el tiempo y la velocidad de nuestros juegos.
Define un conjunto de funciones con los que se pueden manejar fácilmente archivos de configuración en formato INI.
Aunque Allegro está escrito en lenguaje C, puede ser utilizado con distintos lenguajes de programación, como C++, Pascal, Python, Perl, C# y más. En algunas ocasiones se puede utilizar diréctamente, pero en ocasiones será necesario hacerse con una envolvente (binding).
Hay una lista de lenguajes soportados con enlaces a recursos y envolventes en su página web (aquí) y en su wiki (aquí).