Optimizing an open world game

Hello,i’ve been trying to optimize my game but have had little success.My Pc has a 3060 but i am getting horrible frame rate (18-22fps) on all low.Here are some pictures i took that highlight some important factors





Now what could i do?I assume is because i have the map loaded all the time,I’ve been trying to get World Partition but it keeps failing
Other than that i am not sure what else i could do to reduce gpu&cpu times.Any help is appreciated!

Level streaming, reducing actor ticks, lower poly models, lower rez textures and soft object references for variable can all help with improving performance

Level streaming would be very hard to work with based on how complex my level is,the others do seem to work but i think the map is the biggest performance killer.At this point i am considering doing it from scratch in an already world partitioned map,unless i could somehow transfer everything from a level to another.I tried with a level instance but it was borderline unresponsive and very slow

Hi, game time is highest in stat unit, so looks like it’s CPU bound. Meaning investigating GPU performance won’t help (you could check this by setting the screen percentage to some really low value, if the frame rate does not improve you’re not GPU bound). What is the result from stat game ?

ok i did r.ScreenPercentage 1 and r.ScreenPercentage 100.Same frame rate.As for the stat game i get this:


I assume its very bad.

Yeah, that is the performance problem. You could split up the tick time more by using unreal frontend (or unreal insight since 5.4 I think). Will take some time to learn how to use those profiling tools though. My guess would be that those 100 characters are the problem (something like 30 should generally more or less fine, if you have more than you will likely need to optimize (animations, physics, collision, character movement, number of scene components; all those things need handling/changing from their default settings like only tick animation when in view and use update rate or even animation instancing and remove physics assets from the mesh or keep as simple as possible, or use navmeshwalking in the character movement)). But there should already be some forum posts/info about how to get a large amount of characters to run more or less performance :slight_smile:

And also disable tick in actors where you don’t need it. And be a bit careful about those 4ms blueprint time (that is time the blueprint logic is using and not stuff under the hood). Shipped game should optimize them and may run faster, but if that persists you could think about simplifying that logic or moving it to c++ (profiler tools would show you the exact blueprint functions taking up the time and you can than handle those (simplify or move to c++))

oh ok guess i’ll start researching for that,thanks again

“stat uobjects” will show you what exact actors/components are taking up the most CPU time.

“stat collision” will show if any collision passes are taking a long time.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.