Allegro (software library)

Software library for video game development

Allegro

Logo

Original author(s)| Shawn Hargreaves [pl]
Developer(s)| Allegro developers
Initial release| early 1990; 35 years ago (1990)
Stable release|

5.2.10.0[1] / November 27, 2024; 5 months ago (2024-11-27)

Repository|

* github.com/liballeg/allegro5

Written in| C
Operating system| Windows, Linux, macOS, Android, iOS, web browser et al.
Type| Multimedia and Games SDK
License| Allegro 5: zlib[2]
Website| liballeg.org

Allegro is a software library for video game development.[3][4][5] The functionality of the library includes support for basic 2D graphics, image manipulation, text output, audio output, MIDI music, input and timers, as well as additional routines for fixed-point and floating-point matrix arithmetic, Unicode strings, file system access, file manipulation, data files, and 3D graphics. The library is written in the C programming language and designed to be used with C, C++, or Objective-C, with bindings available for Python, Lua, Scheme, D, Go, and other languages.[6] Allegro comes with extensive documentation and many examples.

Allegro supports Windows, macOS, Unix-like systems, Android, and iOS, abstracting their application programming interfaces (APIs) into one portable interface. It can run also on top of Simple DirectMedia Layer which is used to run Allegro programs in web browser using Emscripten.[7]

Released under the terms of the zlib license, Allegro is free and open source software.

## History

[edit]

Initially standing for Atari Low-Level Game Routines,[8] Allegro was originally created by Shawn Hargreaves [pl] for the Atari ST in the early 1990s. When Hargreaves realized the platform was dying, he abandoned the Atari version, and reimplemented his work for the Borland C++ and DJGPP compilers in 1995. Support for Borland C++ was dropped in version 2.0, and DJGPP was the only supported compiler. As DJGPP was an MS-DOS compiler, all games which used Allegro therefore used DOS, attracting the enthusiast scene for that legacy system.[9] Around 1998, Allegro branched out into several versions. A port to Windows, WinAllegro, was created, and also during this time, a Unix port of Allegro, XwinAllegro, was created. These various ports were brought together during the Allegro 3.9 WIP versions, with Allegro 4.0 being the first stable version of Allegro to support multiple platforms.

### Allegro 5

[edit]

Current development is focused on the Allegro 5 branch, a complete redesign of both the API and much of the library's internal operation. Effort was made to make the API more consistent and multi-thread safe. By default, the library is now hardware-accelerated using OpenGL or DirectX rendering backends where appropriate. Many of the addons that existed as separate projects for Allegro 4 now interface seamlessly with Allegro proper and are bundled with the default installation. Allegro 5 is event driven.

## See also

[edit]

* Borland Graphics Interface (BGI)
* ClanLib
* DirectX
* List of game engines
* Microsoft XNA
* OpenAL
* OpenGL
* OpenML
* Raylib
* SciTech SNAP
* SDL
* SFML
* UniVBE

## References

[edit]

1. ^ "5.2.10.0 Release". 5.2.10.0 Github Release Page. Retrieved 27 November 2024.
2. ^ Allegro Development Team. "The giftware license". Retrieved 2013-11-16.
3. ^ Harbour, Jonathan (2004). Game Programming All in One, Second Edition. Course Technology PTR. ISBN 1-59200-383-4.
4. ^ Steinke, Lennart (2003). Spielprogrammierung. BHV Verlag. ISBN 3-8266-8075-8.
5. ^ Deitel, P. J. (2006). C How to Program. Prentice Hall. ISBN 0-13-240416-8.
6. ^ List of Allegro language bindings
7. ^ "Welcome to Allegro!". GitHub. 23 September 2022.
8. ^ Forum posting by Shawn Hargreaves
9. ^ Wilson, Hamish (2024-04-09). "Building a Retro Linux Gaming Computer Part 41: The Worm Turns". GamingOnLinux. Retrieved 2024-04-13. "Although the project does see continued support to this day with the Allegro 5 branch, for much of its history Allegro was very much associated with the MS-DOS freeware scene that was still going strong well into the early 2000s."

## External links

[edit]

* Official website
* Allegro Wiki
* Games Using Allegro
* Shawn Hargreaves's Homepage

* v
* t
* e

Game engines (list)

* Source port
* First-person shooter engine
* List of first-person shooter engines
* Game engine recreation
* List of game engine recreations
* Game creation system
* Game IDE
* List of visual novel engines
* id Tech

Proprietary|

| 1980s|

* Adventure Game Interpreter
* Cobra
* Filmation
* Freescape
* Gold Box
* Sierra Creative Interpreter
* SCUMM

|

1990s|

* 3D GameStudio
* Clickteam
* Dark Engine
* GameMaker
* Genie Engine
* GoldSrc
* Jedi
* LithTech
* Mugen
* Pie in the Sky
* Reality Lab
* RenderWare
* RPG Maker
* Sim RPG Maker
* Unreal Engine 1
* Virtools
* Virtual Theatre
* Voxel Space
* Zero
* Zillions of Games

2000s|

* Anvil
* C4 Engine
* Chrome Engine
* CryEngine
* Crystal Tools
* Diesel
* Ego
* Essence Engine
* Euphoria
* Flare3D
* Frostbite
* Gamebryo
* GameSalad
* HeroEngine
* IW
* Leadwerks
* Marmalade
* MT Framework
* PhyreEngine
* Q
* RAGE
* Retro Engine
* SAGE
* Shark 3D
* Silent Storm engine
* Source
* Titan
* Unigine
* Unity
* Unreal Engine 2
* Unreal Engine 3
* Virtools 2.5
* Vicious Engine
* Vision
* Visual3D Game Engine

2010s|

* 4A Engine
* Amazon Lumberyard
* Bitsquid
* Buildbox
* Construct
* Creation Engine
* Decima
* Defold
* Felgo
* Fox Engine
* id Tech 5
* id Tech 6
* Ignite
* Kynapse
* Luminous Engine
* Nvidia GameWorks
* Pixel Game Maker MV
* RE Engine
* Snowdrop
* Stencyl
* Source 2
* UbiArt Framework
* Unreal Engine 4

2020s|

* id Tech 7
* Unreal Engine 5
* s&box

Free and
open-source|

| 1970s|

* Z-machine

|

1990s|

* Adventure Game Studio
* Build
* Crystal Space
* Doom engine
* Game-Maker
* OHRRPGCE
* Quake engine
* Quake II engine
* Stratagus

2000s|

* Away3D
* Blender Game Engine
* Bork3D Game Engine
* Cocos2d
* Dim3
* Game Editor
* GDevelop
* id Tech 3
* id Tech 4
* Irrlicht Engine
* jMonkeyEngine
* Lightweight Java Game Library
* Löve
* OGRE
* Open Wonderland
* Panda3D
* Papervision3D
* Plasma
* Platinum Arts Sandbox
* Pygame
* Ren'Py
* Scratch
* Solar2D
* Thousand Parsec
* Torque
* Vassal Engine
* Wintermute Engine

2010s|

* Delta3D
* Godot
* GPUOpen
* Horde3D
* libGDX
* Moai
* OpenFL
* ORX
* PlayCanvas
* Raylib
* Snap!
* Stencyl
* Stride

2020s|

* Open 3D Engine

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template