liballeg/allegro5 logo

liballeg/allegro5

Free

The official Allegro 5 git repository. Pull requests welcome!

FreeFree tier
Type
Open Source

About liballeg/allegro5

Allegro 5 is a cross-platform library primarily designed for video game and multimedia programming. It handles common low-level tasks such as creating windows, accepting user input, loading data, drawing images, and playing sounds, abstracting away the underlying platform. Allegro is not a game engine, offering developers full freedom in program design and structure. It supports Windows, Linux, macOS, iPhone, and Android, and provides a user-friendly C API usable from C++ and many other languages. Additional features include hardware acceleration (via OpenGL or Direct3D), audio recording, font loading, video playback, and abstractions over shaders and low-level polygon drawing.

Key Features

Cross-platform support for Windows, Linux, macOS, iPhone, and Android
Hardware-accelerated bitmap and graphical primitive drawing via OpenGL or Direct3D
User-friendly C API usable from C++ and many other programming languages
Audio recording and playback support
Font loading and drawing capabilities
Video playback functionality
Abstractions over shaders and low-level polygon drawing

Pros & Cons

Pros
  • Free and open-source (MIT license)
  • Cross-platform: runs on Windows, Linux, macOS, iOS, and Android
  • Hardware acceleration for graphics improves performance
  • Not a game engine, allowing full structural freedom
  • Comprehensive low-level abstractions (input, audio, video, fonts)
Cons
  • Not a game engine; requires manual code structure and logic
  • Requires compilation with specific dependencies (e.g., DirectX SDK on Windows, X11 on Linux)
  • Learning curve for developers new to low-level multimedia libraries

Best For

Video game developmentMultimedia applicationsEducational projects for learning graphics programmingPrototyping interactive applications

FAQ

What is Allegro?
Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles low-level tasks such as creating windows, accepting user input, loading data, drawing images, and playing sounds.
Is Allegro a game engine?
No, Allegro is not a game engine. It provides low-level functionality and abstractions, but you are free to design and structure your program as you like.
What platforms does Allegro support?
Allegro is supported on Windows, Linux, macOS, iPhone, and Android.
What programming languages can I use with Allegro?
Allegro has a C API that is also usable from C++ and many other programming languages.
Does Allegro require any dependencies?
Yes, the core library requires certain dependencies depending on the platform, such as the DirectX SDK on Windows or X11 development libraries on Linux.