Skip to content

Releases: libgdx/gdx-liftoff

1.11.0.9 "Smack It Until It Works"

12 Jun 11:21
Compare
Choose a tag to compare

This release mainly fixes the Kotlin launchers on LWJGL3, which previously made a broken Java file in with the Kotlin sources. It also updates Kotlin to 1.8.21 and the KTX libraries to 1.11.0-rc6, plus it adds the new ktx-ai library as an option. That's about it; if you don't use Kotlin at all, you won't notice a change.

1.11.0.8 "Start Me Up"

29 May 04:14
Compare
Choose a tag to compare

aThis release took a while longer than usual, but there's some nice new features here.

  • Java 11 is now the default. Android currently requires a JDK of at least version 11 to build anything, and will soon require version 17 (!).
    • TeaVM also requires version 11.
  • GWT now defaults to version 2.10.0, using an alternate backend that supports this newest version, if you are targeting Java version 9, 10, or 11. GWT 2.10.0 supports language level 11, but not very many APIs from after 8.
    • Because 11 is the default, an out-of-the-box GWT project will work here thanks to the alternate backend. This gives you access to nice things like the var keyword in Java. - Thanks to @lyze237 , once a project has been generated you can now open it in IDEA with one click, saving you time and avoiding the frustrating file open dialog in IDEA.
    • This feature requires you to have installed IntelliJ IDEA (Community or Ultimate) via JetBrains Toolbox. It may work if you have installed IDEA as standalone, but no guarantees. Toolbox is great to have in general, so I recommend it even if you aren't using this feature.
  • LWJGL3 projects now include a modified version of StartOnFirstThreadHelper, which not only allows your application to run on macOS without any command-line changes, it also allows your application to run on Windows if the user has a non-alphanumeric username.
    • This last part previously was achieved, mostly, using some .bat files that could be used with your project, but these aren't needed anymore.
  • There's a bunch of TeaVM updates, though I'm not totally sure it's as up-to-date as it could be.
  • Purely to glorify my own project, SquidSquad is now available as a third-party extension. It has the most involved set of dependencies of any library I have worked on, so it's a great reason to use gdx-liftoff to handle dependencies for you!

This release is just a JAR; you don't need .bat files on Windows to launch it, even if your username is purely-non-ASCII characters. In theory. If the launching part isn't working for you, please report an issue here or on Discord!

1.11.0.7 "Katydid Leap"

06 Feb 04:02
Compare
Choose a tag to compare

This release includes an update to Kotlin 1.8.0 for generated projects, and some long-standing minor issues have been fixed. Notably, when releasing on Android, minimization with ProGuard is enabled by default, so you will need to either configure ProGuard for your Android code or disable minimization in android/build.gradle . If you have any questions about this process, ask @Frosty-J , since he's been pushing for this change for a while. Various "tommyettinger libraries" have had their versions updated in yet another cascade of updates, this time affecting TextraTypist (now on 0.7.6) because one of its dependencies was broken (RegExodus, which should now be at least 0.1.15). In general, this is a very minor release and does nothing you couldn't manually do to an existing project, but it should make brand-new projects a little nicer to work with.

Like the last release, this is distributed as a .zip file; download and extract it first, then run either the .jar directly, or (if that doesn't work and you're on Windows), try running gdx-liftoff-non-a-z-name-1.11.0.7.bat, which has special fixes for the case where a user's username contains a non-A-Z letter or some punctuation. That case seems to break LWJGL3 apps (like Liftoff) unless they account for it carefully. If you're releasing an app or game that uses LWJGL3 as a .jar release, I'd at least consider copying and adapting that .bat file to run your .jar file instead of gdx-liftoff-1.11.0.7.jar ; you should be able to release to more users that way.

1.11.0.6 "Hi, My Name Is..."

26 Jan 06:25
Compare
Choose a tag to compare

This release, two months in the making, is a little more wide-ranging than some other recent releases. Here are the highlights:

  • Tons of third-party extension updates.
    • These were what delayed the release, because many of a certain developer's libraries (that is to say, my libraries) shared a common bug that affected GWT projects, and all of them needed updating at about the same time.
  • The packaging is now a .zip file, containing the normal .jar file, and also two .bat files if needed on Windows.
    • gdx-liftoff-1.11.0.6.bat just launches the JAR normally, but will work even if double-clicking JARs doesn't normally function on a particular Windows machine.
    • gdx-liftoff-non-a-z-name-1.11.0.6.bat is meant for the not-uncommon case where a user has a character in their username that isn't A-Z, 0-9, or a few other allowed chars. This is most common with names that have non-English letters in them. It does some extra steps to ensure necessary files are extracted properly to C:\gdx-liftoff\ , which avoids an encoding problem with such a username.
    • This is hopefully clear, but you need to extract the files out of the .zip before you can run any of them.
  • TeaVM! You can now enable (experimental) TeaVM support like any other platform, as a checkbox on the first tab.
    • TeaVM compiles for the web like GWT, but doesn't need Java source code, and can compile Kotlin, Scala, or probably other languages as well.
    • There's lots of promise for future developments in TeaVM, such as using Emscripten to compile and use native libraries in the browser. This is already done for Bullet in TeaVM, which GWT cannot use.
    • You may want to read about TeaVM on its homepage, or the libGDX-specific TeaVM changes on its homepage.
  • Numerous Android-related updates, such as Android Gradle Plugin 7.3.0 by default, default SDK of 32, and better auto-selection of core library desugaring based on other versions.

Thanks to, among others, czyzby, LandoSystem, fourlastor, SheerSt, and everyone who reported or helped track down bugs in this release. The whole TeaVM team did a lot of work that made the new platform possible, so thanks to all of them, too. Thanks to the GWT gitter and its helpful developers for tracking down the strange bug in (my) libraries that needed all of them to update. And thanks to all of the gdx-liftoff users, for choosing a tool that does things differently!

1.11.0.5 "Party Like It's Nineteen"

26 Nov 00:09
Compare
Choose a tag to compare

This release upgrades to Gradle 7.6 (released today), which supports Java 19 (released over 2 months ago), and will be outdated again when Java 20 is released (in 4 months). But while we are on the latest version, can we at least savor the taste of freedom? Also in this release are:

  • A fix for #101 , as best as I can fix it (it seems to be a bug in LWJGL3, but I can at least print some helpful messages for how to avoid the bug)
  • An update to Android Gradle Plugin 7.2.2, which gdx-setup has been using and both AS and IDEA support now
  • Some updates to third-party libraries
  • Cleanup in the build.gradle files, because they don't need the log4shell mitigation on the current Gradle

A lot of the work during this release cycle tried to get Mac support a little better using glfw_async , but because that seems to have similar issues to the AWT async extension to libGDX, we went back to using Guacamole's code to start a new JVM with -XstartOnFirstThread if needed. Some GWT dependency changes were also tried, but that process got very confusing, very quickly, and didn't ever really work, so I reverted the GWT changes.

That's about it! I hope this works well for everyone.

1.11.0.4 "Nimbly Mobile"

28 Sep 00:01
Compare
Choose a tag to compare

This release is small, but has various improvements and fixes from a few different contributors. There's a basic .gitattributes file now that can be customized if you want; this should help smooth out line-ending problems in at least some projects. There's improvements to the .gitignore file thanks to @Berstanio , helping MOE keep getting the right things ignored. There's some important fixes to MacOS packaging with jpackage thanks to @mudlee , and the jpackageimage command should just work on MacOS. There's also a possibly-very-important fix to how Liftoff determines if a directory has an Android SDK in it -- prior to this release, a brand-new installation of Android Studio would install a correct SDK, but Liftoff wouldn't identify it as such which prevented creating an Android project. Now a new SDK installation should be picked up just fine.

There's also several versions updated across the project, such as Kotlin and Gretty getting updates. Switching to this release is recommended if you've experienced any of the listed issues that were fixed.

1.11.0.3 "The Hatchling"

06 Aug 00:47
Compare
Choose a tag to compare

This is a small release that only includes two changes: HTML projects now clean their war/ directory by default (avoiding some possible nasty bugs), and Gradle has been updated to 7.5.1 . The Gradle change is significant because it should work a little more cleanly with Java 18 (which was accidentally considered, at least in some areas, "incubating" in 7.5). Either or both of these changes can be undone without affecting much if there is any trouble. I'm not expecting any, though; this seemed smooth in the testing I did, and the changes aren't huge.

1.11.0.2 "Macsimum Overdrive"

28 Jul 07:51
Compare
Choose a tag to compare

This release is very small, but may be critical to getting the application to launch on MacOS computers. This is mostly an update to Guacamole's code to restart the app with the -XstartOnFirstThread VM argument that MacOS requires for LWJGL3 apps; now the code should be more robust. Other than that, there's a possible small speedup in the Android compilation thanks to libgdx/libgdx#6920 , and a change in ios-moe projects so they default to only needing landscape mode handled. Now portrait mode won't be entered on MOE unless you change Info.plist to contain at least one of

		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>

For any platforms you want to allow it on.

Thanks to @crykn, @Berstanio , and @leni8ec for their various contributions here!

1.11.0.1 "Time Vampire"

14 Jul 22:04
Compare
Choose a tag to compare

It's been a while since the last Liftoff release; not 84 years, but still about two months, I think? There are some new features in that time! Generated LWJGL3 projects now include the required configuration to run jpackage for the current OS, and can be run on GitHub Actions if you figure out the configuration for that (not provided yet). Gradle is updated to 7.5, which means this JAR will be able to work and generate working projects even if you only have Java 18 installed (it works with versions 8 through 18 now). There's a bunch of new libraries, though most of them are weird compatibility ones I wrote to allow server-side code and tests to run without libGDX being loaded. The server module might use jdkgdxds, at least, and there's some reasons to use it even in client-side game code without a server. You can add fgnm's HyperLap2D and/or MiniAudio libraries now in the extensions tab. There's better validation for package names, so invalid names that use words reserved by Java or by the Windows filesystem won't be permitted, and will make you enter a valid name. The .gitignore files are significantly improved now, using a strategy from gdx-setup (thanks mgsx!). In general, a pretty big release!

1.11.0.0 "Let's Tank GDX"

12 May 04:05
Compare
Choose a tag to compare

It's been so long...

It's been a while since the last libGDX release, hasn't it? There's been some good changes behind the scenes, though. From the hotly-anticipated M1 Mac support (by updating to LWJGL 3.3.0) to the long-awaited support for larger GWT games (by adding an extra GWT reflection cache as needed), there's some major improvements here. There's also quite a lot of minor improvements, especially regarding important foundation-level code like geometry and pooling. We're currently using Gradle 7.4.2 (which is newer than what gdx-setup uses) and Android Gradle Plugin 7.0.4 (the newest IDEA supports so far, but far newer than the problematic version 4.1.3 that gdx-setup uses), and those two alone may make using gdx-liftoff a better idea than gdx-setup if you're just starting out. I hope this latest release works well for you! There are possibly issues with vis-ui 1.5.0 and libGDX 1.11.0, but even if there are, Liftoff itself uses both versions, so you would probably only need to tell it to skip its version check, if even that is needed.