# Awesome libGDX

> libGDX is a relatively low level, free, open source cross platform game development framework written in Java.

> This list is a curated collection of awesome resources, tools, tutorials, and projects using the libGDX game framework to help developers make awesome games, conforming to the Awesome Manifesto.

> Contributions very welcome but first see Contributing.

## Contents

- Resources
  - Artificial Intelligence
  - Controllers
  - Editors
  - Entity Component System (ECS)
  - Physics
  - Services
  - Setup and Deployment
  - User Interface
  - Visual Effects
  - Audio
  - Others
- Tutorials
  - Getting Started
  - Advanced
- Assets
- Community
- Other Lists

## Resources

Resources that can be used in libGDX code to boost the framework’s capabilities.

### Algorithms and AI

- gdx-ai - Artificial Intelligence framework featuring Steering Behaviors, Formation Motion, Pathfinding, Behavior Trees and Finite State Machines.
- Simple Graphs - A java library for graph data structures and algorithms (including fast pathfinding).

### Controllers

- gdx-controllers - Adds support to gamepads and joysticks.
- gdx-controllerutils - Adds Scene2D button input support, user configurable button mappings and hotplugging for LWJGL2.
- sdl2gdx - Powerful gamepad implementation using SDL. Supports hundreds of controllers under the same mapping, rumble, and hotplugging.

### Editors

- HyperLap2D - Visual editor for complex 2D worlds and scenes with a runtime for libGDX.
- Mundus - World/level editor for 3D worlds with a runtime for libGDX.
- Spine - Skeleton-based animation tool that focuses specifically on 2D animation for games.

### Entity Component System (ECS)

- Artemis-odb - High performance java based Entity-Component-System framework.
- Ashley - A Java entity system inspired by Ash & Artemis.

### Physics

- Box2D - One of the most popular physics libraries for 2D games.
- Bullet - 3D Collision Detection and Rigid Body Dynamics Library.
- jbump - Easy to implement AABB collision detection useful for platformers and other simple 2D games.

### Services

- gdx-facebook - Provides cross-platform support for Facebook Graph API.
- gdx-fireapp - Cross-platform API for Firebase.
- gdx-firebase - Cross-platform (only Desktop/Android) API for Firebase.
- gdx-gameanalytics - Game Analytics REST API client implementation for libGDX. Works on all backends.
- gdx-gamesvcs - Easy integration of gameservices, such as Google Play Games, Apple Game Center, and more.
- gdx-pay - Provides a cross-platform API for InApp purchasing.
- steamworks4j - A thin wrapper which allows Java applications to access the Steamworks C++ API.

### Setup and Deployment

- gdx-liftoff - A modern setup tool for libGDX that supports more backends and allows adding libraries with one click.
- libgdx-library-template - A skeleton project for making new libraries, since they need different config.
- Packr - Packages your JAR, assets and a JVM for distribution on Windows, Linux and macOS.

### User Interface

- Freetype - Generate BitmapFonts of your desired size on the fly from lightweight .ttf font files.
- gdx-dialogs - Provides cross-platform support for native dialogs.
- gdx-skins - Free Scene2D GUI skins.
- InGameConsole - Allows a developer to add a console (similar to how it is featured in Source games) to their game.
- msdf-gdx - Provides lightweight utilities to draw high-quality MSDF (multi-channel signed distance field) text on libGDX.
- PieMenu - Radial menus for Scene2D that are highly flexible and easy to customize.
- Ray3K Skins - Free Scene2D.UI skins with example code, custom drawables, and experimental features.
- Skin Composer - Create skins for libGDX scene2d.ui with a graphical interface.
- TenPatch - An alternative to libGDX’s 9patch implementation that implements multiple stretch regions.
- TextraTypist - Like TypingLabel (below), but also supports styles, emoji, multiple fonts, clickable links, etc.
- TypingLabel - A libGDX Label that appears as if it was being typed in real time.
- VisUI - Allows to create nice looking UI in libGDX using scene2d.ui. Note this is not a UI editor.

### Visual Effects

- Box2DLights - 2D lighting framework that uses Box2D for raycasting and OpenGL ES 2.0 for rendering.
- colorful-gdx - Expands how tinting can affect colors; also has many pre-written shaders.
- HackLights - Lightweight framebuffer based lighting engine for libGDX.
- gdx-vfx - Flexible post-processing shader visual effects based on libgdx-contribs-postprocessing.
- libgdx-screenmanager - A screen manager for libGDX supporting various transition effects
- Particle Park - A showcase of downloadable particle effects with live previews.
- Shape Drawer - A performant alternative to ShapeRenderer that avoids Batch flushing.
- gdx-gltf - GLTF 3D file format support (import/export), PBR shaders, and others advanced rendering.
- gdx-graph - Provides a GUI to design your rendering pipeline and shaders, and a library to easily incorporate them into your games.

### Audio

- TuningFork - Advanced 3D audio features for libGDX desktop users.
- gdx-miniaudio - Advanced Cross Platform Audio Engine for libGDX based on MiniAudio.
- gdx-sfx - Some goodies for better sound effects in libGDX.
- gdx-pd - Pure Data extension for libGDX.

### Others

- anim8-gdx - Allows saving (animated) GIFs and PNGs from sequences of Pixmaps, with configurable dithering if needed.
- gdx-dbgagent - Java Agent for debugging common issues, like objects not being disposed and constants such as Color.WHITE being modified.
- gdx-jnigen - Small library that allows C/C++ code to be written inline with Java source code.
- gdxGifRecorder - A utility class that records a GIF and saves it automatically.
- KTX - Kotlin extensions and utilities for libGDX.
- noise4j - Simple map generators based on various procedural content generation tutorials.
- Texture Packer GUI - A simple way to pack and manage texture atlases for libGDX game framework.
- libGDX Plugin - A plugin for IntelliJ IDEA and Android Studio that adds a number of libGDX features and tools, such as color previews and additional inspections for common mistakes.

## Tutorials

Tutorials for newbies and seasoned developers alike.

### Getting Started

- Official libGDX Wiki - Official libGDX wiki that contains a huge amount of information.
- Tann’s Hello libGDX - An excellent guide for beginners on how to create a game from scratch.
- Development Tutorial Playlist by Phillip Mod Dev - A series of videos going over the basics of libGDX.
- Brandon Grasley’s Space Shooter Game - Video tutorial series on making a complete Android game from scratch.
- Creating a Launcher - Video tutorial on using libGDX to make a game launcher.
- Deploying with JPackage - A tutorial on deploying libGDX games with JPackage via Gradle commands.
- JSON in Game Dev - General tutorial on using JSON for storing data.
- Progress Bar Design - Discusses the pros and cons of different progress bar design techniques with examples.
- libGDX External Tutorials - Big list of official unofficial tutorials.
- Scene2D.UI From the Ground Up - Covers the basics of UI design in Scene2D, libGDX’s premiere scene graph and layout toolkit.

### Advanced

- Code Hotswapping - Video tutorial on enabling code hotswapping for libGDX projects to increase productivity.
- Dynamic Textures with Pixmap - Details how to create a mask using Pixmaps.
- iOS Deployment Tutorial - Deploying to iOS in 2019 using RoboVM.
- Sub-pixel Perfect Smooth Scrolling - Pixel-perfect smooth scrolling.
- Introduction to 3D Series - A tutorial series on libGDX 3D using gdx-gltf.

### General Learning Material

- Book of Shaders - Step-by-step guide through the abstract and complex universe of Fragment Shaders. GLSL.
- Game Programming Patterns - Architecture and design patterns for games.

## Assets

Collection of free and high quality assets to get your game to the next level.

- Kenney Assets - High quality assets for your game, from 2D and 3D art to sound effects.
- OpenGameArt.org - Repository offering a variety of open content assets.
- Game-Icons.net - Repository containing heaps of cool game related graphics.
- Jsfxr - Quickly create unique sound effects by pressing a few buttons, excellent for prototyping.
- freesound.org - Huge collaborative database of audio snippets, samples, recordings, bleeps.

## Community

Get in touch with other libGDX developers to collaborate and get help.

- Discord - An active chat with various leaders from the community available every day. Recommended
- Reddit - Unofficial subreddit for libGDX. Not a lot of activity.

## Other Lists

Other awesome lists that might be useful to libGDX developers.

- Game Networking - A Curated List of Game Network Programming Resources.
- Game Talks - A curated list of gaming talks (development, design, etc).
- Java - A curated list of awesome Java frameworks, libraries and software.
- Kotlin - A curated list of awesome Kotlin related stuff.
- Magic Tools - A list of Game Development resources to make magic happen.
- Game Accessibility Guidelines - A straightforward reference for inclusive game design, to ensure that games are just as fun for as wide a range of people as possible. Recommended
- Awesome Gamedev - A collection of free software and free culture resources for making amazing games.

## Contributing

Contributions welcome! Read the contribution guidelines first.

## License

libgdx.md Github