Allegro (Programmbibliothek)
Allegro ist eine in C geschriebene, freie Bibliothek für die Programmierung von Computerspielen in C, C++ und anderen Sprachen. Allegros Lizenz (zlib-Lizenz) schränkt Verwendung, Veränderung und Vertrieb der Bibliothek in keiner Weise ein.
Allegro
| |
---|---|
Basisdaten
| |
Erscheinungsjahr | 1990 |
Aktuelle Version | Allegro 5.2.9.1 (19. Januar 2024) |
Betriebssystem | Windows, Linux, macOS |
Programmiersprache | C |
Lizenz | zlib-Lizenz |
liballeg.org |
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 5.0 werden Windows, Unix (Linux, FreeBSD, Irix, Solaris, Darwin) sowie macOS und iOS unterstützt.
Zu den grundlegenden Leistungen Allegros zählen Funktionen und Datenstrukturen für zweidimensionale Grafik, Tonausgabe, Benutzereingaben und die zeitliche Steuerung von Programmen. Darüber hinaus liefert die Bibliothek Unterstützung für mathematische Berechnungen, einfache 3D-Computergrafik, komprimierte Daten, Dateisysteme und eine einfache grafische Benutzeroberfläche.
Einsteigerfreundlichkeit
BearbeitenAllegro 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 wird außerdem mit einer umfangreichen und verständlichen Dokumentation und vielen Beispielprogrammen ausgeliefert. Einsteigern ist Allegro aus diesen Gründen relativ leicht zugänglich.
Geschichte und Hinterlassenschaften
BearbeitenAllegros 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 der GNU Compiler Collection. Demzufolge besitzt es noch viele Routinen für die Unterstützung von DOS. Die Unterstützung für leistungsfähige Hardware, um beispielsweise Farben schnell zu mischen, und insbesondere die Anbindung an OpenGL sind im reinen Allegro noch nicht so ausgereift wie in SDL. Die Erweiterungen FBlend und AllegroGL gleichen diesen Nachteil jedoch aus.
Historisch gewachsen sind einige weitere Probleme der derzeitigen API: Teilweise sind verwendete Begriffe ungebräuchlich oder veraltet. Viele gleichwertige oder ähnliche Funktionen ließen sich zusammenfassen. Bei einigen angebotenen Routinen stellt sich die Frage, ob diese für moderne Systeme überhaupt noch zeitgemäß sind, oder ob nicht externe Angebote diese Aufgaben besser lösen könnten. Das gilt z. B. für die Festkommaarithmetik und die Software-3D-Routinen. Allegros Benutzeroberfläche wurde hauptsächlich für die vielen beiliegenden Tools eingeführt. Es stehen mehrere leistungsstarke Erweiterungen bereit, um eigene Programme ansprechender zu gestalten.
Viele der angesprochenen Nachteile sollten in einer neuen Version 5 behoben werden. Aus Zeitmangel ist die Entwicklung nach einer kurzen aktiven Phase im Jahr 2001 aber relativ langsam vorangeschritten.
Allegro 5 erhält eine komplett überarbeitete API sowie auf aktuellere Hardware zugeschnittenen Grafik-Code und ein ereignisbasiertes Eingabe- und Timer-System. Gleichzeitig zur Entwicklung der Version 5 im aktuellen Entwicklungszweig 4.9 gibt es auch Pläne, nach Erscheinen der stabilen Version 4.2.2 an einer Version 4.4 zu arbeiten, die auf dem alten Code basiert, aber einige Add-ons wie AllegroGL integrieren soll.[1]
Während die Software bisher als „Giftware“ veröffentlicht wurde, wird sie ab Version 5 unter der zlib-Lizenz veröffentlicht.
Siehe auch
BearbeitenLiteratur
Bearbeiten- Lennart Steinke: Spieleprogrammierung. bhv, 2003, ISBN 3-8266-8075-8
- Jonathan Harbour: Game Programming All in One, Second Edition. Muska & Lipman/Premier-Trade 2004, ISBN 1-59200-383-4 (englisch)
Weblinks
Bearbeiten- Offizielle Website
- Erweiterungen von Allegro, viele in Allegro geschriebene Spiele und aktive Foren (englisch)
- Allegro Wiki (englisch)
- Allegro-Tutorial (deutsch)
- FBlend
Einzelnachweise
Bearbeiten- ↑ offizielle Roadmap ( vom 1. Juli 2013 im Internet Archive) auf der Wiki-Seite von Allegro