I'm fairly new to jme3, and try to implement a dynamic labyrinth the user navigates through. It worked quite well with the
CharacterControl according to the tutorials from the documentation. But for some functionality I switched to the
BetterCharacterControl. Since then, the performance dropped dramatically (before: 100s of frames per second, now 3-4 frames per second).
What could be the reason for this issue?
I already tried to optimise according to what I found, i.e. ensured that the labyrinth itself is static, using
GeometryBatchFactory.optimize() on it, using a
CollisionShapeFactory.createMeshShape(), but nothing really helped.
The labyrinth itself is automatically generated and built by using
Box geometries, each box representing one wall (it's really just a first experiment with jme).
Here's the code by which I add the labyrinth to the physics space (assuming collision control is the issue):
CollisionShape mazeShape = CollisionShapeFactory.createMeshShape(this.maze.getRootNode());
this.landscape = new RigidBodyControl(mazeShape, 0.0f);
This is the character control setup:
this.playerNode = new Node(PLAYER_NAME);
this.playerControl = new BetterCharacterControl(1f, 4f, 10f);
this.playerControl.setJumpForce(new Vector3f(0, 10, 0));
this.playerControl.setGravity(new Vector3f(0, -20, 0));
And finally it gets added to an bullet app state:
bulletAppState = new BulletAppState();
Anything obvious I did wrong?