In five years, Allegro, an open source game programming library, has grown from a few basic 320x200 VGA routines to a robust collection of functions created from over 100 contributors. Allegro is a library that solo or independent game developers can use to focus their limited resources on game design -- not research and development. For larger, more experienced developers, Allegro creates a stable game foundation from which to build an engine.
It is now estimated that Allegro's users number in the thousands. It also has been used in non-game products, from web browsers (Caldera’s Embrowser, for instance), to the graphics software controller in an arcade pinball machine, to the latest version of the highly popular MAME arcade game emulator. Additionally, there are several web pages dedicated to Allegro, making information on the library easily accessible.
In the Beginning…
In late 1994, programmer Shawn Hargreaves had a vision. He envisioned a free, open source game library, which would make game programming and development easier for everyone. The barriers of game development would fall. And it would be good.
Okay, so maybe it wasn’t that dramatic.
Hargreaves created the library using DJGPP for the simple reason that he wanted to make games, and he wanted to save some cash. Hargreaves recalls wryly that, "I was a poor student, and having just splashed out on a second-hand 486, I didn’t have any cash left for essentials like software."
DJGPP, because it was a good (and free) C/C++ compiler, became Hargreaves' platform. This twist of fate contributed to the later success of Allegro. As Hargreaves notes, "There were already plenty of libraries available for the commercial compilers, and I don’t think anyone using them would have given Allegro a second glance. The DJGPP system was still very new, though, and a lot of people were in the process of switching over to it and looking around for a decent support library. A large potential market plus no competition equals good timing…"
Thus began Allegro, technically. Hargreaves made a few short VGA routines, threw them on the Internet, and went on with his life. The limited library did what he needed, and Hargreaves considered it done. A year later, however, a casual Allegro update changed the fate of his library. Hargreaves recalls that, "The big turning point came when I added some SVGA code, initially just because I was curious to see how it worked. It turned out that a lot of people were looking for something exactly like this, so all of a sudden I had hundreds of users, and things just grew from there. I later added a sound player, true color graphics modes, and most recently porting to several platforms."
Allegro has been an open source project, but it wasn't always intended as such. Originally, users made bug fixes, particularly regarding hardware Hargreaves didn’t have. This expanded to people sending in functions to become part of the library.
Hargreaves believes that Allegro wouldn’t have made it any other way. Indeed, as he puts it, "If Allegro wasn’t open source, it would have ground to a halt after I left the university and started working full-time. I simply don’t have all that many hours to put into it anymore, so it needs other people to make things go on improving."