ktx alternatives and similar libraries
Based on the "Game Development" category
Do you think we are missing an alternative of ktx or a related project?
Ko*tlin utilities for LibGDX* applications.
About the project
KTX aims to make LibGDX as Kotlin-friendly as possible without turning the API upside down. It provides modular utilities for certain parts of LibGDX with poor Kotlin support. This is not a new framework by any means - but Kotlin certainly makes LibGDX feel like one.
Do not confuse KTX with
android-ktx: an official Google project with
Android utilities. "KTX" name was chosen long before the Android project was announced.
KTX was designed to be modular from day one: in fact, some of these libraries are just a single Kotlin file. After all,
you might not want or need all modules in your application. When possible, the extensions do not depend on the standard
Kotlin library - and even if they do, it is marked as a
provided dependency. You can choose the Kotlin version that suits
you best and it will not be overridden by your build system.
Current KTX modules:
- [actors](actors): general
Scene2Dutilities for stages, actors, actions and event listeners.
ApplicationListenerabstract implementations and other general LibGDX application utilities.
- [assets](assets): resources management utilities.
- [async](async): coroutines context based on LibGDX threading model.
Box2Dphysics engine utilities.
- [collections](collections): extensions for LibGDX custom collections. Based on Kotlin standard library utilities.
- [freetype](freetype): FreeType font loading utilities.
- [graphics](graphics): utilities related to rendering tools and graphics.
- [i18n](i18n): some simple extensions that make LibGDX internationalization API less verbose, safer and easier to use.
- [inject](inject): unsettlingly simple dependency injection with nearly zero runtime overhead and no reflection trickery.
- [json](json): utilities for LibGDX JSON serialization class.
- [log](log): minimal runtime overhead cross-platform logging using inlined blocks.
- [math](math): operator overloads for LibGDX math API and general math utilities.
- [scene2d](scene2d): type-safe Kotlin builders for
- [style](style): enhances
SkinAPI with type-safe builders of official Scene2D widget styles. Replace your JSON skin file with type-safe DSL.
- [vis](vis): type-safe Kotlin builders for
VisUI. An alternative to the [scene2d](scene2d) module.
- [vis-style](vis-style): enhances
SkinAPI with type-safe builders of
VisUIwidget styles. An extension of [style](style) module.
Note that most guides and examples assume that the reader is at least a bit familiar with the LibGDX API.
Afraid to use some third-party code? Browse through the sources, run the test suites. While certainly not perfect, we try to keep the public API clean and every feature fully unit tested. Note: coverage tools still have problems with Kotlin inlined methods, so the reported code coverage might be much lower than the actual.
KTX libraries are currently in late beta. While tested and stable enough, we want to give them a little bit
more time and get some user feedback before a stable release. All versions are available through Maven Central and
here. You can also use the preview snapshot releases from
All libraries follow the same naming schema - this is an example Gradle dependency:
$module with the name of required KTX library.
$ktxVersion usually matches LibGDX version it was
compiled against - although it might end with
-b1 (if it is a beta release) or
-SNAPSHOT (if you are using
the snapshots). For example, the first official beta release with the current group ID was compiled against LibGDX
1.9.6 and its version was
1.9.6-b2. You can browse through our releases
Note that even snapshots should be more or less stable, as libraries are not pushed to Maven Central unless they pass the extensive tests.
Each module contains a
README.md file with a list of all features or a guide with a few code snippets. Browse through
the directories in root folder to find out more about each library. GitHub releases also contain archives with generated
Dokka documentation for each module. KTX wiki lists some useful resources as well.
[Contribution and working from sources](.github/CONTRIBUTING.md)
If you want to help, read the [contribution](.github/CONTRIBUTING.md) guideline and browse through the issues to see what's currently to do. Don't be afraid to create issues just to ask a question or make a request for any kind of improvements. Before creating any pull requests, be aware that the code is dedicated to [public domain](LICENSE.txt).
*Note that all licence references and agreements mentioned in the ktx README section above are relevant to that project's source code only.