JME 3.9.0 Development

With 3.8.0-stable released, efforts can now be directed towards 3.9. Once a few more PRs are passed I will create the next alpha release for testing.

Here’s a list of 6 PRs that have been reviewed and approved by myself or another contributor, and I plan to merge them in the next 1-2 days:



And here are some other PRs that I haven’t reviewed yet that could use review or approval by anyone else in the meantime. Especially this first PR for IOS support, as I do not have a mac or any IOS devices so it would be best for someone else who does to make a final approval before I merge it:

14 Likes

Hello everyone,
Good news! I’ve opened a new PR to bring HighPassFilter and BandPassFilter audio filters to the jME engine. Go ahead and take a look. :wink:

Huge thanks to @yaRnMcDonuts for his work in leading this release!

10 Likes

Here are two more PRs to optimize resource allocation and remove duplicate code from the MotionEvent and MotionPath classes. I tested the pull requests with my editor.

6 Likes

I would like to work on these issues for the new release and get Jme3-alloc as a dependency for dynamic allocations for Lwjgl2 and Android to resolve native leaks. Please consider them for the next release (they actually require some support and time from the community to properly test the new changes).

This is jme3-alloc (it’s complete but lacks integration and testing with a proper memory profiler):

I am willing to provide long-term maintenance support for the API.

7 Likes

Hello, I’m relatively new, and I’ve been following JME3 for 5 months, trying to develop a concise editor. I know it’s not part of the topic, but I wanted to ask how to make an editor like this (that can organize assets, nodes, and even move objects within the scene, like SceneComposer but improved). I’ve seen people making their own editors in other places here on the forum. Any help, or references? I’ve seen things like JmonkeyBuilder, but I haven’t been able to implement it…

Thanks in advance.

Might be worth creating your own thread. This thread is for discussing the 3.9.0 release

Hi JME community!

For a while, debugging lights directly in-game without the SDK’s SceneComposer has been a bit of a challenge. I’m thrilled to share a new PR that addresses this by completing the functionality of the LightsDebugState class!

It now offers a powerful and optimized way to visualize Directional, Spot, and Point Lights (LightProbe support was already there). This means you can debug light positions, ranges, directions, and especially the precise inner and outer cone angles of SpotLights.

Think of it as gaining a Unity-like light debugging tool directly in your application! It’s built for performance and clear visualization.

Dive into the details:


10 Likes

Hello everyone,
Get ready to revolutionize your lighting workflow! In this exclusive sneak peek of the upcoming jME release, we’re showcasing two essential tools that will change how you manage lights in your scenes.

Debug your scene lights like never before | jME 3.9.0 Preview

  1. LightsDebugState: Say goodbye to guesswork! This powerful new tool allows you to visualize and debug your scene lights directly in-game with dedicated gizmos. You’ll see exactly where your lights are, their range, and their direction. And the best part? It’s highly customizable, as demonstrated at the end of the video, to fit your precise debugging needs.

  2. Improved LightControl: Controlling your lights has never been this precise. Explore the new functionalities of LightControl, with a focus on advanced options for axisRotation and axisDirection, giving you unprecedented control over the rotation and orientation of your light sources.

Watch the video to see these features in action and discover how they can make your jME scenes visually perfect and debugging a breeze.

12 Likes

I was thinking that maybe I could create an AudioDebugState for the AudioNodes as well… if I find the time I’ll give it a try.

3 Likes

There are currently very many open PRs in jme’s 3.9 milestone on github, so help with the review process is especially appreciated currently.

Instead of individually linking every PR here, I encourage you to take a look at the full list on the v3.9.0 Milestone


Many PRs are javadoc related or contain low-medium risk refactoring of existing classes, so they should be fairly easy for anyone to review.

And if you do manage to fully review a PR and don’t see any issues, then please do feel free to mark the PR as “approved”. Or even if you’ve only done a partial review and aren’t entirely confident enough to sign off on approving the full PR, then still feel free to leave a comment indicating which aspects of the PR you have approved.

Some PRs contain a mix of low and higher risk changes, so even if you just approve some low risk javadoc changes and leave a comment indicating so, that will still help free up time for me and other reviewers who can then focus on the other aspects of the PR. Any and all help in the review process is greatly appreciated! :slightly_smiling_face:

5 Likes

Hello everyone,

I’d like to provide some updates on my work and the goals I’ve set for version 3.9.0 of the engine.

I’m trying to improve the engine’s core module, which takes a lot of time and effort.
I’m adding many new features while maintaining backward compatibility. These include:

  • audio effects (ALAudioRenderer, Listener, Low/High/Band PassFilter)
  • particle effects (EmitterMeshFaceShape)
  • scene filters (SSAOFilter)
  • visual debugging tools (ArmatureDebuggerAppState, LightsDebugState, ConstantVerifierState)
  • asset loaders (J3MLoader, WAVLoader)
  • controllers (LightControl, CameraControl, BillboardControl, LodControl, ChaseCamera, SkinningControl)
  • math functions (FastMath)
  • cloning and serialization bug fixes

I am documenting every possible detail in the PR description to facilitate review. Where possible, I am creating JUnit tests, screenshots and test demos to demonstrate and verify the correctness of the proposed solutions. I hope the community appreciate the effort and commitment.

Unfortunately, after analyzing the code, I realized there is a lot of work to be done: hidden bugs and incomplete classes. However, I hope to finish restructuring, optimizing, and stabilizing the jme3-core module by the end of June. By that date, I hope to have finished analyzing the core module and not open any more PRs, unless a serious problem emerges, such as excessive memory consumption or excessive object allocation in the methods invoked at each frame.

Thank you all for your patience, and I thank @yaRnMcDonuts , for supporting me in the review process.

Stay tuned—the next version will bring substantial improvements!

9 Likes

The next alpha release (alpha2) will be available on June 29 at the end of the day, as that is the last day that the current pipeline for uploading jme builds will work prior to the sunsetting of the current ossrh system.

Following alpha2, the next 1 (or more) alpha release will be focused on figuring out and testing the new process using the new Central Portal.


With that deadline in mind, I’ll be merging a handful of PRs that have been marked “approved” within the next few days in preparation for alpha2.

If there are any other PRs that anyone believes are good candidates for making it into alpha2 that I may have overlooked, then feel free to post them here and hopefully they can be reviewed in time to make it in.

7 Likes

Hi guys,
after aligning my branch to the latest master version and running the gradle install command, it fails with the following error message:

Task :getNativesZipFile FAILED
Download natives from https://objects.jmonkeyengine.org/native-snapshots/89000af21c0dabaad04815086c9b42e543e3a4dd/jme3-natives.zip to C:******\workspace\jmonkeyengine\build\89000af21c0dabaad04815086c9b42e543e3a4dd-natives.zip

Could you please check if there is a problem with the jME repository?

Thanks.

4 Likes

I suspect this is due to the ongoing migration process for the jme repo. The old OSSRH repo has just reached its end of service today, so new snapshots likely will not be working until we’ve finished the migration process and figure out everything with the new Central Portal system.

@sgold is handling this migration process (huge thanks to him for this) so he may have better information to offer than I do.

2 Likes

I don’t believe it’s related to the OSSRH sunset, which entails switching from “oss.sonatype.com” services to the “central.sonatype.com” services.

I think “objects.jmonkeyengine.org” a MinIO instance used to store native binaries. @riccardoBlb is better equipped to troubleshoot it than I am.

2 Likes

Indeed, that’s unrelated. The instance is up again, and it should work as expected.

Our server is a bit wonky at the moment and needs some maintenance.

This specific issue was caused by one of the disks briefly running out of space and taking the minio container down, i’ve patched it up for now and it should stay alive as long as the maintenance is complete sometimes in the next days.

Please @ me for any related issues.

@capdevon

3 Likes

Thank, Riccardo!

Also, thanks to @capdevon for reporting the issue, which might otherwise have impacted many more developers.

4 Likes

@RiccardoBlb the instance seems to be failing again

1 Like

should be up again, sorry about that

2 Likes

Thank you, @RiccardoBlb

1 Like