Allegro ist eine kostenlose und quelloffene Bibliothek für die Programmierung von Computerspielen. Die Bibliothek ist hauptsächlich in C und zum Teil in C++ geschrieben. Ein großer Vorteil ist die Portabilität von Allegro. Programme lassen sich meist ohne Änderungen unter einer Vielzahl von Betriebssystemen kompilieren und ausführen. In der aktuellen stabilen Version 4.0.3 werden Windows, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), QNX, BeOS und DOS unterstützt. Unterstützung für Mac OS X besteht bereits in der Entwicklungsversion. Allegro bietet grundlegende Funktionen für Grafik, Sound, Benutzereingaben und die zeitliche Steuerung von Programmen. Darüberhinaus liefert die Bibliothek Unterstützung für mathematische Berechnungen, einfache 3D-Darstellungen, komprimierte Daten, Dateisysteme und eine einfache grafische Benutzeroberfläche.
Allegro erfüllt ähnliche Aufgaben wie die Simple DirectMedia Layer, abstrahiert jedoch etwas weiter von den Hardware-Grundlagen und bietet mehr Funktionalität "out of the box", weswegen weniger Zusatzbibliotheken benötigt werden. Allegro ist daher Einsteigern in die Spieleprogrammierung leichter zugänglich.
Der Zugang wird weiterhin dadurch erleichtert, dass Allegro mit einer ausgezeichneten umfngreichen Dokumentation und einer Vielzahl von Beispielprogrammen für die verschiedenen Funktionen ausgeliefert wird.
Allegros Wurzeln liegen in den frühen 1990er Jahren auf dem Atari ST. Die größte Bekanntheit erreichte es als Bibliothek für DJGPP, die DOS-Version von GCC. Allegro schleppt noch viele Altlasten für die Unterstützung dieses veralteten Betriebssystems mit. Die Unterstützung für moderne leistungsfähige Hardware für schnelles Überblenden und Mischen von Farben und insbesondere die Anbindung an OpenGL ist im reinen Allegro noch nicht so ausgereift wie in SDL. Es stehen jedoch die Erweiterungen FBlend und AllegroGL bereit, um diesen Nachteil größtenteils auszugleichen.
Historisch gewachsen sind einige weitere Probleme der derzeitigen API: Teilweise sind verwendete Begriffe ungebräuchlich oder veraltet oder gleichwertige Funktionalität steht unter verschiedenen Funktionsaufrufen zur Verfügung. Bei einigen angebotenen Routinen stellt sich die Frage, ob diese für moderne Systeme überhaupt noch Sinn machen, oder ob nicht externe Angebote diese Aufgaben besser lösen könnten. Dies gilt z.B. für die Festkommaarithmetik, die Software-3D-Routinen und die altbackene grafische Oberfläche.
Viele der angesprochenen Nachteile sollten in einer neuen Version 5 allesamt behoben werden. Aus Zeitmangel ist die Entwicklung in den letzten Jahren aber relativ langsam voran geschritten. Ein unabhängiger Entwickler hat vor kurzem selbständig einen Neuanfang unter dem Namen AllegroPro gewagt. Dieses Projekt zeigt die besten Zukunftsaussichten.
Allegro wird zwar hauptsächlich mit C/C++ verwendet und erweitert, lässt sich aber auch aus anderen Sprachumgebungen relativ einfach ansprechen, da C-Bibliotheken sehr weitgehend unterstützt werden.
Die Lizenz der Bibliothek ist ausgesprochen großzügig. Man kann Allegro ohne Einschränkungen verwenden, verändern und vertreiben. Die große Gemeinschaft der aktiven Benutzer stellt sehr viele Erweiterungen zur Verfügung, die fortgeschrittenen Funktionen für eine weitgehende OpenGL-Einbindung, moderne grafische Benutzeroberflächen und vieles mehr anbieten.
Weblinks
- Offizielle Homepage http://alleg.sourceforge.net/index.de.html
- Erweiterungen von Allegro, viele in Allegro geschriebene Spiele und aktive Foren http://www.allegro.cc
- Allegro Wiki http://awiki.strangesoft.net/
- AllegroPro http://home.comcast.net/~Korval/
- AllegroGL http://allegrogl.sourceforge.net/
- FBlend http://sourceforge.net/projects/fblend/
Literatur
- Lennart Steinke: Spieleprogrammierung. bhv, 2003 ISBN 3826680758
- Jonathan Harbour: Game Programming All in One, Second Edition. Muska & Lipman/Premier-Trade, 2004 ISBN 1592003834