Allegro es una biblioteca de software para el desarrollo de videojuegos . [3] [4] [5] La funcionalidad de la biblioteca incluye soporte para gráficos 2D básicos, manipulación de imágenes, salida de texto, salida de audio, música MIDI , entrada y temporizadores, así como rutinas adicionales para aritmética matricial de punto fijo y punto flotante, cadenas Unicode , acceso al sistema de archivos, manipulación de archivos, archivos de datos y gráficos 3D. La biblioteca está escrita en el lenguaje de programación C y diseñada para usarse con C, C++ u Objective-C , con enlaces disponibles para Python , Lua , Scheme , D , Go y otros lenguajes. [6] Allegro viene con una extensa documentación y muchos ejemplos.
Allegro es compatible con Windows , macOS , sistemas similares a Unix , Android e iOS , y abstrae sus interfaces de programación de aplicaciones (API) en una interfaz portátil. También puede ejecutarse sobre Simple DirectMedia Layer , que se utiliza para ejecutar programas Allegro en el navegador web mediante Emscripten . [7]
Publicado bajo los términos de la licencia zlib , Allegro es un software gratuito y de código abierto .
Allegro, que inicialmente significaba Atari Low-Level Game Routines , [8] fue creado originalmente por Shawn Hargreaves para Atari ST a principios de los años 1990. Cuando Hargreaves se dio cuenta de que la plataforma estaba muriendo, abandonó la versión Atari y reimplementó su trabajo para los compiladores Borland C++ y DJGPP en 1995. El soporte para Borland C++ se abandonó en la versión 2.0, y DJGPP fue el único compilador compatible. Como DJGPP era un compilador MS-DOS , todos los juegos que usaban Allegro usaban DOS, atrayendo a la escena entusiasta de ese sistema heredado. [9] Alrededor de 1998, Allegro se ramificó en varias versiones. Se creó un puerto para Windows , WinAllegro, y también durante este tiempo, se creó un puerto Unix de Allegro, XwinAllegro. Estos diversos puertos se reunieron durante las versiones WIP de Allegro 3.9, siendo Allegro 4.0 la primera versión estable de Allegro en soportar múltiples plataformas.
El desarrollo actual se centra en la rama Allegro 5, un rediseño completo tanto de la API como de gran parte del funcionamiento interno de la biblioteca. Se hizo un esfuerzo para que la API fuera más consistente y segura para múltiples subprocesos . De forma predeterminada, la biblioteca ahora está acelerada por hardware utilizando backends de renderizado OpenGL o DirectX cuando corresponde. Muchos de los complementos que existían como proyectos separados para Allegro 4 ahora interactúan sin problemas con Allegro propiamente dicho y se incluyen con la instalación predeterminada. Allegro 5 está impulsado por eventos .
Allegro 5 admite las siguientes funciones en su API principal: [10]
La comunidad de usuarios de Allegro ha contribuido con varias extensiones de biblioteca para gestionar cuestiones como el desplazamiento de mapas de mosaicos y la importación y exportación de varios formatos de archivo. Además, algunas partes de lo que solía ser parte de Allegro ahora están separadas como complemento en Allegro 5. Estos complementos se distribuyen con la biblioteca principal: [11]
Aunque el proyecto sigue recibiendo apoyo hasta el día de hoy con la rama Allegro 5, durante gran parte de su historia Allegro estuvo muy asociado con la escena del software libre MS-DOS que todavía se mantenía fuerte hasta bien entrada la década de 2000.