|
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."
|