Zum Inhalt springen

Lightweight Java Game Library

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 9. Juni 2005 um 19:16 Uhr durch WiESi (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

LWJGL (Lightweight Java Game Library) ist eine externe Programmbibliothek für die Programmiersprache Java von Sun Microsystems mit dem Fokus auf Spieleentwicklung. Mithilfe von LWJGL kann ein Java-Programmierer auf OpenGL- und OpenAL-Funktionen zugreifen. Außerdem übernimmt LWJGL die Behandlung von Tastatur- und Mauseingaben. Damit stellt LWJGL eine plattformunabhängige Alternative zu Microsoft DirectX dar.

Die aktuelle Version von LWJGL ist 0.97 Alpha, die am 19. Mai 2005 veröffentlicht wurde.

Vorteile

Geschwindigkeit

Hohe Geschwindigkeit durch

  • Entfernung von Methoden, die in C effizient sind, aber nicht in Java, wie z. B. glColor3fv
  • Auswerfen einer Exception wenn Hardwarebeschleunigung auf Windows nicht verfügbar ist

Portabilität

Die Library 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).

Einfach

LWJGL wurde so entwickelt, dass es sowohl für Anfänger leicht zum benutzen ist, als auch für Profis, die damit professionelle Anwendungen entwickeln wollen.

Klein

Damit die Portabilität bestehen bleiben kann, muss die API klein sein.

  • Klein = Einfach. Je weniger Wege es gibt etwas zu machen, desto einfacher ist der einzige Weg wie es richtig funktioniert herauszufinden.
  • Klein = Weniger Fehler im Code.
  • Klein = Besser zum herunterladen.
  • Klein = J2ME.

Sicherheit

  • Es werden keine Pointer sondern Buffer verwendet.
  • Überprüfungen von Buffer-Positionen und Limits um sicherzustellen, dass die Werte innerhalb des erlaubten Bereichs sind.

Robustheit

  • OpenGL-Fehlerüberprüfung im Java-Code anstatt in einer separaten DLL
  • Runtime-Exceptions statt Checked-Exceptions (weniger Try-Catch-Anweisungen nötig)

Minimal

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.

Alternativen