Hi i would like to know how big might be a game made in this engine(in java ) without overloading users pc ,What i intend to do is to create a space shooter game ,similar to Freelancer or X-series (x-rebirth),What i need to know is if it really possible/wise to try it in JMonkey,i have seen many game in Java -flash games,not mutch better then old tetris.Soo how far should some 1 go with this engine?
The engine can handle anything you’d realistically be able to throw at it. It’s trivial to write a program that overloads users machines whether you’re using this engine or not. You are responsible for the performance of your game, the engine won’t get in your way.
That what i intend is ,this engine is Java,java uses more resources (virtual machine …) soo what i ask is if this limits too mutch possible results.Lets say u make GTA san andreas ,and then u do GTA san andreas on jmonkey(java) how match more it will consume ?If its only 20-30% its fine but if it will take twice more… its too mutch.Soo thats what i need to know,how mutch more power ( GPU /CPU ) do i need to do it in java and in J Monkey?
Just because the engine is written in Java it does not mean that a game of such big scope will have issues may be “too big” for JME to handle. A vm or runtime platform is not really a cause of how bad a game runs. I know projects in Unreal or Unity that run worse than Arkham Knight on PC or can drain a gaming laptop battery in minutes.
From my experience, there are 5 main causes when a game takes more resources than it should:
Inefficient code (40%)
Inefficient assets (25%)
Inefficient design of game (25%)
Game engine choice (5%)
Programming language (5%)
No matter the engine you use, the bigger the scale of the game project the more efficient things need to be and optimizations are a must. Sometimes you need to modify the engine’s source code to fit your needs (an advantage of JME), use “tricks” on your assets or rethink how you are coding you game in general.
To answer your question: Yes, it can handle a GTA kind of game. But, as with any engine, requires a lot of work to make it right.
You can make a game that uses 20GB of your HDD, because of many high quality textures and models, but you need to be able to manage all of these assets in your memory to not overload your pc. It is up to you, not JME.
JME gives you much more freedom than other engines. Also every engine’s power is limited by hardware, no matter if it is Unity, JME or Unreal.
To give you an idea … I have an opened world multi player space game in beta with over 1500 live users written in jmonkey and the client can run on 10 year old laptops at 60fps. Java is not the issue, jmonkey is not the issue since most of the processing is in the GPU and will be the same regardless of engine. For multi player network games even physics is not an issue because it runs on the server. Don’t be worried about the jvm overhead because for example, the unity engine is written in c# which requires an even slower equivalent to the java jvm and most of the engines use a slow scripting language for the logic which is slower than pure java. Besides, today’s jvms pre compile your java code into native code at runtime anyways.
Jvms where only an issue in the mid to late 90s … those days are long gone.