Lightweight Java Game Library
Lightweight Java Game Library
|
|
---|---|
Basic data
|
|
developer | Ioannis Tsakpinis and the LWJGL team |
Current version | 3.2.0 (July 30, 2018) |
operating system | platform independent |
programming language | Java |
License | BSD license |
www.lwjgl.org |
The Lightweight Java Game Library (LWJGL) is a program library for the Java programming language with a focus on game development. A Java programmer can use LWJGL to access OpenGL , OpenAL , and OpenCL functions. OpenGL is supported up to version 4.5 with the most important extensions, OpenAL is implemented up to version 1.1, OpenCL is implemented up to version 2.0. Since later alpha versions there is also the possibility to use DevIL to load and edit images and FMOD to load and play music files. The DevIL and FMOD support was removed with LWJGL 1.0. The reason is that DevIL methods could also be implemented in Java and other implementations in Java are already available for FMOD. - LWJGL also supports the handling of keyboard , mouse and controller inputs ( joystick , gamepad , paddle , ...). This makes LWJGL a platform-independent alternative to Microsoft DirectX .
Since November 13, 2014 work has been carried out on the completely newly developed version LWJGL 3.0. Among other things, GLFW for context and window creation and input functions were integrated into this, as well as STB for loading images, fonts and Ogg Vorbis . Bindings for EGL and OpenGL ES were added during the beta phase . Bindings for Vulkan will be added in a future update . Since LWJGL3 has a modular structure, Mantle and Direct3D may also be supported.
The library is under a BSD license , so it can be used freely, and was initiated by Caspian Rychlik-Prince, a member of PuppyGames .
aims
The design of LWJGL was optimized with regard to the following goals:
- speed
- For example, by removing methods that were intended for efficient C programming but are not suitable for Java, such as
glColor3fv
. Ensure at startup that hardware acceleration is available. - portability
- The library was designed so that it both on small devices such as mobile phones as well as on multi processor - rendering - servers running.
- simplicity
- The library is designed to be easy to use for both beginners and professionals who want to develop professional applications with it.
- Minimalism
- To keep portability in place, it helps if the API is small. A minimal set of functions enables a better overview of the possibilities and leads to fewer errors in the code. Only methods were added to the library that cannot be executed directly with Java, which is why GLU has been removed except for a few important methods.
- safety
- No pointers but buffers are used. However, the buffer positions are checked to ensure that the values are within the permitted range.
- robustness
- OpenGL error checking is mapped in Java code instead of in a separate DLL . These are runtime exceptions instead of checked exceptions (so that fewer try-catch statements are required).
Alternatives
Software based on LWJGL
LWJGL is used by a number of programs, especially computer games. These include Minecraft , Tribal Trouble or Sokobano.
Web links
Individual evidence
- ↑ Release Notes
- ↑ LWJGL3 - Main Features
- ↑ LWJGL 3.0.0a released , April 27, 2015
- ↑ About LWJGL ( Memento of the original from March 4, 2016 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.
- ↑ LWJGL Projects ( Memento of the original from November 10, 2015 in the Internet Archive ) Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice.