Lightweight Java Game Library: Java-Bibliothek

Die Lightweight Java Game Library (LWJGL) ist eine Programmbibliothek für die Programmiersprache Java mit dem Fokus auf Spieleentwicklung.

Mithilfe von LWJGL kann ein Java-Programmierer auf OpenGL-, OpenAL- und OpenCL-Funktionen zugreifen. OpenGL wird bis Version 4.5 mit den wichtigsten Extensions unterstützt, OpenAL ist bis Version 1.1 implementiert, OpenCL ist bis Version 2.0 implementiert. 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 ist LWJGL eine plattformunabhängige Alternative zu Microsoft DirectX.

Lightweight Java Game Library

Lightweight Java Game Library: Ziele, Alternativen, Auf LWJGL aufbauende Software
Basisdaten

Entwickler Ioannis Tsakpinis und das LWJGL Team
Aktuelle Version 3.3.3
(16. September 2023)
Betriebssystem plattformunabhängig
Programmiersprache Java
Lizenz BSD-Lizenz
www.lwjgl.org

Seit dem 13. November 2014 wird an der komplett neu entwickelten Version LWJGL 3.0 gearbeitet. In dieser wurden unter anderem GLFW für die Kontext-, Fenstererstellung und Eingabefunktionen eingebunden, sowie stb für das Laden von Bildern, Schriftarten und Ogg Vorbis. Während der Beta-Phase wurden Bindungen für EGL und OpenGL ES eingefügt. In einem zukünftigen Update sollen noch Bindungen für Vulkan eingefügt werden. Da LWJGL3 modular aufgebaut ist, wird möglicherweise Mantle und Direct3D zusätzlich unterstützt.

Die Bibliothek steht unter einer BSD-Lizenz, darf also frei verwendet werden, und wurde von Caspian Rychlik-Prince, einem Mitglied von PuppyGames, initiiert.

Ziele

Der Entwurf von LWJGL wurde hinsichtlich folgender Ziele optimiert:

    Geschwindigkeit
    Beispielsweise durch Entfernung von Methoden, die für effiziente C-Programmierung gedacht waren, aber für Java nicht geeignet sind, wie zum Beispiel glColor3fv. Sicherstellung beim Start, dass Hardware-Beschleunigung verfügbar ist.
    Portabilität
    Die Bibliothek wurde so entworfen, dass sie sowohl auf kleinen Geräten wie Handys als auch auf Multiprozessor-Rendering-Servern läuft.
    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, weshalb auch GLU bis auf einige wichtige Methoden entfernt wurde.
    Sicherheit
    Es werden keine Pointer, sondern Buffer verwendet. Die Buffer-Positionen werden allerdings überprüft, um sicherzustellen, dass die Werte innerhalb des erlaubten Bereichs liegen.
    Robustheit
    OpenGL-Fehlerüberprüfung werden im Java-Code abgebildet anstatt in einer separaten DLL. Dabei handelt es sich um Runtime-Exceptions statt Checked-Exceptions (damit weniger try-catch-Anweisungen nötig sind).

Alternativen

Auf LWJGL aufbauende Software

LWJGL wird von einer Reihe von Programmen, insbesondere Computerspielen verwendet. Dazu zählen Minecraft, Tribal Trouble oder Sokobano.

Einzelnachweise

Tags:

Lightweight Java Game Library ZieleLightweight Java Game Library AlternativenLightweight Java Game Library Auf LWJGL aufbauende SoftwareLightweight Java Game Library WeblinksLightweight Java Game Library EinzelnachweiseLightweight Java Game LibraryDevILDirectXFMOD (Musik-Bibliothek)GamepadJava (Programmiersprache)JoystickMaus (Computer)MicrosoftOpenALOpenCLOpenGLPaddle (Eingabegerät)ProgrammbibliothekProgrammierspracheTastatur

🔥 Trending searches on Wiki Deutsch:

Liste der Länder nach Bruttoinlandsprodukt pro KopfRobert GwisdekMatthias BrandtThe Zone of Interest (Film)MenschKanarische InselnSebastian PufpaffListe der Präsidenten der Vereinigten StaatenMichael DouglasKatja EichingerHochzeitstagThomas KinneRut BrandtFaschismusMarcel ReifIna MüllerWolfgang Amadeus MozartWladimir Wladimirowitsch PutinMercedes-Benz Baureihe 205ArgentinienAlexander BommesKreis KamenzJackpot (2020)Conor McGregorRheinwiesenlagerIsraelResilienz (Psychologie)Deadpool & WolverineMarwa EldessoukyEmilio SakrayaVictoria von Großbritannien und Irland (1840–1901)Charité (Fernsehserie)Annie MooreSofie CramerStrosek DesignKida Khodr RamadanHauptseiteGerhard SchröderEuropäisches ParlamentSherlock (Fernsehserie)Nekrolog 2024Warren BeattyEspresso MartiniFußball-Bundesliga (Österreich)Liam HemsworthAnnan-PlanHape KerkelingChristoph WaltzHeinrich VIII. (England)Sahra WagenknechtCaesar SaladVietnamkriegMaze Runner – Die Auserwählten in der TodeszoneGriechisches AlphabetStar WarsSteve JobsUkraineWilhelm FurtwänglerNordamerikanischer KupferkopfGriechenlandLacrosseFrida KahloLaura Müller (It-Girl)Meike DrosteVereinigtes KönigreichNathalie VolkBaby-BoomerYellowstone (Fernsehserie)Morena BaccarinGuillaume-AffäreKlaus Otto NagorsnikChinesische MauerKölnVictoria (Fernsehserie)Bewegungsparallaxe🡆 More