Performance CharacterControl vs BetterCharacterControl

Hello everyone,

I noticed some behaviour on the performance of the app (fps) using the different types of control in different scenes. For planning next steps of my programming I think I should understand why this happend.

I created a simple terrain (256x256, Patch Size 64) using the TerrainEditor with the default texture (dirt.jpg, not tri-planar). In the code I added a RigidBodyControl to this scene. And I put “Characters” on this scene. One character is made out of one node (with the Oto.mesh.xml-Model) and a CharacterControl on this node.

Putting one Character on this scene there is no problem with the performance (around 100 fps). Putting 50 Characters on the scene the fps fall down dramatically (around 5 fps). So I thought this is just to much. Then I tried some things. I replaced the terrain with the “main.scene” from the “town.zip” from the tutorials. Again I added RigidBodyControl to this scene And now the perfomance was back at around 100 fps again.

Next I found out is, that when I remove the CharacterControl from the Characters, the perfomance is at 100 fps again, even on the terrain. So I think, that the CharacterControl is the reason for the bad performance on the terrain. Replacing the CharacterControl with BetterCharacterControl the performance is also back on 100 fps even on the terrain.

So why is the CharacterControl fast on the “main.scene” but slow on the terrain? And why is the BetterCharacterControl always fast? Where does this big difference come from? Do I have to optimize the terrain in a special way?

It is not a problem at the moment because I think I would use the BetterCharacgerControl, but I would like to understand what is the best way with regard on perfomance, to put maybe 500 of characters on a terrain an let them walk around and do other things. Is it good to use BetterCharacterControl in this case?

Thanks in advance.

1 Like

CharacterControl and BetterCharacterControl should only be used on a player-controlled spatial.
See Collision between characters - #19 by carpenter

1 Like

Ah okay. Thank you. I will try the RigidBodyControl instead.

By the way, you may also want to enable Multithreading for Bullet Physics.

1 Like