Skip to content

Releases: libgdx/gdx-liftoff

1.13.5.2 "No Time To Talk"

29 Aug 09:39
Compare
Choose a tag to compare

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

1.13.5.1 "Feel The City Breakin'"

25 May 01:58
Compare
Choose a tag to compare

Well, libGDX 1.13.5 wasn't entirely free of problems... especially on Android, where release builds in particular hit a bug in Android's R8 compiler rather often, and this can result in performance degradation or even crashes. This rolls back the default libGDX to 1.13.1, but also updates Gradle to 8.14.1 (the just-released latest version) and fixes some more noticeable deprecation warnings. It also finally silences the distracting and misleading warning message about Gradle 9.0!!! This has been a pox on new developers and I'm glad it's finally gone. The Android Gradle Plugin now matches libGDX tests at version 8.7.3, and many third-party dependencies have been updated, including KTX. The samples also include one extra line in resize(), which you can leave in or remove if you want, which skips resize() logic if the window is minimized (giving it 0 width and 0 height). Having 0 or negative width and height doesn't make sense for laying out a user interface, and division by 0 can easily happen while determining aspect ratio if that case isn't handled.

This version only ships with a cross-platform JAR and a Linux executable, because the Windows executable is currently getting false positives from multiple antivirus vendors. 😠 The JAR is 24MB smaller and works everywhere that has a JDK installed, so it should be fine on Windows if your JDK is 17 or newer. If you just have a JRE or if your JDK is older or misconfigured, use a nice new JDK that works, like BellSoft's OpenJDK version 17 or 21. JDK 24 issues warnings all the time, so you might want to avoid it for now.

Good luck with this one! Using libGDX 1.13.1 is battle-tested and should "just work," but there could still be issues with this latest Gradle release. It's been tested on some previously-problematic tasks, and it seems to work well so far. Silencing the warnings caused purely by Gradle files is also somewhat of an experiment, but it shouldn't interfere with warnings in your IDE or given during Java/Kotlin compilation.

Full Changelog: v1.13.5.0...v1.13.5.1

1.13.5.0 "Or Whether You're A Mother"

14 May 03:16
Compare
Choose a tag to compare

It looks libGDX is indeed stayin' alive, with a new release 1.13.5 and a Liftoff version to accompany it! This release includes a wide variety of updates to various optional dependencies, such as defaulting to the latest Kotlin, Scala, and Groovy when requested. A small tweak to how the most recent dependency version is determined for third-party dependencies should make the most recent version get picked up now at least most of the time.

TeaVM is also up-to-date, with the newest release able to target WebAssembly instead of JavaScript if you just uncomment one line in the generated TeaVMBuilder file. For projects that make heavy use of long math, and probably various other bottlenecks with JS, WebAssembly can perform considerably better than either GWT or TeaVM targeting JS. The WebAssembly target is in an early stage, but developing with it early and testing often can help it get even better -- if you find bugs with TeaVM specifically, the TeaVM repo is where to report them!

Other than those changes, this release was all thanks to @obigu ! The changelog below shows the three PRs that went into 1.13.5.0, all by our hero of this release!

What's Changed

  • Move AGP version to a single configuration point by @obigu in #232
  • Use modern Material Fullscreen default Android theme by @obigu in #231
  • Clean up RoboVM version setting related code by @obigu in #233

Full Changelog: v1.13.1.4...v1.13.5.0

πŸ’ Happy Mother's Day to those who celebrate it! πŸ’

1.13.1.4 "Happy Birthday to Me"

26 Apr 05:26
Compare
Choose a tag to compare

This release update Gradle to 8.14, bringing us full Java 24 support! Hooray! TeaVM now defaults to the "ADVANCED" optimization setting because the previous default, "FULL", isn't considered ready for usage yet. This may help make TeaVM more robust for more developers! Construo uses newer JDK links, and defaults to using the logo.png icon present in icons/ on desktop releases. A possible issue with the Gradle Tasks staying in preferences has been fixed (Gradle tasks are now cleared upon restart). RoboVM has been updated, also, to 2.3.23 .

Also, it's my birthday!

free-cake-and-candle

Free cake!

What's Changed

New Contributors

Full Changelog: v1.13.1.3...v1.13.1.4

1.13.1.3 "Slayin' Alive"

25 Mar 10:06
Compare
Choose a tag to compare

This release has a nice set of updates and bugfixes, and is encouraged for new code. A change you may notice as soon as you build an Android project is that the icons are no longer intentionally ugly, but look like this:

CHANGE_THIS_512

They say "CHANGE THIS" because you really, really should change the icons to match your app before you publish to anything Google Play-related! If your icon is too similar to an existing icon, that can be grounds to deny your app for being a clone.

Other changes include nice new adaptive icons for newer Android, thanks to @obigu , Construo 1.7.1 with better Windows icons, thanks to @fourlastor , and MOE back and working fully thanks to @Berstanio . RoboVM has also gotten some attention thanks to @obigu , too! This version updates to Gradle 8.13, which is still not compatible with Java 24 because Groovy isn't yet. This Gradle release fixes a nasty bug that affected just Gradle 8.12.1 (used by the previous release), and that fix makes GWT projects much cleaner. GWT projects that use distZip or dist to upload games to Itch.io now won't have a (somewhat ugly) margin around the game area, making all of it clickable. StartupHelper has been made more robust, and should work in some cases where it didn't before (like on Mac using Construo or Graal). LWJGL3 games have the option of releasing platform-specific JARs that omit libraries that don't matter on a specific OS, like how .so and .dylib libraries aren't useful to Win32 applications. Tasks like lwjgl3:jarWin will slay, annihilate, and omit any platform-specific files that Win32 can't use.

#225 has been fixed, as have a few other issues reported via Discord, and maybe more... It's a good release, I think! Enjoy!

What's Changed (from pull requests)

Full Changelog: v1.13.1.2...v1.13.1.3

1.13.1.2 "Stayin' Dead"

20 Feb 04:57
Compare
Choose a tag to compare

This release is mostly bugfixes, and updating is recommended. It also updates Gradle to 8.12.1, Construo to 1.6.1, and VisUI to 1.5.5, while getting MOE to use the (real) release 1.12.1 instead of the (possibly imaginary) release 1.13.1 . These each have various improvements and fixes they contribute, plus there's a major fix to GWT's superDev task, which broke at some point because of something changing in unrelated code, like IDEA, Gretty, Gradle, or some other necessary part. Unfortunately, that major fix currently works by using System.exit(0) in html/build.gradle when you stop running superDev, which prints some harmless error messages. I would like a better approach, but I don't know of any other way to stop a Thread started by a Gradle plugin that I can't otherwise access. But, it gets superDev working again, and you don't need to force any processes to stop using Task Manager or some similar app, so I see it as a major improvement. I'm not sure how long GWT has been starting zombie processes, but now they will die and stay dead. For completely unrelated reasons to how abominably hacked-together the GWT solution is, TeaVM no longer is referred to as "experimental".

Enjoy your plate full of fixes!

1.13.1.1 "Stayin' Alive"

19 Jan 04:12
Compare
Choose a tag to compare

This release is full of fixes, but not many features. A big one is that this release uses LWJGL 3.3.3 again, with NFD 3.3.1 used for file dialogs. This means the various weird bugs some users on Linux have noticed should be gone, as long as earlier releases like 1.13.0.2 worked. Counterintuitively, the brand-new (and apparently rather-far-from-compatible) Wayland system for Linux actually works better with LWJGL 3.3.3 than LWGL 3.3.6, because older LWJGL3 from pre-Wayland days uses a stable legacy API rather than an incomplete current API. Using NFD 3.3.1 isn't exactly optimal, since it's quite an old version and some issues have probably been encountered with it... but it's considerably better than any of the NFD releases from 3.3.2 to 3.3.6, all of which had bugs that make them essentially unusable. The version for a project is now correct in subprojects. TeaVM uses a valid version now, which I think is current. There's at least some theoretical support for 32-bit x86 Windows again, if you somehow have a JDK 17 on one of those OSes. There's a link to a recommended JDK in the Social bar, so people can be quickly referred to where to click, if needed. Non-zero exit codes are able to be returned from LWJGL3 apps now, which could help debugging. We also don't need to replace libGDX ScrollPane source anymore.

Well, that's pretty much all of it. I think this squashes more bugs than it introduces!

1.13.1.0 "A Well-Done Steak"

08 Jan 23:22
Compare
Choose a tag to compare

Aaaaaa libGDX 1.13.1 just came out! I was actually preparing another release for the 1.13.0 line, which used libGDX 1.12.1, for a few days when the release dropped! Now you all can have the fixes and speed gains in 1.13.0 without the bugs and issues it had, and can also add in some nice features from libGDX 1.13.1 to boot! Windows doesn't complain about antivirus false positives! Linux with Wayland won't have trouble with the icon and such! Android has its AndroidX dependency issue fixed! GWT won't need hacks to display anything, and defaults to 2.11.0 out of the box! This is all good!!! Update today!

This JAR has been scanned with VirusTotal, and it finally looks clear all around. Report here.

1.13.0.2 "The Most Beautiful Error in the Room"

07 Dec 06:55
Compare
Choose a tag to compare

This release is small, and still targets libGDX 1.12.1 while fires are being put out over at LWJGL3 HQ. It updates Gradle, Construo, and various third-party extensions. It serves as a sort of test-run for @fourlastor 's PR #209 ; I don't really know how it works yet, so this way at least I can find out while 1.13.0.1 still works fine.

The main added thing is that Typing-Label is used to differentiate and accentuate error and warning messages. Errors go from red to dark red, and drop randomly in place like the message is "broken." Warnings have "Caution" wave up and down while the test flows from yellow to pink. These do make people look at them more often, and look different even if you have total colorblindness (and can only see grayscale).

If you don't want to make a new project, you can get almost all the new features just by updating your Gradle wrapper version to 8.11.1 and maybe also updating Construo to 1.5.1 . Enjoy!

1.13.0.1 "Back To The Future"

10 Nov 08:00
Compare
Choose a tag to compare

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!