[Solved] JME is for me? = YES

Hello, I'm new in this community… I'm planning a real-time multiplayer game and from all the existing engines I choose JME mainly because:


  1. I like Java over C++ (I have more experience with)
  2. Examples and documentation seems pretty straight forward (maybe easiest than other engines)
  3. Its under active maintenance
  4. It has a great community



    However, I'm really worry about the performance. As a test, I tried to play  "banghowdy" game (made with JME) but it was so slow, even in single player. I couldn't do anything! I also tried "Slam Soccer 2006" which is developed with LJGL. And again it was so slow, even before playing.



    I wonder if Java games required more computer power? according to "Slam Soccer 2006" requirements suggest to have at least 512MB RAM and 128MB video card to play it.



    My computer has 1.5GB RAM and an integrated ATI with 256MB shared memory. I have no problem to play other 3D games either in Windows (e.g. Battlefield, Age of Mythology) or in Linux (Tremulous, Glest, OpenArena, etc.). For example, Tremulous requirements are 256MB RAM and 32MB video card, and for OpenAreana (Quake 3 based) is 64MB RAM and 8MB video card!!



    In both games, I can play smoothly with high quality textures and resolution, big maps and with 10+ people over internet.

    I believe JME uses OpenGL as well Tremulous do. So,  where does that performance difference come from? I have read some articles that state Java is not anymore slow as before, and that nowadays its performance can be nearly compared to C++… so?



    I don't want to spend so much time in the development to finish with something unplayable for most people. It would not be the "great" game, but at least I wish it can run smoothly.



    I would like to hear your experiences with games developed with this engine, mainly if they are multiplayer, and if there are more examples out there that I could test.



    Thank you in advance!

I gotta be brief right now, but you should try Grappling Hook and Mad Skills Motocross. See what you think about the speed in those professionally made JME games :slight_smile:



As for multiplayer games there’s Nordgame as an up and running example, and Poisonville in development.



As long as you yourself know your bag of performance tricks JME should not be holding you back :wink:

@ Lepe:

When you start to use expensive shaders your graphics card will not make it. Also you have to optimize your scene. Batching objects together so you have less gl context switches, for example.

Performance on CPU should be no problem, as long as you do your job right.

Thank you erlend,



I think it is confirmed… my video card sucks or my computer doesn't like Java games. The games you showed me look amazing! I downloaded the demo for Mad Skills Motocross but is as slow as the ones I commented before. As is stated in Grappling Hook site:



   *  3.0 Ghz processor, 1 GB RAM

   * Minimum: NVIDIA GeForce 7600 / ATI Radeon X700

   * Recommended: NVIDIA GeForce 9600 / ATI Radeon HD 2600



So, my video card is out!  :cry:



In conclusion, I think I need a good video card in order to play Java 3D games (right?)…

As the game I want to do will be open sourced, I think it would be better if almost anyone can play it.

Are any good 2D games out there using this engine?



Thank you!

Grappling Hook uses 2 shaders and there would be a lot potential to optimize the rendering.

So it is not the best reference for jME-performance.

Hi JackNeil,



So, do you think Mad Skills Motocross use expensive shaders? In terms of graphics its seems to me somehow not that complex compared to Bang Howdy, Grappling Hook, Nordgame and Poisonville. The thing is that even in the main menu is very slow… I'm not that experienced with 3D game development, so I'm not sure if I could do something better than those people. Should I go with something else?



Thank you

I don't know how well Mad Skills Motocross is optimized.

Perhaps Erlend knows a bit more or we have to ask Tobias.

Hey JackNeil, I didn't see your avatar… so are you developing "Grappling Hook" ?

If so, great Job! I envy you!.. Is there any special reason there is no Linux/Mac version?

Have you ever had any comments that is too slow? Do you think it is possible to run

Grappling Hook (to be playable) with the video card I have? My concern is that if there any

JME 3D game that I could actually play… 

Grappling Hook is not out for Mac and Linux, because I have to test it more on this platforms and want to deploy it in a comfortable way.

There are some minor differences between the Java implementation on Linux, Windows, and Mac probably too.



You could try the demo. Without anti-aliasing, bloom and with a low resolution it might work. Would be interesting for me to know.



Grappling Hook runs fine with a NVIDIA GeForce 7600 Go and ATI Radeon X700, with low settings. This graphics cards are quite old, more than 3-4 years now.

I use Linux, so I will try it later in my wife's computer… (its a Gforce MX 400 64MB)

I think your insight can help me to define my way.

Could you answer these questions when it is possible for you (If its better for you, you can PM the answers)?

  1. For how long have you being developing games (professionally)?
  2. Have you ever worked with others engines? (if so, which ones?)
  3. Why did you decided to develop with JME (at the beginning)?
  4. What are the main positive / negative points you see in JME?
  5. Do you think any game developed with JME can achieve a close performance as

    if it were done with C++ ?



    I really appreciate your time.

    Thank you.

Hey,…if you want to see if jME fits your computer or needs, just install it on your computer and test it!!? This is much better than trying to evaluate it with questions…there are tons of examples you just have to start…

Hi ttrocha,



I already tried all the examples that comes with the source (even the tutorial 9 runs fine). All of them run without any problem. But as I explained before, it is not the same in complete games.

1. For how long have you being developing games (professionally)?

My first game project was a mod for RTCW in 2001. I have worked for one year on Velvet Assassin, a Xbox 360 and PC game, before I started with Grappling Hook.



2. Have you ever worked with others engines? (if so, which ones?)

I have worked with Irrlicht, Ogre, CrystalSpace, Panda3D and the in-house engine by Replay Studios.



3. Why did you decided to develop with JME (at the beginning)?

First reason is Java. Full article about this: http://www.speedrungames.com/?p=58

I prototyped Grappling Hook with Half Life 2, then moved to Ogre 3d, Irrlicht and finally to jME.

I almost went mad with Ogre 3d and Irrlicht, cause of stack corruption.

And can develop 3-5 times faster with Java then with C++.

jME is quite stable and has good features.

I think there is no better free game engine.



4. What are the main positive / negative points you see in JME?

Positive: Fast enough for me. good features. stable. great community.

Negative: no stable physics. OpenAL for sound is a bit buggy.



5. Do you think any game developed with JME can achieve a close performance as

if it were done with C++ ?


I think you need additional 2-3 years of experience with C++, to create a complex game that exceeds the Java version in performance. Profiling, tracking/fixing memory leaks, and a couple of other things are so much easier in Java. And you can do many things wrong in C++ that will drive you mad.


JackNeil Thank you very much for taking your time to answer those questions. Now its very clear to me. I was going to try Ogre3D, Irrlicht or CrustalSpace, but after reading your answers I will not loose my time (as my experience with C++ is limited).

I will be very glad to experiment with JME and support this community.



Thank you again!

see you around.

JackNeil said:

(...) Negative: no stable physics. OpenAL for sound is a bit buggy.
And on that note, stable physics is on the way :)

Aye, and the 3D sound system has been an interesting venture in the jME audio arena

It seems rather strange that bang-howdy would run slow… But besides that, jME is mostly aimed toward high-end cards, at least in comparison to other engines like JCPT and Xith3D. Many of the games created with jME use the available shaders (like bloom) which can slow-down old cards that were not designed for shaders.

Point is, if the card the developer is using is high end (e.g GeForce 8800) then there's a low chance that it will run on lower cards, unless the developer checked it and optimized it for low-end cards as well. The result is that games that were intended to be compatible on OpenGL 1.1 are still not compatible because they were never tested on them.

lepe said:

JackNeil Thank you very much for taking your time to answer those questions. Now its very clear to me. I was going to try Ogre3D, Irrlicht or CrustalSpace, but after reading your answers I will not loose my time (as my experience with C++ is limited).
I will be very glad to experiment with JME and support this community.

Thank you again!
see you around.

I'm happy, that we have a new community-member. :)

Thanks, JackNeil, for your answers also from my side.

I would also like to say, that I tried your game and it is really amazing! Great job, must say… :slight_smile:

Anyway, I had the same problems about deciding which engine to use for my future game, and I had doubts about using JME. But after Motorcrosses and Hooks, and your answers, I must admit I finally know why I decided for JME. :slight_smile:

Anyway, another question for JackNeil:

How do you make levels? Did you develop your own level editor, level format,…??

Thanks again… :slight_smile:

a good way to do levels is with GameStates