And my main question is that why an empty scene has 924 vertices and 462 triangles and 16 objects?
Is there any way to remove them?
My full game has at most 100 vertices on all objects, just some quads, is there any way to remove unseen vertices to reduce load?
Is 60fps of an empty scene is the most fps could be reached or any one could see more fps on mobile?
My target fps is 50 cause I managed everything of desktop version on 50 fps. But my game has about 30 to 40 fps.
Many Mobile devices and even some consoles have a cap of 60 PFS to preserve battery or avoid overheating. I tested on my Android mobile and console devices.
To keep a good performance you can:
Reduce texture size as much as possible with little sacrifice to quality.
If you are using JME 3.0 using Lighting materials select “Use Vertex Lighting” in each material’s properties or (I recommend this to avoid compatibility issues on some devices) use ColoredTexture materials or Unshaded materials with shadow maps.
Do not use too much of Nifty if your game will display both the scene and the GUI unless you “pause” the game, use Tonegod or Lemur instead if possible. If not, try optimizing the display (Batch in nifty on android did nothing on my tests)
Avoid creation (non culling) of game objects while they are on camera view do it while they are away. If some objects have to “Pop” in the scene, either make their scale really small or put them in the position of “far far far way” and then put them they way they are supposed to when needed (Don’t overuse this though).
As I said a basic game template has about 50fps and my game has 30 to 40 fps. Its variance is because of its own physics engine. But what are those 924 vertices? Can I remove them to reduce load? My game is 2D, simple unshaded quads with my own physics engine, I mean there is no raycast or any jmonkey lib used, and also no nifty GUI.
Thank you it has significant effect on efficiency but the problem is that I can’t do that on android. Not working on constructor of main_renderer (SimpleApplication) or on simpleInitApp() method! what’s the solution to remove it? I should add something to Android MainActivity?
Note: the other thing you can do is only add the app states that you want instead of including the default ones. So in the constructor of your app class, only pass the app states you want to super(). That’s the easiest way to leave out all of this stuff since the stats are displayed using the StatsAppState.