Cross-Platform
libGDX offers a single API to target: Windows, Linux (including the Raspberry Pi), macOS, Android, iOS and Web. Developers can use various backends to access the capabilities of the host platform, without having to write platform-specific code. Rendering is handled on all platforms through Open GL ES 2.0/3.0.
Well proven
The libGDX project was started over 10 years ago. Over the years, libGDX and its community matured: nowadays, libGDX is a well proven and reliable framework with a sound base and documentation. Furthermore, there are plenty of games built on top of libGDX, many of which are open source.
Extensive third-party ecosystem
libGDX offers a very extensive third-party ecosystem. There are numerous tools and libraries that take a lot of work off the hands of developers. Awesome-libGDX is a curated list of libGDX-centered libraries and a good starting point for anyone new in the libGDX world.
Do whatever you want
Unlike many popular editor-based platforms, libGDX is entirely code-centric, offering developers fine-grained control over every aspect of their game.
- Freedom: While libGDX gives you access to various different tools and abstractions, you can still access the underlying base. libGDX acknowledges that there is no one-size-fits-all solution, so it doesn’t force you to use certain tools or coding styles: you are free to do whatever you want!
- Open Source: libGDX is licensed under Apache 2.0 and maintained by the community, so you can take a look under the hood and see how everything works.
- Java: Since libGDX uses Java, you can profit from the wide Java ecosystem – Powerful IDEs, out-of-the-box support for Git, fined-tuned debuggers, performance profilers, and an abundance of well-tried libraries and frameworks, as well as many resources and extensive documentation.
Feature Packed
libGDX comes with batteries included. Write 2D or 3D games and let libGDX worry about low-level details.
Audio
- Streaming music and sound effect playback for WAV, MP3 and OGG
- Direct access to audio device for PCM sample playback and recording
Input Handling
- Abstractions for mouse, keyboard, touchscreen, controllers, accelerometer, gyroscope and compass
- Gesture detection (recognising taps, panning, flinging and pinch zooming)
Math & Physics
- Matrix, vector and quaternion classes; accelerated via native C code where possible (if you are interested in that, also note our gdx-jnigen project)
- Bounding shapes and volumes as well as a Frustum class for picking and culling
- Intersection and overlap testing
- Steering Behaviours, Formation Motion, Pathfinding, Behaviour Trees and Finite State Machines
- Common interpolators, different spline implementations, concave polygon triangulators and more
- 2D physics: JNI wrapper for the popular Box2D physics (see also Box2DLights). Alternatively, you can take a look at jbump for a simpler physics implementation.
- 3D physics: JNI Wrapper for Bullet physics
Integration of Services
- Easy integration of game services, such as Google Play Games, Apple Game Center, and more.
- Cross-platform API for in-app purchases.
- Third-party support for Google’s Firebase, the Steamworks API, gameanalytics.com and Facebook’s Graph API.
- Easy integration of AdMob
File I/O & Storage
- File system abstraction for all platforms
- Straight-forward asset management
- Preferences for lightweight settings storage
- JSON and XML serialisation
- Custom, optimised collections, with primitive support
Graphics
- Rendering through OpenGL ES 2.0/3.0 on all platforms
-
Low-Level OpenGL helpers:
- Vertex arrays and vertex buffer objects
- Meshes
- Textures
- Framebuffer objects
- Shaders, integrating easily with meshes
- Immediate mode rendering emulation
- Simple shape rendering
- Automatic software or hardware mipmap generation
- Automatic handling of OpenGL ES context loss
-
High-level 2D APIs:
- Orthographic camera
- High-performance sprite batching and caching
- Texture atlases, with whitespace stripping support. Either generated offline or at runtime
- Bitmap fonts. Either generated offline or loaded from TTF files
- 2D Particle system
- TMX tile map support
- 2D scene-graph API
-
A Powerful UI Solution:
- 2D UI library, based on scene-graph API
- A plethora of official and third-party widgets
- Fully skinnable; Composer for creating UI skins
-
High-Level 3D APIs:
- Decal batching, for 3D billboards or particle systems
- Basic loaders for Wavefront OBJ and MD5
- 3D rendering API with materials, animation and lighting system and support for loading FBX models via fbx-conv
- Third-party support for GLTF 2.0
- Rudimentary VR support
- Third-party post-processing shader effects
Networking
- Gdx.net for simple networking (TCP sockets and HTTP requests)
- Cross-platform WebSocket support
- Common Java networking solutions: KryoNet & Netty (not supported on Web)
And…
…a Great Community! Get support from a very friendly community of game and application developers or use any of the libraries and tools created by members of our community. Join us today and get started with your very first libGDX game!