Interrupt / delverengine

Delver game engine and editor
zlib License
803 stars 80 forks source link

Upgrade Java and other dependencies #191

Closed NetherNarwhal closed 3 years ago

NetherNarwhal commented 4 years ago

The eclipse files (under the .settings directories) reference Java 6 (1.6) and some of the Gradle files reference Java 8 (1.8), which is what the Steam version of Delver is using. Are there any plans to upgrade to Java 11 or newer?

Related, are there plans to upgrade LibGDX and LWJGL? I believe Delver is still using the LWJGL 2 backend, not 3, which is known to have problems running with the standard OpenJDK 11 for Linux. Mainly you get an Inconsistency detected by ld.so: dl-lookup.c: 111: check_match: Assertion 'version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed! error. From what I've read this can be fixed by downgrading to the JDK 8 or getting a different implementation of OpenJDK, such as adopt-openjdk. Was this the reason for not going to Java 11?

joshuaskelly commented 4 years ago

As you noted Java 8 is our target version. The Eclipse files are unmaintained/mostly taken out. We have no plans to upgrade to Java 11 or newer.

My current thinking:

  1. Smaller footprint. We ship the runtimes with Delver Engine games, and JRE8 is significantly smaller than later versions.
  2. Maintaining broad Android support. (As I write this I noticed that Google mandated a minimum API level 30 for Android releases/updates).
PythooonUser commented 4 years ago

In #186 I added these Eclipse files back and increase the version to 1.8. Something like this?

NetherNarwhal commented 4 years ago

@PythooonUser Yep, that would be a good change. It looks like some of the code is using 1.8 specific features and the Java extension in VSC seems to be using the Eclipse files for some reason, so won't run without it. Probably a way around using those files, but I haven't dug into it yet.

@joshuaskelly Staying with Java 8 for a while works for me. We should probably note the OpenJDK incompatibility for Linux users as part of the build instructions as that is the current LTS so is likely the version they have by default on their machine (see #74). It was good to get the discussion going and understand the direction. Thanks!