- LWJGL
-
LWJGL (Lightweight Java Game Library) ist eine Programmbibliothek für die Programmiersprache Java mit dem Fokus auf Spieleentwicklung. Mithilfe von LWJGL kann ein Java-Programmierer auf OpenGL- und OpenAL-Funktionen zugreifen. OpenGL wird bis Version 2.1 mit den wichtigsten Extensions unterstützt, OpenAL ist bis Version 1.0 implementiert, die Implementierung von OpenAL 1.1 ist in späteren Versionen geplant. Seit späteren Alpha-Versionen besteht ebenfalls die Möglichkeit zur Verwendung von DevIL zum Laden und Bearbeiten von Bildern und FMOD zum Laden und Abspielen von Musikdateien. Die DevIL- und FMOD-Unterstützung wurde mit LWJGL 1.0 allerdings wieder entfernt. Die Begründung liegt darin, dass DevIL-Methoden auch in Java implementiert werden könnten und für FMOD bereits andere Implementierungen in Java vorliegen. – LWJGL unterstützt außerdem die Behandlung von Tastatur-, Maus- und Controllereingaben (Joystick, Gamepad, Paddle, ...). Damit stellt LWJGL eine plattformunabhängige Alternative zu Microsoft DirectX dar.
Die Bibliothek steht unter einer BSD-Lizenz und wurde von Caspian Rychlik-Prince, einem Mitglied von PuppyGames, initiiert.
Die aktuelle Version von LWJGL ist 2.1.0, die am 23. März 2009 veröffentlicht wurde.
Ziele
- Geschwindigkeit:
- Entfernung von Methoden, die in C effizient sind, aber nicht in Java, wie z. B.
glColor3fv
. - Überprüfung beim Start, ob Hardware-Beschleunigung verfügbar ist.
- Entfernung von Methoden, die in C effizient sind, aber nicht in Java, wie z. B.
- Portabilität:
Die Bibliothek wurde so entworfen, dass sie sowohl auf kleinen Geräten wie Handys als auch auf Multiprozessor-Rendering-Servern läuft (derzeit gibt es jedoch noch keine Handys, die so schnell sind um 3D-Spiele mit LWJGL richtig darzustellen). - Einfachheit:
Die Bibliothek wurde so entwickelt, dass sie sowohl für Anfänger leicht zu benutzen ist als auch für Profis, die damit professionelle Anwendungen entwickeln möchten. - Minimalismus:
Damit die Portabilität bestehen bleibt, ist es hilfreich wenn die API klein ist. Ein minimaler Umfang an Funktionen ermöglicht eine bessere Übersicht über die Möglichkeiten und führt zu weniger Fehlern im Code. Es wurden nur Methoden in die Library aufgenommen, die nicht direkt mit Java ausgeführt werden können, deshalb wurde auch GLU bis auf einige wichtige Methoden entfernt. - Sicherheit:
- Robustheit:
- OpenGL-Fehlerüberprüfung im Java-Code anstatt in einer separaten DLL.
- Runtime-Exceptions statt Checked-Exceptions (weniger Try-Catch-Anweisungen nötig).
Alternativen
- Jogl
- GL4Java (seit 2001 nicht mehr aktualisiert)
Weblinks
- Geschwindigkeit:
Wikimedia Foundation.