Give me a little pitch!

I’ve done Unity3d, Unreal, Gameplay3d. I just hate using Unity3d because it’s expensive and closed source. Unreal is C++ and visual blueprint scripting which is cool but the learning curve for C++ is tough and their blueprint stuff never turned me on.

Are there any hidden traps with using JME3? I can get around any speed problem with a c++ library so is it that Unity3d and Unreal both can make WebGL content while this engine can’t as of yet?

The IDE is relatively primitive compared to Unity3d and Unreal but that can be fixed with a little work. Java isn’t my favorite object-oriented language. I think C# now wins out over C++. Ease of use with Java or C# and it’s memory clean up.

Also, there isn’t really any work for contractors here. Has Unity3d dominated the market that much?

Sorry for my ramblings. I’m just trying to figure out where to put my opensource energies into.

Nowadays, it’s common that people don’t repair or even change tires on their cars themselves. Still, there are people that spend large parts of their spare time tinkering with cars, old and new.
Even though it’s much easier to buy a car from coming off a factory line, there are companies specializing in the niche market of customizing cars to the customer.
It seems that some people want to be able to individualize their cars, create unique experiences and master crafting skills.

The same analogy can be made for musical instruments

1 Like

Unity has a budget. Unity has a team of very well paid developers. So its more of a compliment than you might think. Jmonkey is more of a developers engine. It doesnt have the bells and whistles like the unity sdk. But it doesnt mean it cant do just as much. You may find 10 paid implementations on unity. You will find nothing for sale here. Its all free.

And i think youd maybe be surprised at how often jme is used and not advertised. You do not need to put any splashscreen on your game.

1 Like

Jmnokey’s the only engine I’ve used since I first got into game design, so I can’t give much comparison opinion, but I can say that Jmonkey has never let me down to even make me consider another engine, and after achieving everything I’ve been able to with this engine so far, I couldn’t ever see myself paying for a licensed engine. I’ve found this community to be extremely helpful anytime I’ve been frustrated or run into any seemingly unsolvable problems, and I’ve also learned a lot more than I expected from the tutorials and just browsing old threads and discussions on these forums.

1 Like

Obviously there is no perfect choice here but if you’re only a coder then choose the one that represents the programming language that you know best.

1 Like

You dont really need to go object oriented if that’s an issue. Check out the extremely intuitive and efficient Zay-ES framework that @pspeed put together for jMonkeyEngine.

What open source alternatives are on your radar right now ? (I’m guessing the ones you mention to begin with are closed source…)

Do you like Java?
Do you like 3d scenegraph or games?
Do you like opensource?

If you answered ‘yes’ to all three… you can choose between jmonkeyengine or libGDX.

I prefer jMonkeyEngine because it is more desktop friently and you are more free;
libGDX leans toward Android and try to enforce its way into your code.

My suggestion is to try to run the tutorials to get the feet wet with jme.

1 Like

I’ve been meaning to respond since you first posted this topic, but I’ve been very busy this last week and didn’t have a chance.

The only “hidden trap” that I can think of off the bat is that if you write code like:


you have to be very careful not to alter the fields of the vector since then ALL references to UNIT_Y would be referencing your altered vector (which probably wouldn’t really be UNIT_Y anymore).

I think it’s highly unlikely that you’ll run into any performance issues with JME that you wouldn’t get with any other language/framework. The hard work in games is usually rendering, and that’s all going to straight OpenGL. If you need something that’s computationally expensive, there are OpenCL bindings available. And, as you mentioned, if you absolutely need to you can link to a C++ library (suggestion: use JNR (Java Native Runtime) instead of JNI - it’s MUCH nicer to work with and you don’t need to build/compile a wrapper around the underlying library).

You’re correct that jME can’t make WebGL content right now. That said, having worked with WebGL outside of jME I don’t really think it’s a loss. WebGL (and the JS/web browser environment) ties your hands on a lot of things, and I remain unconvinced that being able to stick 3D content in a webpage is really such a wonderful thing to do. It’s also MUCH easier to hit performance traps.

You don’t need to use the jME SDK to write jME code. I use Eclipse for coding, and you can use the SDK or @javasabr’s outstanding jMonkeyBuilder editor just for managing your 3D content. As far as the Java language goes, you can use any JVM language you like to write jME games. You might like Kotlin. It’s got clean and concise syntax and isn’t as verbose as Java, and it borrows a few features from C# that Java doesn’t have (like extension methods). Having done 3D work with both Java and C++ (and non-3D work with C#), I can say that Java and C# definitely beat C++ for ease of use. There are only a very few niche areas where I’d consider using C++ over Java or C#, and those are usually already covered by good libraries (like OpenCL).


Side note to the original question, but where is the documentation for JNR? (Outside of the example files) There must be some kind of getting started/FAQ somewhere…

I’m not sure. JNR unfortunately does not seem to have much of an online presence beyond GitHub.

How’s the support for Unity? There’s lots of help here. Poor normen and pspeed seem to get the brunt of (fill in the blank isn’t working) and (why isn’t my object on-screen). Sigh… I’ve done it too. And, there are other posters that help, too. And once, I totally misunderstood the problem and posted my solution. Do they have a cool monkey logo?