7k characters with skeletal mesh lead to horrible brakes

I am spawning 7k characters with one skeletal mesh each, and not only spawning takes 30 seconds (although it does many checks before spawn), but also I got 1-3 FPS in editor and not much more in the packaged build. Each mesh has several thousands of triangles and several tens of bones in the skeleton. My hardware: 4090, 4.8 GHz CPU, 64 GB RAM, SSD NVMe. Engine version: 5.4.1. What can be the problem? If additional data is needed, please inform me.

1 Like

The engine is so much trash that even with a single bone, you’d be lucky to load in 300 skeletal meshes concurrently and have something playable in 480x200px resolution around 30fps…

1 Like

Does nobody want to write seriously?

1 Like

100% serious.
What you are doing is not achievable on a Good engine.
In unreal it is just… unreal.

So, what to do to avoid this problem?

Dont use skeletal mesh - and even when you just don’t.
7k is a lot, so probably trim down to a realistic count.

Probably 1k or thereabouts.

Look up the talks from Assassin Greed Unity. Total bugfest shitshow but at least they got the crowd stuff Ok-ish (considering when it was made, perhaps even good-ish).

Otherwise, abuzu with the talks on how to get fish to school.

But in the character blueprint, the skeletal mesh is undeletable. If I leave it blank, but add a static mesh - will engine ignore the entire component (since skeletal mesh component has something besides the mesh)?

But this count is all over the world, on the server. I had planned the full count of 70k.

Concurrently you and the player(s) would always be limited by hardware.

Perhaps you need to start from scratch after learning a bit more. Doesn’t seem like you understand enough of the basics to plan anything with more than a single player.

I didn’t say “use the character blueprint” I said “don’t use skeletal mesh” - obviously if the character blueprint (which btw you can’t use anyway with such massive counts) requires you to use the Skeletal Mesh you should not be using the character blueprint…

Again, refer to the 2 talks I mentioned, they are both GDC talks and they’ll at least give you an idea of how things are supposed to be done.
Keeping in mind both the titles are single player

For multiplayer replicated stuff - well, no one does it. Or even considers attempting it.
Though multiplayer mount&blade battles would be quite a beatiful thing.

The closest you can probably get with UE is likely to be around what Fortnite Creative gets away with. I think the lobby is still max of 200 players with 100 on each team, but that’s mostly speculation.

On anything multiplayer I have ever played youd be lucky to hit 200 concurrent players without having the server (or the host in p2p) melt down and lag the world to death.

I have just set skeletal meshes and animation blueprints to none and this didn’t help. Is it very hard to make non-character not overlap the solid objects (such as other similar actors/pawns or walls)? I mean the actor moves forward, hits the solid surface and stops - is it very hard?
P. S. And you didn’t guess, those characters are not players but the actors that are necessary to kill to get resources.

Doesnt really matter what they are. You need something in place to replace them out at runtime -or similar.

This could be an example of doing it with the foliage system.

However with 7k instances visible you are likely still going to get around 3fps - depends on the system, depends on tris count, depends on materials…

I have replaced those characters with pawns with static mesh and got much more FPS. No, the foliage is not what I need because those actors/pawns are moving. And no, only 5-10 instances are visible, 7k or more are all over the world (the world is 10x10 km). But now I faced a problem, how to do blocking collision with pawn? I have added the “Projectile Movement” and the pawns overlap everything, including ground (and fall into infinity).

I have already got a solution in another topic. This topic is not actual.

What you are trying to do is still flawed in principle.

Youll never be able to make anything work the way you are going about it.

Look into tick gropus.
Look into control groupes/tick managers.

Again, you dont do things for 7k items. You do things only for what is visible. And if 7k moving items are all visible, youd probably use Niagara or any system thats meant to handle high numbers.
And yes, niagara offers collision options.