JME 3.8.0-alpha4

JME v3.8.0-alpha4 is now available for testing:

project.ext {
  jmeVer = '3.8.0-alpha4' 
}
dependencies {
    implementation "org.jmonkeyengine:jme3-core:$jmeVer"
    ...
}

Full Release Notes Here

The most notable changes since the last alpha3 release:

  • I’ve finally finished modularizing jme’s pbr shader system and eliminated most bugs. The only remaining issue is that light probe blending is still broken, but it should be an easy fix that I’ll be submitting a pr for soon.

  • Upgraded the versions of some libraries that the engine uses including lwgl, lwjglx-awt, and groovy.

  • Added a new convenience class (RawInputListenerAdapter) that should make it easier to setup and work with jme’s RawInputListener

  • OSVR has been removed, as it is very outdated and jme offers better alternatives

  • A few other bug fixes and minor changes

Big thanks to all of the contributors and testers that have helped with 3.8.0 so far!

11 Likes

Seems convenient but why not make default implementations in the interface?

The down side of an interface with all defaults is that if you really DO want to implement all of the methods you have no options. If you implement the interface with no defaults then the compiler will tell you when you are missing something.

The interface + adapter is an old well-established pattern in Java. The “default” methods are nice when you have to update an interface and want to maintain backwards compatibility. In my experience, many of the cases where an interface starts off with defaults is a code smell… and certainly an interface of all defaults is weird.

6 Likes

Probably a stupid question, but was the jme3-lwjgl3 removed from this version?
I am not seeing it anymore.

Where are you looking?

It seems to be in maven central: Maven Central: org.jmonkeyengine:jme3-lwjgl3

1 Like

In the zip file we download.

1 Like

I wonder how many are in that “we”. :slight_smile: I think it is not the normal way.

…but yeah, maybe an uploaded jar was missed when cutting the release for bitbucket.

:unamused:

That might be, however it is still an option.

3 Likes

@yarnMcDonuts:
I’m very grateful for the new alpha release. Please take a look at this recent regression:

3 Likes

Totally… and should be fixed if it’s busted.

I was just joking around because the ‘we’ made me chuckle.

2 Likes

The ZIP file is intended for execution, so it only includes one of { jme3-lwjgl, jme3-lwjgl3 }. I believe this has always been the case, though which jar is included has changed over time.

3 Likes

Ah. Interesting.

I thought it was the zip that bitbucket made for the release… which I’d have expected to have ‘all the things’ in it.

Edit: which shows how long it’s been since I’ve download a jar or a zip related to any open source projects. :slight_smile:

1 Like

Thanks for clarifying! just glad there was some reasoning behind the decision. I assumed most folks would not need to implement everything.
I only have one implementation of the listener and there most methods are empty so the new adapter would make it cleaner.

2 Likes

Thanks for the quick work testing and finding this!

I submitted a PR that solves the exception, and it also fixes 2 other logic errors in the spec gloss pipeline. The exception and the first logic error are due to mistakes that must’ve occurred when riccardo implemented the struct approach and then I missed it in testing since my only spec gloss models use packed spec gloss maps (and these issues only occurred when using non packed maps). And the other logic error has likely been around much longer and was ignoring the glossiness value from textures entirely. Everything should be fixed now, but will still need tested to be sure.

2 Likes

@yaRnMcDonuts
Thank you for the new version!
I just tested the new version (alpha4),
and some exceptions occurred in the scene containing InstancedNode:
error C1503: undefined variable "Use_the_instancing_functions_for_this"
This seems to be a regression! It seems to be the same as this one:

3 Likes

Thanks for finding and reporting this!

I think this regression happened because I didn’t update my local copy of the fog code after that fix to Lighting.vert, and when I recently added fog to the PBR shader I based it on my local version of PBRLighting.vert that was missing those changes.

This PR should fix the issue though:

4 Likes

I also re-read my original post in this thread and want to clarify some poor word choice on my part:

My last bullet point originally said:

* A few other small bug fixes and minor changes

And I feel like I should not have used the word “small” to describe any bug fixes, as some were actually quite major fixes. Any and all bug fixes are a big deal and are important contributions. Even a seemingly small bug fix that results in only 1 line of code being changed can require a lot of work.

So I hope my choice of words there did not make any contributors feel as though their bug fix or contributions were not valued.

3 Likes

The following PRs are ready for review, and are all planned to be merged in the next 2-5 days unless any unresolvable issues are found during review:

5 Likes

I fixed the light probe blending regression that broke smooth blending, and I plan to merge this PR in the next 48 hours. Then I’ll be creating the 3.8 beta release shortly after this is merged.


There are also 2 remaining animation bugs I did not manage to fix yet, but I’m hoping these can be fixed during the beta phase:

7 Likes