jME4 Development

I’ll work from there. I’m pretty much thinking about working from the core lib out. You mentioned removing the particle lib from the core, redoing the terrain lib, physics, and javadoc. From what I’ve seen there are already great contributions to help with these, such as your Minie Physics and @glh3586’s particle monkey. If you agree with this being the best route, I’m thinking of simply working these into the new engine to replace what we currently have.

Edit: And I do plan on having the new features implemented as time runs on. I also am going to release my updates per every milestone I reach, and release it on github so others can work on it too. This will definitely require a team working on it

I also have to agree that it would be best to work from master, many things have been changed and my branch is very out-of-date.

Well I’m going to do what you did and and start with doing rebranding and making some basic changes to the engine. But I’m glad to see more people working on this now.

1 Like

What tools do the developers use to build projects with? Is it Maven or Gradle, or something else?
I’m trying to make sure I’m getting started the right way.

Also

Good, I’ll try to tap into his shader knowledge here soon.

Gradle.

This makes it sound like you’ve never built the existing engine before. That would be the first place to start, really. If you completely ignore what’s come before then you probably won’t get very far.

2 Likes

Thanks, I’ve done work on the engine but not using any such tools. I’ll install and get to work

if i remember correctly:

  • clone JME repo using SDK with gradle(or via command line having git and gradle)
  • clean and build
  • run some tests to see it work.

thats the start point

Ok, I’ll follow that order, thanks

generally its also here:

1 Like

Here is the setup stuff.

See Learn more here… Optional.

If you have problems with whatever you pick, let me know please.

So far, I’ve removed some of the deprecated methods to clean things up. And as far as Vulkan, I have it so that one can specify Vulkan with
setRenderer(AppSettings.LWJGL_VULKAN11)
My next step is to allow a Vulkan instance to be created.

But as far as OpenGL is concerned, would we all agree it is time to remove JOGL/JOAL?

  • It is not near as popular as LWJGL, at least among our current community.

  • It dosen’t have bindings for Vulkan.

  • And its not exactly meant for gaming, unlike LWJGL which is.

I think at this point its another library in addition to LWJGL, and its not going to help us with Vulkan or anything else at least for the time being.

Physics
This is more specifically for @sgold, would you agree to having Minie replace jbullet/native-bullet completely?

GUI:
How much would we all agree to switching our GUI system to @pspeed’s Lemur? I think would be much better option as it far simpler and easier for beginners to use.

Other Projects:
These are the current suggestions I’ve found so far

Let me know what you all think

Every time you embed a library in “core”, you are saying “Gee, I don’t like the convenience of having this library get updates often… I’d rather have bugs stick around for 2-3 years before they really get fixed.”

JME should be MORE modular, not less. Just something to keep in mind.

But I guess if you treat it like nifty, where the real library develops separately and JME just decides on including a particular version from time-to-time then it mitigates that.

…but then it’s also not much different than just including a dependency in the build.gradle file.

1 Like

I hope I didn’t phrase that incorrectly, but I didn’t mean shove everything into core lib.

I meant Lemur as a drop in replacement to Nifty and Minie to Bullet, and they be right where Nifty and Bullet are right now, outside the core lib.

Based on my experience with issue 796 it appears JOGL is no longer supported in JMonkeyEngine. I say delete it.

Yes.

2 Likes

If you meant, make a directory for it in jme repo… then it’s the same thing, to me. Monthly releases because once-every-three-year releases.

If you mean, add a dependency line in some build.gradle files that need a UI then I’m fine with it and I’m not sure it needs much discussion.

I meant the first, make a directory in the repo to replace Nifty as it is a lot easier to use. Now if there is a problem with that, let me know.

Problem: I can release Lemur whenever I want to now.

Make it a part of JME then Lemur can only get updates once every three years or so.

JME is already too big. Half of the things need to be moved out to their own projects… or at least made separately releasable.

Nifty needed its own integration layer which is why it has a project in our repo… but the nifty jar was always separate. Lemur requires no such integration layer.

3 Likes

So first update on my progress. I’m writing the rendering engine from scratch, which sounds very difficult, but its working so far.
I can almost officially say the blue-box-on-black-background “BasicGame” Application is fully capable of being rendered with the Vulkan renderer


There is not yet a guiNode, so 2D text and pictures cannot yet be rendered, but 3D models can be loaded and rendered with textures.

As far as if the OpenGL shaders can be used with Vulkan, I have not yet tested it. If worst comes to worst and Vulkan requires its own seperate shaders, I’ll try to make a collection of Vulkan shaders that I’ll include with this project when I finish it.

4 Likes

I have a question about the current jme3 setup as I want to make sure I get this right for jme4. How exactly do the Android and iOS libs work? As far as I see, there are no LJWGL natives for any mobile platforms and that made me very curious. I could definately use an expert here.

I want to state the fact that only obj models can be loaded, so no j3o. When I finish this, somebody can add on j3o support at their own desire. But what is the point of having j3o in the first place? To me at least, developers would prefer to handle all the files in their own native format and not need to convert them to something “proprietary” that is very limited as far as accessibility.