Uses for jmonkey

Hi, everyone, so im currently learning Java, and I found out that this engine can do some cool stuff, since im sticking to Java atm I want to know more exactly what kind of game can you do with this engine.
I google’d but everything I find regarding importing animations, using a model, etc… It’s almost 9+ years old.

Can i do, for example, a skate and parkour low poly game? or is it to complex for this to handle? The only reason i would like to try and learn this its because i dont want to get into another language since im learning Java, I prefer at the moment sticking to one language,
thanks a lot!

1 Like

Welcome to the community!

There are two answers to your question about what jME is able to handle: the short answer, and the long answer. The short answer is that as a mature general-purpose engine, jME will be able to handle any project you should choose to throw at it. The long answer is that this is true of any general purpose engine, and that the question is really how difficult or easy the path to your desired outcome is rather than whether or not it is possible. Every engine is built a bit differently with different technologies and techniques and certainly different investments of money and time. As such, some things are naturally a bit easier or more intuitive in one engine than in other engines. Sometimes the easy will come at the cost of something else being slower or harder. Once you get into general purpose engines, the choice doesn’t come to what’s possible because anything is possible (with enough time and effort); the choice comes to what fits your needs best. If you want to make games with Java, I absolutely believe you are in the best place to do so. On the other hand, if you wanted to make games that run on consoles, you’re out of luck here (since there aren’t commercially viable JVM ports on console and Java AOT technologies do not support consoles currently it’s just not possible to port jME to consoles right now). It all comes down to what you want to make and which engine helps you get to your goal in a way that best fits your needs and wants.

To answer your question about animations and models, you’ll find that jME keeps up quite well with anything in the GLTF format (an industry standard interchange format designed for games & other realtime rendering applications). I think you’ll find that the most challenging part of your example skate and parkour game is designing the data model and game logic - once you’re skilled at data & logic models (which you may already be), then adapting to new engines is usually reasonably straightforward (at a high level, at least - individual engines may always have difficult quirks).

7 Likes

Thanks a lot for the information, it’s really useful, and cleared almost all the doubts I had, yeah, basically I want this project to take as much time as it needs, so theres no rush or deadlines since this will also help me improve a lot (i guess) in the programming area.

2 Likes

Hello @dariusxdmemes and welcome to the JME community.

as @danielp mentioned, you can do pretty much any kind of game project with JME as long as you put your effort in it. From my personal experience, most of the complexity for every game project comes from how you structure your project (assets and code), and what you want the game to be like. The more you work with your project the more you will learn.

For your skate and parkour game, I suggest you work on a design document. You can look for a template online or just make your own. It will have all the features and core concepts you of your game and sill serve as a guide for your development as well as an indicator if things are going too far.

1 Like

And don’t be afraid to start with some simpler ideas first and work your way up to your “dream game”. You will learn a lot in the process.

5 Likes

Thanks! yeah, actually im reading all the documentation and doing simple test importing simple things… Aside from this im documenting my ideas in a project on what do i really want it to be, so i dont end up running in circles adn eventually give up.

Yeah, first I gotta get used to this and learn the basics, yesterday I opened it for the first time and said “damn where did I get into”

2 Likes

Hi @dariusxdmemes, welcome to the community.
This video demonstrates the complete process of creating, animating, and importing 3D characters into jMonkeyEngine, using popular and free resources like ReadyPlayerMe, Mixamo and Blender and employ modern file formats like FBX and glTF.
On the channel you can find a lot of demos with third-person mechanics and other interesting tutorials with links to source codes.
I hope this helps you on your learning journey!

3 Likes

Any category of games could be in fact be built using jMonkeyEngine. Even not games. I would personally talk about my projects. I am building an open-source simulation framework (Electrostatic-Sandbox SDK), and I am using jMonkeyEngine and Minie for Graphics simulations…

Categories of target include Space Missions simulations (e.g., Rocket Abort - Rocket Launch - Rocket Separation phases - Space Shuttle Orbit Cruises), Medical Device Biosimulation circuits (e.g., Mechanical ventilation PC/VC physics - Mechanical Circulatory support systems), and Military Simulations (e.g., Wargaming).

A lot of these simulations can also be done without graphics. Most of them will need additional APIs that will be provided by the simulation SDK.

This is an example of a basic distributed simulation system that is made on wire, a Serial USB Cable… So, you probably got an idea now that jMonkeyEngine is a Turing complete game engine. And, any library that is written in Java and/or C/C++ could be integrated easily alongside the Engine core. The Engine rendering pipeline is based on OpenGL for desktops through LWJGL APIs, and OGLES for mobile devices. Physics is based on bullet physics. Audio rendering is based on OpenAL also LWJGL, and OpenALSoft for mobile. The list is exhaustive, but a lot is already managed. Most of time you have to deal mainly with game programming logic.

3 Likes

First of all, I wish you all the best in your Java journey! Let me address your questions honestly and with some context.

Can I do, for example, a skate and parkour low poly game?

Absolutely! jMonkeyEngine (JME) is a 3D game engine, so in theory, you can build almost anything with it. There are many successful implementations of a variety of game ideas using JME, you can find examples both here on the forum and on GitHub. However, it’s important to note that such a project can be complex, especially if you’re still in the early stages of learning Java.

Java itself can be a challenging language to learn without a proper foundation. It’s not just about learning syntax; a strong understanding of key concepts like data structures, design patterns, storage and retrieval, operating systems, and at least a basic knowledge of graphics programming is essential. These concepts aren’t as straightforward as they might sound, they’re deep topics, and each requires time and dedication to grasp.

Some concepts, like operating systems or low-level storage techniques, may not directly apply to game development, but others, like object-oriented programming (OOP), are crucial. Java heavily relies on OOP principles, and mastering them is essential for working with JME. Additionally, having a undrestanding of the JVM and compilers will significantly help you in the long run.

Even with a strong Java foundation, JME itself can present its own challenges. For example:

  • Outdated PBR (Physically-Based Rendering): While functional, it may not be as advanced as what you’ll find in modern engines.
  • Asset workflow: Importing and preparing assets can be tricky. Even with popular formats like GLTF that supposedly jme has strong support for it, but there’s a good chance things won’t work perfectly on the first try, coordination issues, materials, or animations may need tweaking.
  • Scene editors: While there are tools like the netbeans based jme sdk, which is sufficient for most use cases, JME lacks a modern, advanced scene editor. You might find yourself relying on third-party or custom tools.

If you’re not experienced in 3D modeling or asset creation (like myself), these issues can add to the frustration. That said, with time and effort, you can overcome these hurdles and even contribute to the engine or its ecosystem, like many in the community have done.

I want to know more exactly what kind of game can you do with this engine.

JME is suitable for many types of games, from simple 2D or 3D games to more complex projects. However, it’s not designed for AAA-level games. Building such games requires enormous resources and millions of dollars to make ready jme it self for such use case at first! among assets, something very far, outside the scope of jme as it stands today.

If you’re interested in creating games with stunning graphics and ready-to-use tools or assets, you might want to consider exploring other engines, like unreal engine. unreal supports C++, which could be a great next step after mastering java if you want to dive deeper into game development with cutting-edge technology.

That being said, if you stick with Java and JME, you’ll gain valuable experience and a deeper understanding of both programming and game development. It’s not the easiest path, but it’s incredibly rewarding. Good luck, and don’t hesitate to reach out if you have more questions, we’re here to help!

3 Likes