Allegro — это программная библиотека для разработки видеоигр . [3] [4] [5] Функциональность библиотеки включает поддержку базовой 2D-графики, манипуляции изображениями, текстового вывода, аудиовывода, MIDI- музыки, ввода и таймеров, а также дополнительных процедур для арифметики матриц с фиксированной и плавающей точкой , строк Unicode , доступа к файловой системе, манипуляции файлами, файлов данных и 3D-графики. Библиотека написана на языке программирования C и предназначена для использования с C, C++ или Objective-C , с привязками, доступными для Python , Lua , Scheme , D , Go и других языков. [6] Allegro поставляется с обширной документацией и множеством примеров.
Allegro поддерживает Windows , macOS , Unix-подобные системы , Android и iOS , абстрагируя их интерфейсы прикладного программирования (API) в один переносимый интерфейс. Он также может работать поверх Simple DirectMedia Layer , который используется для запуска программ Allegro в веб-браузере с помощью Emscripten . [7]
Allegro выпускается на условиях лицензии zlib и является бесплатным программным обеспечением с открытым исходным кодом .
Первоначально обозначавший Atari Low-Level Game Routines , [8] Allegro был изначально создан Шоном Харгривзом для Atari ST в начале 1990-х годов. Когда Харгривз понял, что платформа умирает, он отказался от версии для Atari и переделал свою работу для компиляторов Borland C++ и DJGPP в 1995 году. Поддержка Borland C++ была прекращена в версии 2.0, и DJGPP был единственным поддерживаемым компилятором. Поскольку DJGPP был компилятором MS-DOS , все игры, которые использовали Allegro, использовали DOS, привлекая энтузиастов этой устаревшей системы. [9] Около 1998 года Allegro разветвился на несколько версий. Был создан порт для Windows , WinAllegro, а также в это же время был создан порт Allegro для Unix , XwinAllegro. Эти различные порты были объединены в ходе разработки версий Allegro 3.9 WIP, а Allegro 4.0 стала первой стабильной версией Allegro, поддерживающей несколько платформ.
Текущая разработка сосредоточена на ветке Allegro 5, полностью переработанной как API, так и большей части внутренних операций библиотеки. Были предприняты усилия, чтобы сделать API более последовательным и многопоточным . По умолчанию библиотека теперь аппаратно ускорена с использованием OpenGL или DirectX рендеринга бэкэндов, где это уместно. Многие из дополнений, которые существовали как отдельные проекты для Allegro 4, теперь бесшовно взаимодействуют с Allegro и включены в установку по умолчанию. Allegro 5 управляется событиями .
Allegro 5 поддерживает следующие функции в своем основном API: [10]
Сообщество пользователей Allegro внесло несколько расширений библиотеки для обработки таких вещей, как прокрутка карт плиток и импорт и экспорт различных форматов файлов. Также некоторые части того, что раньше было частью Allegro, теперь отделены как дополнение в Allegro 5. Эти дополнения распространяются с основной библиотекой: [11]
Хотя проект продолжает поддерживаться и по сей день веткой Allegro 5, на протяжении большей части своей истории Allegro был тесно связан со сценой бесплатного ПО для MS-DOS, которая все еще была сильна вплоть до начала 2000-х годов.