Allegro (software library)

Short description: Software library for video game development

Allegro

Allegro logo

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

5.2.9.1[1] / January 19, 2024; 2 years ago (2024-01-19)

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.

## Contents

* 1 History
* 1.1 Allegro 5
* 2 Features
* 3 Addons
* 4 See also
* 5 References
* 6 External links

## History

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. However, Hargreaves abandoned the Atari version as he realized the platform was dying, 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 a DOS compiler, all games which used Allegro therefore used DOS. 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

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.

## Features

Allegro 5 supports following features in its Core API:[9]

* Configuration files – INI format file handling
* Displays - working with windows
* Events - event management
* File I/O - abstraction over both real files and files inside some data file (e.g. ZIP * archive)
* Filesystem - abstraction over both real file system and file system inside some data file (e.g. ZIP archive)
* Fixed point math - might useful for embedded processors without FPU
* Fullscreen modes
* Graphics routines - colors, pixel formats, bitmaps, clipping
* Haptic routines - force feedback and vibration on input devices
* Joystick routines
* Keyboard routines
* Memory management
* Monitors
* Mouse routines
* Path structures - file path manipulation
* Shader
* State - you can store and later restore the state of Allegro application
* System routines
* Threads
* Time
* Timer
* Touch input
* Transformations – transformation of coordinates for 2D and 3D
* UTF-8 string routines
* Direct3D integration
* OpenGL integration

## Addons

The community of Allegro users have contributed several library extensions to handle things like scrolling tile maps and import and export of various file formats. Also some parts of what used to be part of Allegro, is now separated as an addon in Allegro 5. These addons are distributed with the core library:[10]

* Audio addon
* Audio codecs - .wav, .flac, .ogg, .opus, .it, .mod, .s3m, .xm, .voc
* Color addon - color space conversion
* Font addons
* Image I/O addon - BMP, DDS, PCX, TGA, JPEG, PNG
* Main addon
* Memfile addon - treat a fixed block of contiguous memory as a file
* Native dialogs addon
* PhysicsFS addon - using archive as a file system
* Primitives addon - drawing primitives (e.g. circle)
* Video streaming addon

## See also

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

## References

1. ↑ "5.2.9.1 Release". https://github.com/liballeg/allegro5/releases/5.2.9.1/.
2. ↑ Allegro Development Team. "The giftware license". http://liballeg.org/license.html.
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. How to Program. Prentice Hall. ISBN 0-13-240416-8.
6. ↑ List of Allegro language bindings
7. ↑ "Welcome to Allegro!". 23 September 2022. https://github.com/liballeg/allegro5/blob/master/README_sdl.txt.
8. ↑ Forum posting by Shawn Hargreaves
9. ↑ "Allegro 5 Reference Manual". Core API. https://liballeg.org/a5docs/5.2.4/index.html#core-api.
10. ↑ "Allegro 5 Reference Manual". Addons. https://liballeg.org/a5docs/5.2.4/index.html#addons.

## External links

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

* v
* t
* e

Game engines (list)

* Source port
* First-person shooter engine
* list
* Game engine recreation
* list
* Game creation system
* List of visual novel engines

Free and
open-source|

| 2D|

* Adventure Game Studio
* Beats of Rage
* Cocos2d
* Corona
* Moai
* OHRRPGCE
* OpenFL
* ORX
* Pygame
* Ren'Py
* Stencyl
* Stratagus

|

2.5D|

* Build
* Doom ports
* ORX

3D|

* Away3D/AwayJS
* Cafu
* GamePlay
* GLScene
* Horde3D
* Irrlicht
* JMonkey
* OGRE
* Panda3D
* Platinum Arts Sandbox
* PlayCanvas
* Torque
* Xenko

Mix|

* Allegro
* Godot
* libGDX
* Lightweight Java Game Library
* Spring

Proprietary|

| 2D|

* Clickteam Fusion
* Construct
* Felgo (V-Play Engine)
* GameMaker Studio
* GameSalad
* RPG Maker
* UbiArt Framework
* Vicious
* Zillions of Games

|

3D|

* 4A
* Amazon Lumberyard
* AnvilNext
* Chrome
* Creation
* CryEngine
* Crystal Tools
* Decima
* Diesel
* Disrupt Engine
* Dunia Engine
* Ego
* Essence
* Fox
* Frostbite
* HeroEngine
* id Tech
* 5
* 6
* 7
* Ignite
* IW
* LithTech
* Luminous Studio
* MT Framework
* PhyreEngine
* REDengine
* RAGE
* Shark 3D
* ShiVa
* Snowdrop
* Source
* Unigine
* Unreal

Mix|

* Gamebryo
* Unity

Historical
(Free and
open-source)|

| 2D|

* Thousand Parsec
* Vassal
* Xconq

|

2.5D|

* Doom engine

3D|

* Blender Game
* Bork3D
* Crystal Space
* CyanWorlds.com Engine
* Delta3D
* Dim3
* Genesis3D
* id Tech
* Quake
* Quake II
* 3
* 4
* Open Wonderland
* Papervision3D
* PLIB

Mix|

* Wintermute Engine

Historical
(Proprietary)|

| 2D|

* Game-Maker
* GameMaker
* Garry Kitchen's GameMaker
* Genie
* MADE
* M.U.G.E.N
* SCUMM
* Southpaw
* Virtual Theatre

|

3D|

* Bitsquid
* C4
* Dark
* Enigma
* Flare3D
* GoldSrc
* Filmation
* Freescape
* INSANE
* Jade
* Jedi
* LyN
* Marmalade
* Panta Rhei
* Pie in the Sky
* Q
* Reality Lab
* RenderWare
* SAGE
* Silent Storm
* Sim RPG Maker
* Sith
* Titan
* Truevision3D
* Vision
* Visual3D
* Voxel Space
* XnGine
* Zero

Proprietary
middleware|

* Euphoria
* Gameware
* GameWorks
* Havok
* iMUSE
* Kynapse
* SpeedTree
* FaceGen

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Allegro (software library). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Allegro_(software_library)&oldid=449996"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template