tlf30 / jme4

Other
8 stars 0 forks source link

Roadmap #3

Open tlf30 opened 5 years ago

tlf30 commented 5 years ago
  1. Prepwork/Postwork

    • [x] Re-brand to JME4
    • [ ] Remove all deprecated libraries/classes/functions from jme3
    • [x] Remove jme3-jbullet
    • [x] Remove jme3-lwjgl
    • [ ] Remove jme3-blender
    • [ ] Remove jme3-bullet* replaced with Minie #9
    • [ ] Remove old animation system
    • [ ] Format all code to a common format (POSTWORK)
    • [ ] Create a JME4 issues tag on GitHub (POSTWORK)
    • [ ] Create a 4.0 branch on GitHub (POSTWORK)
  2. JDK 11 * [ ] Move to Gradle 5 DONE IN JME3

    • [ ] Implement java 9+ modules
  3. Vulkan Support

    • [ ] Add abstraction layer between the rendering engine and the rest of jme
    • [ ] Abstraction layer tests
    • [ ] Get OpenGL working in the new rendering layer
    • [ ] Get Vulkan working in the new rendering layer
    • [ ] Add basic Vulkan shaders
    • [ ] Vulkan tests
  4. Platform Support (need to get working in JME4)

    • [ ] Windows
    • [ ] Linux
    • [ ] OS X
    • [ ] Android
    • [ ] iOS
  5. Other JME4 Projects

    • [ ] Rewrite serializer * [ ] Breakout jme-examples (see #7 ) DONE IN JME3

Things to take into consideration when planning this roadmap:

About the SDK
At this time it is NOT within the scope of JME4 to prepare a SDK based on Netbeans 10+. If someone wants to do this, we would welcome it with open arms, but it will take a massive amount of work, and we already have a lot to do just getting JME4 ready.

stephengold commented 5 years ago

Also, please delete the Blender importer.

pavly-gerges commented 1 year ago

Would you like some work on Android? I can prepare a Roadmap for the Android module.

tlf30 commented 1 year ago

Hello, it was simpler to build a new engine from scratch to be honest. Vulkan (or render independent backend) would require massive changes to jme that would probably not be welcome by the community. Instead I have been building a completely custom engine that solves many of the issues I have had with jme.

Things in my engine that are far different are:

I currently have implemented plugins for supporting:

I am in the process of implementing a Physx5 plugin for physics, and when I get to it an OpenAL plugin.

The rendering engine design allows for a fully programmable rendering pipeline independent of the material and shader pipelines. It can be complicated to understand at first but very powerful. Currently it does not support G buffers or custom inputs/outputs between rendering stages, but does for shaders and material stages. I am still working on the PBR lighting implementation.

Other things that still need to be done that I have not looked at:

The model/mesh components allow very good bone and morph key data structures/control. So I think building a tween based animation system would not be too complicated, but I have not started.

Originally the engine used a iso surface terrain engine based on code from the jme community that I patched together and modified for the engine. I need to rewrite that code for the new scene graph and backend, but also fix many issues in it. I will probably just write most of it from scratch.

I have been hesitant to make it open source yet due to the large amount of breaking changes that I make on a regular basis. The engines code is originally from 2018 and in the past used JME for the rendering engine and scene graph. So several key parts of the engine are currently broken due to cutting the engine over to use its own rendering engine and scene graph. Other parts have ugly hacks to keep things working until I have time to rewrite them.

If people are interested, I can share access to the code, it is currently hosted on a private gitlab instance. PM me on the forums for more information.

Thanks, Trevor

stephengold commented 1 year ago

I've often considered doing something similar to what you describe. It's a big project.

If I were building a game engine from scratch, one of the first things I would do is ditch com.jme3.math and use JOML instead.

tlf30 commented 1 year ago

That is exactly what I did.

bobcbui commented 1 year ago

Are you still trying this task?

tlf30 commented 1 year ago

No, this is left here for documentation. Once the jme4 effort re-kicks off, then I will be involved with that. This repo is not active and there are no current plans to continue work here.

EDIT: If you are asking about my custom engine from scratch, that is an ongoing effort.