Im making a roguelike vehicle shooter with chaos wheeled vehicle pawns as enemy characters. When I get to about 30-40 enemies onscreen at once my framerate tanks from the high 60s down into the low 30s-high 20s.
Performance profiling seems to indicate that a good chunk of my frame render time is coming from the physics simulation of the skeletal meshes, particularly relating to Skeletal Mesh MoveComponent(Primitive) Time.
I’m out of my depth as far as what to do to get better performance here. If someone could point me in a direction to start looking, I would be extremely grateful.
Thank you in advance to anyone who can take the time to help me out!
I’ve done a lot and gotten some good results but I’m not at my target yet. Let me tell you some of what I’ve done to see if it helps you.
Implemented a projectile pool system to reuse all projectiles and particle effects rather than spawning new ones every time. This cut down on framerate spikes for firing sequence.
Reduced my skeletal mesh poly counts in blender before reimporting to unreal.
Implemented 3 LODs for the skeletal mesh.
Turned off ‘Cast Shadows’ for all materials on the mesh at every LOD level.
Turned off animations for every LOD past LOD 0.
Turned off ‘Start with tick enabled’ for every component of my tank actors that didn’t need it.
Reduced texture size from 2K to 1K for all character textures, and normal and roughness maps to 512.
Changed my turret rotation BP to only rotate and face the player at distances of 5000 or less, instead of infinitely.
With these changes I’ve got 30 enemies onscreen at about 55 FPS. My target is to get to 40 at 60FPS. Anyways, hope this helps you out. =)