Releases: libgdx/gdx-liftoff
1.14.0.7 "Version A to Version Z"
This release updates Gradle to 9.4.0, which supports Java 26 even before it has come out. Hooray! There are several other changes here...
- LWJGL3 Construo configuration defaults to Java 21 now. Java 17 won't be supported forever, and we pretty much have Java 21 working without issues now. Java 21 generates better API docs (and newer versions even better), so for libraries it makes sense to use newer Java at least for building the release docs. For games, there are some performance improvements in newer JDKs, though Java 25 would be needed for some of the big memory-saving changes.
- Various changes to JAR and run options to improve the experience on Java 25 and 26 (not quite so many warnings). Multi-Release JARs are enabled by default, which will help more once libGDX updates to LWJGL 3.4.1 .
- Liftoff itself has been updated to LWJGL 3.4.1, and you could do the same by copying config from Liftoff's build.gradle file.
- TeaVM has been updated to 1.5.2, along with major changes to the generated Builder files. They're much shorter, now.
- Kotlin, Groovy, and Scala versions are all updated, along with many third-party library versions.
There's probably some more things that changed that I can't think of. Thanks to Anuken for the MRJ changes! Thanks to everyone involved with TeaVM for that update!
Attached are the cross-platform JAR, three platform-specific JARs if you're having problems with antivirus false positives, and 2 archives with native launchers if you can't launch a JAR. You only need one of these! If you don't know which to pick, pick the cross-platform JAR, gdx-liftoff-1.14.0.7.jar, and install Java 21 from an OpenJDK vendor such as BellSoft or Azul. Once Java 21 is installed, you should be able to run the JAR as normal for your OS, such as by double-clicking it on Windows.
1.14.0.6 "The Logical Tuxedo"
This release is nearly the same as the last one (1.14.0.5), but updates VisUI to a more recent commit that works with libGDX 1.14.0 (including on Linux). VisUI was only really used for the fallback file picker on Linux, so this probably only affects users on Linux ( #258 is fixed), other than TextraTypist getting an update and MiniAudio working again ( #259 is fixed).
The rest of the release hasn't changed much, so here's the last release notes:
This release updates Gradle to 9.3.1, updates many third-party extensions to their latest versions, and fixes the file picker on Linux. #258 is resolved. That's all!
Gradle 9.3.1 fixes some... interesting issues, though few of them are likely to affect developers here. It does fix a bug where tests with emoji in the file names were broken, though, so that's very important! How could we live without Testπ.c ...
Third-party extensions were updated all around, and not just tommyettinger's libraries this time! Hyperlap2D saw a few updates, as did Fleks, Blade-Ink, gdx-gltf, the Spine2D runtime, KotlinX Coroutines, jdkgdxds, SquidSquad, and more. Just a reminder that if you want an update to be included in GDX-Liftoff, you can always submit a PR to update your library's new version; it usually is just a one-line change!
The Linux file picker issue is a problem with NFDe 3.4.0, which I should note, has had some sort of problem in every LWJGL3 release since LWJGL3 started binding NFDe instead of NFD (3.3.1). We resolve this on Linux by using the VisUI fallback file picker, which isn't optimal, but doesn't crash or freeze.
This release is packaged as a normal, cross-platform JAR (gdx-liftoff-1.14.0.6.jar, which is recommended if you have a JDK already), as well as smaller platform-specific JARs for Windows x64, Linux (x64 and ARM64), and macOS (x64 and ARM64), plus .zip files for Windows and Linux that bundle a JDK along with Liftoff. You only need one of these files, but if there are antivirus false positives again, the x64 Windows JAR gets some rare false positives from two or three vendors, while the cross-platform one gets a bizarre false positive from the obscure antivirus software "Elastic". The same cross-platform JAR is included in the Windows .zip bundle, but Elastic finds no problem there, which should tell you all you need to know about Elastic's reliability. Other obscure antivirus software may flag the Windows .zip, because we can't ever have nice things.
If you're using any of the JAR files, you need a JDK already; Zulu OpenJDK and BellSoft Liberica OpenJDK are recommended on Windows, and Eclipse Adoptium OpenJDK is recommended as well for Mac and Linux. If you don't yet have a JDK that can run a JAR, consider installing JDK 17 first from one of the mentioned sources, which could save a lot of hassle later on. You can use the bundled .zip files if you don't have a JDK that can run on its own, such as if your main JDK is already managed by your IDE; just extract the zip and run the Windows .exe or Linux executable.
Linux distributions that use the MUSL C library (which mostly means Alpine Linux, not any more common Linux distros) are not supported, see #255 .
That should cover it; I hope this version works for you!
1.14.0.5 "The Logical Exclusion"
This release updates Gradle to 9.3.1, updates many third-party extensions to their latest versions, and fixes the file picker on Linux. #258 is resolved. That's all!
Gradle 9.3.1 fixes some... interesting issues, though few of them are likely to affect developers here. It does fix a bug where tests with emoji in the file names were broken, though, so that's very important! How could we live without Testπ.c ...
Third-party extensions were updated all around, and not just tommyettinger's libraries this time! Hyperlap2D saw a few updates, as did Fleks, Blade-Ink, gdx-gltf, the Spine2D runtime, KotlinX Coroutines, jdkgdxds, SquidSquad, and more. Just a reminder that if you want an update to be included in GDX-Liftoff, you can always submit a PR to update your library's new version; it usually is just a one-line change!
The Linux file picker issue is a problem with NFDe 3.4.0, which I should note, has had some sort of problem in every LWJGL3 release since LWJGL3 started binding NFDe instead of NFD (3.3.1). We resolve this on Linux by using the VisUI fallback file picker, which isn't optimal, but doesn't crash or freeze.
This release is packaged as a normal, cross-platform JAR (gdx-liftoff-1.14.0.5.jar, which is recommended if you have a JDK already), as well as smaller platform-specific JARs for Windows x64, Linux (x64 and ARM64), and macOS (x64 and ARM64), plus .zip files for Windows and Linux that bundle a JDK along with Liftoff. You only need one of these files, but if there are antivirus false positives again, the x64 Windows JAR hasn't had any false positives yet, while the cross-platform one gets a bizarre false positive from the obscure antivirus software "Elastic". The same cross-platform JAR is included in the Windows .zip bundle, but Elastic finds no problem there, which should tell you all you need to know about Elastic's reliability. Other obscure antivirus software may flag the Windows .zip, because we can't ever have nice things.
If you're using any of the JAR files, you need a JDK already; Zulu OpenJDK and BellSoft Liberica OpenJDK are recommended on Windows, and Eclipse Adoptium OpenJDK is recommended as well for Mac and Linux. If you don't yet have a JDK that can run a JAR, consider installing JDK 17 first from one of the mentioned sources, which could save a lot of hassle later on. You can use the bundled .zip files if you don't have a JDK that can run on its own, such as if your main JDK is already managed by your IDE; just extract the zip and run the Windows .exe or Linux executable.
Linux distributions that use the MUSL C library (which mostly means Alpine Linux, not any more common Linux distros) are not supported, see #255 .
That should cover it; I hope this version works for you!
1.14.0.4 "The Logical Conclusion"
This release has several architectural changes meant to address problems users had with ANGLE, and updates generated projects to the latest Gradle release, 9.3.0. gdx-liftoff 1.14.0.4 no longer depends on the ANGLE backend for LWJGL3, which is basically undocumented and has several ongoing issues users reported. Generated projects have the configuration for ANGLE present in a comment still, but it isn't active by default. This release also has quite a bit of cleanup internally in the Kotlin code thanks to @EpicVon2468 , improvements to error reporting by @Hyperion2400 , and a fix for Lombok on GWT by @JojoIce . Various 3rd-party libraries have been updated, as usual. gdx-TinyVG, notably, has switched to no longer use Lombok in its used fork, since Lombok can cause issues with Construo packaging. SquidSquad also doesn't create a separate version per-module now, and all shares one squidSquadVersion property. The installDist task should name its output correctly now, according to the appName property. StartupHelper has changed a lot, and now includes a check on Linux for Nvidia drivers, which seem to (sometimes?) need an environment variable set to show Liftoff's UI at all, or any generated LWJGL3 projects on Linux.
LWJGL3 uses version 3.4.0 within Liftoff itself, but generated projects still use what libGDX defaults to, 3.3.3 . You can try to update LWJGL3 yourself by copying the LWJGL3 dependencies from Liftoff's build.gradle file into your own generated lwjgl3/build.gradle file, if you want.
Out of caution for LWJGL3's latest version and antivirus false positives, this release distributes both a cross-platform JAR file, gdx-liftoff-1.14.0.4.jar, and three platform-specific JAR files: one for x64 Windows, one for Linux, and one for macOS. The Windows-specific JAR, gdx-liftoff-1.14.0.4-win.jar, seems to have no false positives reported by VirusTotal, but the cross-platform one unreliably gets flagged by some obscure antivirus programs. If you're distributing JARs or Construo-packaged .exe files, especially those using LWJGL 3.4.0, you should probably run them through VirusTotal to make sure users can actually download and run them.
Good luck, and enjoy!
What's Changed
- Add Java version validation for HTML (GWT) by @Hyperion2400 in #248
- Enable display of multiple validation errors and simplify styling. by @Hyperion2400 in #249
- Update Configuration.kt by @EpicVon2468 in #251
- Rework StartupHelper Kotlin Template by @EpicVon2468 in #252
- Update StartupHelper & StartupHelperKt by @EpicVon2468 in #253
- Update Template & KotlinTemplate by @EpicVon2468 in #254
New Contributors
- @Hyperion2400 made their first contribution in #248
- @EpicVon2468 made their first contribution in #251
Full Changelog: v1.14.0.3...v1.14.0.4
1.14.0.3 "To The Nines"
This release (finally) updates Gradle to 9.x (9.2.1, specifically), allowing Java 25 to be used to build. In addition:
- It fixes a TeaVM WASM build quirk, so WASM works easily now by uncommenting one line.
- It gets GWT to work with the latest Gradle (which was a hurdle).
- GWT usage is a little different, but the Gradle tasks you run are 100% the same. They are faster, too!
That's it! Most of the changes to avoid deprecations for 9.x were done in the last release.
The libGDX December Jam 2025 should be starting soon, and I recommend you try this build out at least once before making your jam project, if you're participating. The browser-focused features should matter a lot during a jam!
As usual, there's a JAR release, which is recommended if you have any kind of JVM that can launch JARs, and platform-specific executables, which are only here for users who don't have a JVM they can easily use. Issue #242 suggests that you might need a VC Runtime DLL on Windows to run the winX64 release, which many users probably have already obtained by any number of other software installing it, but some might not. The JAR should just work if you have a viable JDK that can launch JARs. BellSoft Liberica and Azul Zulu OpenJDK builds are both good choices on Windows, and set the JAR registry correctly; using version 17 is recommended.
1.14.0.2 "MOE Than A Feeling"
This release updates MOE to 2.0.0-beta1, which is a substantial leap ahead that supports Java language level 24 instead of RoboVM's language level 8. It's still a beta, and it needs testing! Testing from someone with an iOS app and the ability to test it, which I don't have.
This release also fixes an embarrassing bug with GWT where it would try to use an old compatibility version of the backend even on the current libGDX version... and that backend that was compatible with only libGDX 1.12.1... So GWT should work out of the box again. TeaVM is really quite a bit better at this point for most usage, so unless you have substantial attachment to the GWT ecosystem, new projects should probably use TeaVM to target web browsers. Just not having to deal with :sources dependencies or .gwt.xml files is an advantage!
Other changes here are lots of updates to third-party dependencies, including KryoNet, Guacamole, Construo, TextraTypist, and colorful-gdx.
Notably, if you aren't using GWT, this shouldn't have deprecation warnings for Gradle 9.0 anymore. The deprecation notice wasn't shown on every build because org.gradle.logging.level is set to quiet by default, but it can finally be set to the default lifecycle without getting warnings (except from the GWT plugin). GWT's Gradle plugin didn't exactly update smoothly to Gradle 9.x, so this release still uses Gradle 8.14.3 by default. This is expected to be the last release targeting Gradle 8.x, which hasn't been updated since July.
As usual, the JAR download should work everywhere that has a JDK already installed. If you don't have a JDK already installed so you can run JARs, then Windows and Linux executables are provided... but they're not preferred, and you probably should install a JDK just so you can test JARs you build yourself. As the README.md says, installing Java 17 is strongly recommended, and installing Java 25 won't work yet.
1.14.0.1 "Sips Tea"
This release continues to use libGDX 1.14.0, because it seems quite solid! Hooray! Most of the changes here are minor in generated projects and simply update TeaVM, iOS, and some LWJGL3 files. This updates TeaVM to the latest version (gdx-teavm 1.4.0, which depends on teavm 0.13.0), and there are relatively few breaking changes, but a wide variety of fixes and improvements. The explicit version property for teavmVersion is no longer used or needed; gdx-teavm only is known to work for sure with one version anyway, so we rely on the version it pulls transitively. The LWJGL3 change is to make one case-insensitive comparison in StartupHelper work better in Turkish locales by using Locale.ROOT; thanks to @LobbyDivinus for #239 which included the fix! MetalAngle is now used by default in iOS when using RoboVM, which should improve its performance and stability a lot. Many third-party dependencies were updated, including anything that used JitPack dependencies and had updated! Kotlin's default version is now 2.2.21, the latest.
It's in general an update bonanza! Enjoy!
1.14.0.0 "StringBuildern't"
This is the first release in the 1.14.0.x series! That means libGDX 1.14.0 has released! π This release has several breaking changes, so be sure to check the CHANGES file for this new version. Some third-party libraries have already been updated, some won't need updating, and some still need small changes. Of note for Liftoff, the dependency on typing-label has been changed to one on textratypist, because typing-label's latest release (as of October 20, 2025) still uses libGDX StringBuilder, which has to be replaced with CharArray or the StringBuilder in the JDK standard library. Other libraries are also expected to need changes if they use the StringBuilder from libGDX, and certain usage of the Pools class (which is now deprecated) may not work the same way. Array's constructors that take a Class for the item type should be replaced with a method reference to create an array of that item, which is as simple as replacing Thing.class with Thing[]::new. That isn't strictly required, just encouraged to avoid deprecation warnings. There's probably some more small changes that could be needed, but there's also a lot of fixes here, especially for Android. The issues with 1.13.5 on Android release builds should all be cleared up (for months now, in nightly builds), and earlier bugs with soft keyboards were fixed in 1.13.5 and remain fixed in 1.14.0. A handful of known or suspected bugs are still around, like creating many Sound instances from .ogg files can leak native memory, but most seem to be minor or rarely encountered. (I hope I don't have to take that back in a hurry!)
As usual, we have a .jar release, which you should use if you have a JDK installed that can launch JARs, as well as Windows and Linux native builds that are meant for users who don't have a globally-installed JDK (typically, their JDKs are managed by their IDE). There's no Mac release because I don't have a Mac and Apple likes to make independent software development hard-to-impossible without one. Run the JAR file if you have a Mac, or if you can't get the JAR to run on any platform, use one of the generated template projects as a base, for Java or Kotlin. The files are larger this time because ANGLE is used by default in an attempt to improve compatibility with Windows machines without up-to-date GPU drivers, and Mac machines with limited OpenGL support, among others. If you get a ZIP, extract it first and then run the executable from the directory you extracted it into.
As always, you should have Java 17 installed for things to work best out of the box. As a new caveat, Java 25 installations will not work because Gradle 9.1 or newer is needed for those, and Android's tools haven't even become compatible with Gradle 9.0 yet.
Good luck with this new release, and I hope you make something great!
1.13.5.3 "Ah! Ah! Ah! Ah!"
A new libGDX release is probably coming soon, so what better time to release a (Final? Maybe?) release of gdx-liftoff that defaults to libGDX 1.13.1 ! There aren't a ton of changes here, but various updates are present that are meant to make users who are "just starting out" have an easier time.
The biggest change is that gdx-liftoff uses ANGLE with LWJGL3, and defaults to using it in new LWJGL3 projects as well. You can remove ANGLE easily enough from new projects (it only needs removing one dependency and one line in Lwjgl3Launcher), but I think it is usually good to keep it simply because it works on more machines without needing fiddling with drivers or compatibility settings. Some users have said games using ANGLE have less stuttering or frame drops on their machines. Because ANGLE uses built-in DirectX on Windows, it doesn't need updated GPU drivers as often. ANGLE also has compatibility improvements with Apple Silicon on Macs. It does make the JAR or compiled EXE larger, but not by much -- a few music files are often much larger than the entire added ANGLE dependency. It also only affects desktop projects using LWJGL3, so Android and iOS apps won't get bloated, and browser-based games won't be any heavier.
Construo has been updated to 2.0.1, which has some improvements... that... I can't remember exactly. I think there were some changes that mostly help releases being published to distribution services like Steam and Itch.io .
Kotlin, Groovy, and Scala defaults have been updated (you may need to deselect and reselect the checkboxes to get the new versions plugged in). Various third-party dependencies have been updated. SquidSquad should finally no longer select an old version of its library (which happened because of a comparison quirk). Internally, any usage of LML, Autumn, and Autumn MVC is gone, which cleans up the Kotlin code quite a bit and gives us less code to maintain.
As usual, use the JAR if you have a JDK ready to go, or one of the zipped executables if you don't know if your JDK will work. If you rely on a JDK installed by your IDE, and don't have another, you may want to install a free OpenJDK version such as BellSoft Liberica, Azul Zulu, or Microsoft's OpenJDK, since that will allow you to run JARs you make without needing your IDE. There are lots of options out there for OpenJDK distributions, though Oracle's are not recommended here due to confusing licensing practices and less-than-helpful installer defaults. Eclipse Adoptium (also called Temurin) is great on Linux and Mac, but has had past issues with its installer on Windows, so if you are using any MSI installer on Windows, there are the earlier-mentioned options that are good first picks. Amazon Corretto has been trouble in the past by not shipping a functionally-equivalent package to other OpenJDK vendors; it may have improved since those days. JetBrains Runtime, or JBR. is a type of JDK (not a JRE, despite the name) that offers better hot-swapping support, so it may be a good choice if you want to do that during debugging (I have no experience with its installer, if there is one, but at least some version of JBR comes with IntelliJ IDEA and maybe also Android Studio).
So, with a new libGDX release hopefully coming soon, this may just be a capstone on the 1.13.1 releases that were labeled as 1.13.5 releases. A new day approaches!
1.13.5.2 "No Time To Talk"
This release has some new fixes and safeguards when creating projects, updates lots of third-party dependencies, and includes a new template. Android has gotten some attention from @obigu and @Frosty-J , and the fork of libgdx-oboe we depend on (because the official repo is unpublished to Maven Central or JitPack) has also been updated. The Android Gradle Plugin version is now 8.9.3, which is about as new as IDEA can go currently. Because creating projects in OneDrive paths is a consistent issue with Gradle projects, we now warn if you create a project in a folder controlled by OneDrive -- put your code anywhere except there if you want to build it! The Maven Central snapshot repository changed, and that's been updated; the s01 and oss repositories have been nothing but trouble lately, and shouldn't be needed anymore, so they are removed. When creating a Kotlin launcher for an MOE project, the old launcher was broken, and the new one should work -- I don't have a Mac, so you may need to test it yourself and report back with an issue if something is still wrong. Various third-party extensions have been updated, from gdx-gltf to jdkgdxds to some other projects that have vowels in the names. There's a Kryo support library for libGDX itself now, which had been missing for a while because the last Kryo+libGDX library was for Kryo 4.x, which is quite old now. SquidSquad has finally finished its 4.0.0 stable release, and there are many modules from it available as checkboxes; sorry about scrolling through all of them!
The new template was a lot of work done as an independent project and brought into Liftoff to try to fill the need for a well-documented, more-than-one-file project to see how things can be structured. In particular, pixel art and isometric views have been a problem for more than a few people on the Discord, so the new Isometric Voxel template tries to show one way of handling depth sorting for an isometric map, even with the map able to rotate. Nearly every line of code is commented in the important files, so it should be a pretty good starter resource. Notably, the template demo doesn't use Tiled, and procedurally generates a new map every time (this is also something people sometimes want help with). It uses only freely-available assets with compatible licenses, and the licenses are all provided in the template. There's even a happy little public domain song that plays!
As before, this ships with a cross-platform JAR that should work if you already have Java 17 installed, and alternatively as Windows and Linux native executables, which are larger but don't need a JDK installed to run. You will still need a JDK if you want to test JARs you release, so getting one is always a good idea! For Windows users, BellSoft's Liberica JDK sets up the defaults correctly and reliably, so it is a good choice, and Zulu has also proven itself to be good. On Linux or MacOS, Adoptium can be good, too. In general, the prevailing opinion seems to be to avoid Oracle releases (whether they are Oracle OpenJDK or the commercial kind) because of past actions Oracle has taken. There have also been some strange bugs with Amazon Corretto, and though they may have been fixed over time, there isn't much reason to prefer it; most OpenJDK releases are rather similar in feature sets.
I hope this release works well for you; it's been 3 months since the last Liftoff release, but hopefully we can see a new libGDX release soon, and another Liftoff release with it!
What's Changed
- Updates to match min API 21 by @obigu in #234
- libgdx-oboe: Remove erroneous reference to Android 16 by @Frosty-J in #235
Full Changelog: v1.13.5.1...v1.13.5.2