Is JMonkey for me?

I am making a 2D shooter (3D graphics/rendering) that I am planning on trying to publish. I made a prototype in unity and ready to make a more complete version of the game, however neither Unity or Unreal seem to be fitting what I need. I wrote my own physics and collision detection/handling and would only use those engines for animation tools, rendering, and networking which they seem to do poorly(unity networking) or cost too much (unreal).

In short I am just looking for opinions for how ready this software is for a serious project (I am aware it is still alpha), if it helps to say I do not mind the occasional hiccups as long as I can get the job done. It seems to be coming down between this and LibGDX, and since LibGDX is just a framework I would prefer JMokney if it is ready. Any input on either of these options would be greatly appreciated!

Short reply: yes, it is for you.

JME is an engine for programmers, it means that everything you need to do is to write a code. There are no scripts, the only designer is that one for scene, you are free to do anything with full Java’s flexibility and power.
The engine provides you a standard set of shaders, renderers, filters and so on, it handles the object tree and gives you a set of paths that you can follow… or not! For example, you can use AppStates or organize your application in different way. There are several GUI solutions available for JME, but you can write your own.
In my project I reworked the whole rendering pipeline, so everything is possible.

Developers are working on version 3.1, If you want stable one you can use 3.0.

Thank you very much for your input! It seems very promising from what you said and what I am seeing in other games made by JME.

Yep, jMonkey is much more flexible than the industrial other options. it’s open source, well documented and there is always some guys to answer you most strange questions, to address your most odd needs ^^

I’m currently making a 2D shooter too (with entity system) ! If your project is open source, I may be interested in peeking into your homemade physic code ^^

About LibGDX, jMonkey is just what you need to avoid reproducing the wheel, to get into your gameplay fast.

…hello and welcome…all you need is in JME3.0+ … there is virtually, nothing that you cant do in JME3 what Unity or other systems doing. You just need to sit down, and do some programming…you will have nice smile on your face when you see, how smooth runing your game, over plenty of platforms, even older than 10 years…and as a developer, you want that…you want that very very much…thats something you cant have with UE4 or Unity…you just cant…so, in short…JME3 is a very well made choice…

JMonkey is for programmers (imo) and its brilliant (fact)

1 Like

Welcome To JME.

JMonkey lets you do much less workarounds than Unity since it’s not a monolithic system and gives you a lot more power in what you want to do and how you want to do it.

Thanks for all the input, surprising how positive the response has been :D. Out of curiosity (definitely wont do this for my main project), Since it seems to be just java, i was wondering if you could also do this with languages built on the jvm that have good interop like clojure or scala.

I have no experience with such languages, but I imagine it would work if you can mix Java code and your language (to import JME3), Instantiate Java objects, call Java methods, access Java variables, and extend Java classes.

I know that some here in the forums use clojure and (others) groovy. (And tried to convince me to convert multiple times XD )

and there is always some guys to answer you most strange questions

This cannot be overstated. The forum for JMoneky is absolutely wonderful and the community is one of the best, most knowledgeable, and FRIENDLY communities out there. The only project open source or otherwise I can think of that has a community and documentation of the class of JMonkey is the PostgreSQL database community.

I’m a complete newbie to game development and 3-D development, but, I’ve found the community here to an absolutely wonderful experience.


I think you shouldn’t look too much into alpha and such… I moved my small/medium sized game from 3.0 to 3.1 in an hour. And never had to change anything before that (3 years going). Also, there was one small very specific visual glitch I encountered in 3.0 (corrected in 3.1). The api is stable and very mature.

Also agree with gerald: people love answering questions here. It’s kind of a frenzy :D. People aren’t here to google stuff for others, or answer basic java questions but apart from that, questions are tackled diligently and precisely, usually by experts in the domain (developers of the engine).

Now, people that want to make typical games by configuration and then slap nice assets would be better off on some other engine,but people that make their own physical engine would feel at home.
Networking layer is great on jme.

I never looked at LibGDX so can’t weight in on it.

Even though jME uses the Bullet physics engine by default (which was used by industry projects before). I think, making an own physics engine was just an example for people loving to code custom stuff.

Other custom stuff is UI - there exist at least 4 solutions for UI (Lemur, JavaFX, Nifty, ToneGodUI), but still many people love to develop their own UI - just because they can. :chimpanzee_closedlaugh:

But JME3 itself is not in alpha - there is 3.0 release already for a very long time. It’s future version of engine with new features what is in alpha.

1 Like

Interesting maybe I will try this on my main project then.

I am already surprised at the response here.

Oh, I use the default bullet physics engine and well, it feels like they looked at my needs, went back in the past and modified the engine to be perfect for me :D. I throw the sink at it and it works fine, even on a small phone. But for special needs, it makes sense to build your own (if you are brighter than me :D).

Small add: some people used scala with jme.

Yes, you can use scala, xtend, java8, groovy with jME. But it’s a java API.
So it’s Java Collection and not Scala collection,…

I played jME with Scala, java8. Today, I mainly used Xtend for my jME stuff (to be able to generate java7 or java8 code with lower overhead (size, runtime)), and have syntax sugar.

(I’m coding in Scala as my daily job.)


Yea I was probably going to make a post down the road but in short my game needs to be deterministic. I haven’t looked at bullet physics yet and there might be a way to do it, but in my findings when I was doing my unity prototype I could not find a physics engine you could make deterministic even after making your game fixed point and controlling floating point error.

bullet with fixed timestep produces the exact same output for the same input, however even minimal derivation on the input can produce a rapidly different result.

So you might want to use a own yes.

slightly off topic and I hope I’m not high hijacking this thread, but I’m also considering the use of JME for a project I’d like to play with and perhaps release at some point. What’s the status of JME 3.1 (besides the alpha1)? is there a time frame for an alpha2 or beta? I’d like to start straight away with 3.1 instead of 3.0 as it supports some stuff I believe I’m going to need.
Any answer is much appreciated!