External Publication
Visit Post

jME 3.10.0-beta1

jMonkeyEngine Hub June 11, 2026
Source

Since Angle is the default now, that will break any apps still using lwjgl2.

The simple fix would be to update your apps using lwjgl2 to specifically choose opengl2 as the renderer.

However, this does also raise the discussion as to whether or not angle should be hardcoded as the default, especially because new users will likely not know to change it when trying out jmonkey for the first time, so we certainly don’t want to be defaulting to the wrong choice for their device when they are forming their first impressions of the engine.

Personally, I’ve found opengl is still the superior choice on my desktop device. I’ve noticed in my testing that Angle causes a slightly lower framerate and also has a noticeably longer freeze/pause when attaching models to the rootNode for the first time (2 things that I personally believe we don’t want new users to experience, otherwise they may naively think jmonkey is just slow on desktop and go to a different engine before learning they could’ve switched the renderer). However, for ios, web and some mac devices, angle is definitely the better default. Android sounds like some devices may still be better with opengl if its supported on that mobile device specifically, but im no expert in this area.

So rather than choosing one, I would say the best solution is to update the appSettings class to dynamically choose the best default renderer based on the platform being used. Something like:

...
defaults.put("Renderer", chooseDefaultRenderer());
...


private static String chooseDefaultRenderer() {
    if (isLwjgl2Present()) {
        return LWJGL_OPENGL2;
    }

    Platform platform = JmeSystem.getPlatform();

    if (platform == MacOSX || platform == Android) {
        return ANGLE_GLES3;
    }

    return LWJGL_OPENGL45;
}

I’m curious to hear what others think in this regard.

Discussion in the ATmosphere

Loading comments...