How to create a Editor/EnhancedSceneComposer? of own style?

Hello, I’m relatively new, and I’ve been following JME3 for 5 months, trying to develop a concise editor. I know that JME SDK have SceneCompose but I want to make my own. How to make Editor 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, tutorials, or references? I’ve seen things like JmonkeyBuilder, but I haven’t been able to implement it…

Some prints of Decima Gong Youtube Channel (@capdevon)


Thanks in advance.

1 Like
1 Like

And the SDK is open source. To me looks like you just want to port that functionality, add and improve it, to some other platform. All that code is pretty much available and easy to improve on. The hard part is to choose your platform (Swing, some IDE, fully in jME, …). That is what you should ponder the most at this point. And what is your end goal? Is this for your game or a general editor for everybody?

2 Likes

Words of caution: some folks start out thinking they want to write a game and then spend X number of years writing an editor instead.

Just make sure your goals align with what you actually put effort into.

For just making a game, you can get away with a LOT of short cuts that don’t require a full blown stand-alone editor.

6 Likes

Hi @3DCG

You can create an editor with JME, but there are a few things to keep in mind before taking the plunge. If you’re looking for something similar to the SDK, you can use AWT and JME3, but this is only guaranteed on Windows. Linux (especially Wayland) doesn’t support LWJGL.

You can use LWJGL3, but it’s very limited and still needs improvements.

Alternatively, you can use ImGui or Nuklear (they’re very good for this type of project), but you’ll need advanced knowledge to integrate them with JME3.

As a last option (the one I recommend for beginners) is Lemur, it is very easy to create UI with it, in fact there is a material editor in it (Go to the repository)

As @pspeed and @tonihele mentioned, if you only need an editor to create a game, I think the best way is to use existing tools that can speed up this process.

1 Like

Hello, Tonihele, Thank you for the message. My goal is to make my workflow easier when working with JME3. I want to make it the way I want it, being able to easily add or remove features that I understand and then work on my project. Don’t get me wrong, the JME SDK is very good, and that’s my main use. However, I wanted to do something different. Although I’m not very familiar with some Java libraries, I’m willing to learn to make this a reality. I see great projects done by many people in posts here on the Forum.

I’ve tried to find ways to make my own SceneComposer and due to lack of experience, I found it very difficult to modify the code, and I wanted other approaches. My biggest problem today is that I need to compile to see the changes in my game, positions of my Nodes, additions and removals of assets. I wanted to have this ready to work on my projects…

I wanted something Godot-like, but I want to complete this challenge that I set myself, which is to create this in JME3, which is an engine that I’ve come to like.

So my goal is to create an editor, like SceneComposer, that can do transform, scale, rotation manipulations, organize nodes and scenes, etc… so that I don’t need to compile it into my code.

1 Like

Hi @SwiftWolf

Thanks for the recommendations, Lemur is compiled-only, right? Are there other methods to use within the SDK itself?

Lemur is exactly as “compiled-only” as jMonkeyEngine is.

Hey, @pspeed

Yes, yes, I understand that… I think I wasn’t clear… I wanted something similar to SceneComposer, which runs inside the SDK itself, and not an editor where I need to “build and run”, something like other editors, where you can position your Nodes/Spatials, bring the logic into Java and then, yes, build and run the game itself… I asked about Lemur, because I believe I need to create files that run inside the SDK to build and run “my editor”. I’ve already done that with the help of Claude AI, I compiled and was able to load .j3o, move objects, etc… So it’s more about understanding this mechanism inside the SDK itself and making an editor in it…

Thank you.

What you are talking about is writing a plugin for an IDE (integrated development environment). JMonkeyEngine SDK itself is using the Netbeans platform and builds upon it. There are other IDEs like Eclipse, Intellij Community, VSCode. If you want something that runs inside those then you need to read the documentation how to write a plugin and how to integrate JMonkeyEngine into the plugin for those editors.

I ran into the problem myself that I need some tools so I ended up writing a plugin for Intellij. This plugin depends on the core JMonkeyEngine libraries, starts an Application on a second thread and renders to canvas which is then attached to Intellij’s UI. Anytime I double click a j3o file it opens it and attaches it to the application’s rootNode. Now I need to implement tools to edit it. You get the picture, you need to do similarly.

Regarding Lemur you have two choices if you go the plugin way: you can use the editor’s built-in UI or you can use Lemur and render buttons and whatever need inside the canvas.

If you write a plugin, you will publish it once (or many times if you add features or fix bugs) at the end on a market place and you can just install it by a few clicks from your IDE’s plugin manager and you don’t need to compile it everytime.

1 Like