This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.
The Current State
Allegro currently is in version 3.9x, with 4.0 to come soon. A far cry from its DJGPP DOS days, it is currently compatible with DJGPP, Watcom, MSVC, and Linux. X-Windows and BeOS compatibility are being worked on as of this writing. There are also well over one hundred functions within the Allegro library, ranging from basic drawing functions to sound/MIDI functions. It supports multiple resolutions, ranging from unusual 80 x 80 to standard Mode 13 to a whopping 32-bit 1600 x 1200 (assuming the graphics card supports it). Various VESA modes are supported as well. Different sprite types are supported, such as compiled and RLE. There are multiple ways to display a sprite, including masked, transparent, and gourand. Other blitting techniques include rotation and scaling, as well as standard sprite axis flipping. All the standard drawing primitives are also supported. On the other end of the scale, many polygon functions are supported (including texture mapping and gourand shading), as well as splines. All input is fully supported, minus force feedback (which may change by this writing). It also includes a full-fledged GUI designer, which allows pseudo-Visual Basic game setups.
Allegro supports various media as well. It has strong audio support for MIDI, digital samples, and audio streams. FLIC routines are also included. Regarding data, multi-object data files can be stored and accessed through an included grabber utility. The grabber is a self-contained program which, via a GUI system, allows the user to organize and preview the contents of the datafile. Any necessary files, ranging from text files to palettes, can be stored within one data file. This not only organizes the files neatly for game distribution, but also allows for easier management of data. The datafile can be easily accessed from within the game code through the file.
The Allegro package also provides plenty of support. Since it is open source, all of the library code is accessible, modifiable, and changeable at a whim. This makes Allegro less of a starter package, and more of a really flexible collection of user-definable functions. Furthermore, there is extensive documentation, in Word and HTML form, that goes over the Allegro functions. Over 40 examples of different routines are also included. Coded by contributors to Allegro, these examples range from the basic (keyboard input) to the relatively complex (3D world development).
Additionally, the package includes the capability to perform a number of system tests, mostly created by Hargreaves himself. These test MIDI and sound support, math processor capabilities, and more. One test in particular profiles the capabilities of the graphics card. These tests include resolution, color, and MMX support. Also included are timed tests that show the processing speed of graphic computations, from masked blitting to textured polygons per second.
Hargreaves also saw fit to code and include an Asteroids variant. With source code included, the game shows the graphic capabilities of Allegro, including some limited polygon handling and shading.