Releases: libgdx/gdx-liftoff
1.13.0.1 "Back To The Future"
This release is in the 1.13.0.x line, but it itself uses libGDX 1.12.1, and projects generated with it can use 1.13.0 or 1.12.1 (which is currently the default), as well as the typical range of other versions. Why? WHYYYY??? Antivirus false positives started appearing for LWJGL 3.3.4 a little while ago, and libGDX 1.13.0 uses LWJGL 3.3.4, so Liftoff started getting flagged as a result. This also would have made projects using libGDX 1.13.0 become flagged by antivirus programs, which nobody wants! However, libGDX 1.12.1 is not affected, since it (usually) uses LWJGL 3.3.3 . Some earlier versions of Liftoff were also affected by this because they used the newer (nicer) file dialog library in LWJGL 3.3.4, and that forced a dependency on all of 3.3.4 . Ugh. So now we have to use the file dialog library NFD at version 3.3.1, because 3.3.2 and 3.3.3 were both broken in different ways. But, the jar release now gets through at least VirusTotal just fine: https://www.virustotal.com/gui/file/073834634c0400b0f897720925c2732e13bd8ee83300bc6a64be74143ace6deb?nocache=1
The native executables get through VirusTotal almost fine; Fortinet has a false positive that it doesn't name and nothing else finds anything suspicious. Fortinet finds a lot of false positives, it looks like.
Feature-wise, this release is very similar to 1.13.0.0 . Many third-party extensions have been updated, and Construo is 1.4.3 here now. Of course, the main feature is "this can be downloaded now, without antivirus software complaining."
I guess we gotta go back in time!
1.13.0.0 "Going The Distance"
NOTE: Various antivirus vendors are flagging LWJGL 3.3.4, which this version of Liftoff uses, as some form of malware (see this issue). The recommended fix until LWJGL figures out some solution (maybe a new release, maybe reporting the false positive to each antivirus vendor) is to use Release 1.12.1.17 for now. A new 1.12.1.x release may come out if needed.
It's the first release of the 1.13.0.x cycle! Which may or may not be very long, depending on what fixes can be fit into a patch release. Yes, even before the first setup tool release, people had already found bugs in 1.13.0, but that means at least some of those are already fixed here! There aren't a ton of changes relative to 1.12.1.17, but there are some substantial ones.
- libGDX 1.13.0's Android backend at least temporarily depends on AndroidX. This adds the dependency to Android projects and sets the
android.useAndroidX
property totrue
. - GWT 2.11.0 is used by the official libGDX 1.13.0.0 GWT backend now, so we only ever use the third-party backend if users select libGDX 1.12.1 (or maybe older).
- Construo has been updated to 1.4.2, which was a large amount of work that @fourlastor pulled off in a hurry! Despite relatively few files being changed in Construo itself, this was an interesting ordeal, but it allows Kotlin Android modules to coexist with LWJGL3 modules, and everything gets along now. Kotlin on iOS hasn't been tested yet, and I don't even know if that's something people do, but hopefully the fixes applied in Construo 1.4.2 are general enough that iOS will work regardless of languages.
- Graal Native won't cause problems on projects without an LWJGL3 module.
- Kotlin has been updated to 2.0.21. Tests using Kotlin should work now, if you have them.
- "Open in IDEA" works now with the current JetBrains Toolbox on Windows. JetBrains changed the name of a file that we need to open, and so all older Liftoff versions won't be able to "Open in Idea" with the current Toolbox. But this version works.
A known issue with 1.13.0 is that SpriteBatch is essentially broken on GWT (and only on GWT). It may work on TeaVM. You can use this substitute SpriteBatch as a dependency or by copying the file into your sources (the second way is the easier way). It probably doesn't perform as well as it should, but it isn't broken. If you don't target GWT, you should be unaffected by this.
This release, like the last one, does not include native builds for macOS; you should use the .jar download with a JDK (17 or greater) that you have installed. The .jar works everywhere as long as you have a JDK 17 or later installed. The Linux and Windows builds work on x64 architecture for those OSes, and don't need a separate JDK (which can be useful if Android Studio or IDEA is managing your JVM). Getting a macOS native .app to work is a serious hassle for users, involving a variety of command-line steps; see if the .jar is sufficient for you!
Thanks to @fourlastor , @Quillraven , and @nulldoubt (I hope I got the username right) for a variety of important contributions. And thanks to all the fearless early adopters of 1.13.0 who have been poking at this release to get it to work!
1.12.1.17 "Post-Credits Teaser"
NOTE: Due to antivirus issues with LWJGL 3.3.4, which can be used by libGDX 1.13.0, this release (1.12.1.17) is preferred for now (it doesn't use LWJGL 3.3.4). See this issue for more details. New 1.12.1.x releases may be coming out soon if we can resolve that 1.12.1 is fully unaffected.
This is the last release of the 1.12.1 line, but for a happy reason: libGDX 1.13.0 was just released! 🎉 This version finishes up any of the small improvements that were being processed for the next release, and shoves them on out the door. These improvements include:
- Gradle 8.10.2 is less glitchy than 8.10.1, so it doesn't need the mitigation that 8.10.1 needed. It turns out that, for me at least, the mitigation (disabling the Gradle daemon) actually improves startup time a lot on all Gradle versions, so I'm cautiously leaving that disabled as the default. You can change
false
totrue
on the first line ofgradle.properties
, if you want, and see if you notice a difference after a while. - Gradle tasks can be added and will run now! This adds a little to project generation time if you have Gradle tasks, but will show immediately if there's something wrong with the Gradle configuration. There currently isn't a way to remove Gradle tasks added to the list, so hopefully a version soon will be able to address that.
- Because Gradle tasks work again, MOE works again! It needed the Gradle tasks to properly complete its project creation, and now they seem to just work.
- Construo should work in projects that have GWT, Android, or iOS (RoboVM or MOE) modules now, because platform-specific plugins are now added in the appropriate platforms and not the root Gradle file. There were problems before from other platforms being initialized when Construo only wanted to have LWJGL3 initialized, since that's where it works.
- Useful PRs by @damcaoson , @FelixDes and @henu improve the user experience and project correctness in a variety of ways.
This release does not include a Construo native build for MacOS, because after thinking about it and rereading the lengthy steps required to get any downloaded .app to work on recent macOS, I think users should really just download the .jar and run that with their own JDK. The .jar file is a smaller download, it doesn't need to have any quarantine bit removed (that I know of), and the steps to run a native .app that hasn't gone through notarizing and all that seem like way too much work for everyone. You can also use the .jar on other platforms if you have a JDK installed! The same file! Imagine that!
Well, so long, 1.12.1; you were a good and solid release! And hello, 1.13.0, we have high hopes for you!
1.12.1.16 "No MOE? No More!"
This is just a patch release for the last version; it includes just two small changes and is otherwise the same. The main one is that MOE is now actually fully enabled in the UI! Most of the code was around before, and would have worked if the UI permitted it; now it does. The only other, tiny, change is that one third-party library (digital) had a default version update (shocking, I know). For anything else, the release notes from the last version should apply.
That includes the warning about the native distribution for macOS! If you aren't sure you need the native distributions, maybe you should try the JAR first!
Starting with this release, older native distributions will be removed from releases where they were known not to work correctly, or if they are made entirely obsolete by a newer release. JAR releases, which are smaller files, will not be removed unless the repo is completely out of space.
1.12.1.15 "Jam-Packed With Updates"
Users of macOS, consider yourselves warned! Read this troubleshooting section should thine cursor falter in haste, and foolishly the native distribution click ye! But, you should just use the JAR instead, if you can run JARs!
This mighty release should sate the ravenous throngs beseeching, nay, demanding updates to their precious versions!
First, some Mac support from updating NFD to NFDe, now at 3.3.4, to help the file selection dialogs. In addition, this updates Construo to 1.4.1 , which helps the native Mac distribution here a little (you should still probably prefer the .jar if that works for you).
The language defaults for Kotlin and Scala are now at their current latest stable versions (2.0.20 for Kotlin, 3.5.0 for Scala). If anyone wants Scala 2.x support still, please post an issue here on GitHub; Scala 3 uses different... everything from Scala 2, and this means Liftoff can generate dependencies for one but not the other.
MOE is enabled again, thanks to @Berstanio 's PR! This is another option for targeting iOS that allows using newer Java language levels and APIs than RoboVM, but isn't official and hasn't been tested as thoroughly. If you like features, I'm sure this is enticing, though!
Gradle is now up-to-date at 8.10.1, but this release has a bad known issue that, as of today, has a known workaround that Liftoff uses starting in this release. The issue is, generally, an unexpected build failure related to Gradle's "daemon" service it runs, and disabling the daemon avoids risking the failures at all. The 8.10.2 release is expected to issue a better fix that permits using the daemon if you want, but 8.10.1 without the daemon seems to perform fine so far, actually better than 8.10 with the daemon, potentially.
The OpenJDK versions downloaded by Construo have been updated; I'm not sure if they're the most recent right now, but they are newer.
Various bugs were fixed:
projectVersion
won't appear where an actual version was expected.- Graal Native Image should behave with Gradle 8.10 (and 8.10.1) now; it needed some dependency changes moved around.
- If preferences can't be written for whatever reason (typically Windows-related), the app won't crash, since they aren't critical.
- Asset changes should be detected more reliably now, and not just when source code has changed.
Of the releases here, you should prefer the .jar file if you know you can run .jar files how you normally do, such as by double-clicking them. If you aren't confident a .jar file will run for you, you can either try the appropriate native distribution, or install a free/libre JDK that will let you run .jar files. As ye hast once been warned, macOS users should really use the .jar if at all possible, and if you do need to use the native distribution on macOS, there are extra steps it requires.
OK, get jamming, and good luck!
1.12.1.14 "Update/Thread"
This release is small compared to the last one, considering it's been less than 2 days since I released 1.12.1.13 . But, it has at least two new things:
- A serious bug on MacOS (probably affecting x64 and definitely affecting M1) caused a crash when the folder picker was opened. This is fixed.
- There were several libraries with slightly out-of-date versions, which didn't always get auto-updated. Oh no! But they're all on the current versions now.
So, there's only a real reason to update from 1.12.1.13 to 1.12.1.14 if you're using a Mac, but there are at least some minor improvements in general.
I'm not sure if the Construo-built packages in this version all work. #194 hasn't been resolved yet, and that may mean M1 Mac users should use the JAR instead. Mac users on x64 Macs might also need the JAR. It has been confirmed that the native distributions for macOS in this version didn't work at all; they have been removed to save space. You should use the JAR if you want this version on a Mac. You probably still want a JAR in any newer version, since there are extra steps required to use the native distribution.
The Win64 package works for me, at least.
1.12.1.13 "We Mean It This Time"
This is a fairly big release! We have some ground to cover.
This release updates to Gradle 8.10! This allows generated projects to be built by Java 23, which comes out in about a month. However, it also requires users to build with a JDK 17 or newer (both JDK 17 and JDK 21 are LTS releases that work fine with this). So, really, we mean it this time, use Java 17 or newer! You can always target a lower language level in Liftoff's last options page (or on the right if using the full-screen view), and your generated JARs will be compatible down to that language level.
There's some extra effort to find an IDEA installation thanks to @lyze237 . There are some Construo improvements thanks to @fourlastor and @TCreutzenberg . There are wide variety of UI improvements thanks to @raeleus . And @Frosty-J noticed a typo!
There are various library updates. There are various language updates by default, such as to Kotlin 1.9.25 and Groovy 4.0.22 . There are some new libraries (TexturePackerOnly and TextureUnpackerOnly).
Liftoff has the option to use a Construo-built native executable for itself, in case you don't have a globally installed JDK but you can run native executables for your OS. You can still download a smaller JAR file if you can run those easily!
I hope this release works smoothly for you! Best of luck!
1.12.1.12 "Repetitive Repetition Repeats Repeatedly"
This is a small release that aims to get all the latest UI changes in place for documentation to be able to describe them. There aren't many new features here, but you can reset any selections back to the blank initial selection by clicking the reset button in the upper right, and separately, there's a button to delete folders that might have contents you don't want overlapping. GameJolt's API can be accessed with a new third-party library, and several other third-party libraries have had their default versions updated. There's more documentation about some otherwise-confusing parts of .gwt.xml files, in the generated .gwt.xml files (I couldn't even find official documentation on some of the newly-documented tags). Some rarely-encountered, but still problematic, bugs with the Generate button have been fixed, also.
Enjoy your launch!
1.12.1.11 "Verminous Villains Vanquished"
This release is primarily full of bugfixes! There are also some new convenience features, like being able to read the whole path in folder selection dialogs, and being able to close windows with the Enter or Escape keys. But there are important bugfixes! You can select a Java version, or other options from what was the "Advanced" tab, correctly now, without the versions getting jumbled. If you select iOS, a JDK of 9 or newer will get downgraded to the maximum compatible version for iOS, JDK 8. MOE is enabled again, sort-of, but doesn't work yet; it should be working in an upcoming version if things go as we hope in the Gradle-verse. There's a reset button, which lets you clear your selections that may have lingered from an earlier run (it acts a lot like deleting the preferences file, but can be done during usage).
Big thanks again to @raeleus for handling any and all UI changes that came up here! Also, thanks to everyone who tested this early version of the new UI, and I hope you liked it!
1.12.1.10 "Jam Team Assemble"
This release is huge! From a purely practical standpoint, it updates to the latest Gradle (8.8) to allow users with only the newest Java installed to still open up the Gradle projects. There are some new third-party libraries. You can now open in IDEA even if IDEA was installed via FlatPak, thanks to @lyze237 . And there might be some minor differences in the user experience you could notice, such as, oh I don't know...
EVERYTHING.
The entire UI was overhauled and rewritten from scratch by that ferocious and tenacious code warrior, @raeleus ! Now you can search for third-party extensions by name instead of scrolling endlessly! There's a version for smaller screens that asks for information in bite-size pieces! There's a 1080p-or-larger version that shows everything on one page! The old crufty Advanced options page is totally cleaned up now! It looks really nice, too, with animations as a project is generated and when you go between pages of the smaller-screen version! It's chock-full of goodness all around.
Please try it out and tell us what we screwed up this time! The Issues page here on GitHub is a good place if you have a pretty firm idea of what the problem is, or you can ask on the libGDX Discord for help if it might not be a bug in a program, such as if something just isn't clear. In fact, there's a link to the Discord on the first page of the Liftoff (small screen) window now!
This release coincidentally comes just a few days before the June 2024 libGDX Game Jam (the 5 year anniversary game jam) and the 10 year anniversary of my (@tommyettinger 's) ongoing commit streak. So, happy anniversaries! Enjoy the release!