Allegro یک کتابخانه نرم افزاری برای ساخت بازی های ویدیویی است . [3] [4] [5] عملکرد کتابخانه شامل پشتیبانی از گرافیک های دو بعدی اولیه، دستکاری تصویر، خروجی متن، خروجی صدا، موسیقی MIDI ، ورودی و تایمر، و همچنین روال های اضافی برای نقطه ثابت و ممیز شناور است. محاسبات ماتریسی ، رشته های یونیکد ، دسترسی به سیستم فایل، دستکاری فایل، فایل های داده و گرافیک سه بعدی. این کتابخانه به زبان برنامه نویسی C نوشته شده است و برای استفاده با C، C++ یا Objective-C طراحی شده است ، با اتصالات موجود برای Python ، Lua ، Scheme ، D ، Go ، و زبان های دیگر. [6] آلگرو با مستندات گسترده و مثالهای زیادی همراه است.
Allegro از Windows ، macOS ، سیستمهای شبه یونیکس ، اندروید و iOS پشتیبانی میکند و رابطهای برنامهنویسی برنامه (API) خود را در یک رابط قابل حمل انتزاع میکند . همچنین می تواند در بالای لایه ساده DirectMedia اجرا شود که برای اجرای برنامه های Allegro در مرورگر وب با استفاده از Emscripten استفاده می شود . [7]
Allegro که تحت شرایط مجوز zlib منتشر شده است، یک نرم افزار رایگان و متن باز است .
[8] آلگرو در ابتدا توسط Shawn Hargreaves برای Atari ST در اوایل دهه 1990 ساخته شد . وقتی هارگریوز متوجه شد که پلتفرم در حال نابودی است، نسخه آتاری را رها کرد و کار خود را برای کامپایلرهای Borland C++ و DJGPP در سال 1995 دوباره پیادهسازی کرد. پشتیبانی از Borland C++ در نسخه 2.0 حذف شد و DJGPP تنها کامپایلر پشتیبانیشده بود. از آنجایی که DJGPP یک کامپایلر MS-DOS بود ، همه بازیهایی که از Allegro استفاده میکردند، بنابراین از DOS استفاده میکردند و صحنه علاقهمندان به آن سیستم قدیمی را به خود جلب میکرد. [9] در حوالی سال 1998، آلگرو به چندین نسخه منشعب شد. یک پورت برای ویندوز ، WinAllegro، ایجاد شد، و همچنین در این مدت، یک پورت Unix از Allegro، XwinAllegro، ایجاد شد. این پورت های مختلف در طول نسخه های Allegro 3.9 WIP گرد هم آمدند و Allegro 4.0 اولین نسخه پایدار Allegro است که از چندین پلتفرم پشتیبانی می کند.
توسعه فعلی بر روی شاخه Allegro 5 متمرکز شده است، یک طراحی مجدد کامل از API و بیشتر عملیات داخلی کتابخانه. تلاش شد تا API سازگارتر و ایمن تر شود . بهطور پیشفرض، کتابخانه اکنون با استفاده از OpenGL یا DirectX در صورت لزوم، شتاب سختافزاری دارد. بسیاری از افزونه هایی که به عنوان پروژه های جداگانه برای Allegro 4 وجود داشتند، اکنون به طور یکپارچه با Allegro مناسب ارتباط دارند و با نصب پیش فرض همراه هستند. Allegro 5 رویداد محور است .
Allegro 5 از ویژگی های زیر در Core API خود پشتیبانی می کند: [10]
جامعه کاربران Allegro چندین افزونه کتابخانه را برای رسیدگی به مواردی مانند پیمایش نقشههای کاشی و واردات و صادرات فرمتهای مختلف فایل کمک کردهاند. همچنین برخی از بخشهایی از آنچه قبلاً بخشی از Allegro بود، اکنون به عنوان یک افزونه در Allegro 5 جدا شده است. این افزونهها با کتابخانه اصلی توزیع میشوند: [11]
اگرچه این پروژه تا به امروز شاهد پشتیبانی مستمر از شاخه Allegro 5 است، اما در بیشتر تاریخ خود، Allegro با صحنه نرم افزار رایگان MS-DOS مرتبط بود که هنوز در اوایل دهه 2000 قوی بود.