I have found something! On level start start i now destroy all actors that dont have a collision and have phys_none. This improves the performance quite a lot. My level is made with interp actors since the world is randomly generated on the fly. When i destroy those with "destroy" in kismet the performance get better significantly. Though useing destroy with "based actors" strangely didnt do it like that, i had it like that before, must be a bug somehow. After destroying i force a garbage collections which also makes the performance a little better and then i unhide all the interp actors so they are visible again. This improvement is also cleary visible in the gameplay profiler, the interp actors made up the most of time now they are down with 0.02. Its strange since i already turned the light component and collision off for the interp actors. For collision i use dynamic blocking volumes, collisions on the level chunks interp actors would be too complex, i need a few dynamic blocking volumes for most level chunks. Dynamic blocking volumes make up the most time now with 0.11 but i guess i will not able to improve that. Long story short, i have now around 24 fps when the gameplay is running and 31fps in the start view. Still not great but a significant improvement.
I think this trick will not work with static meshes and it will not work with actors that need to be really moved with interpolation or have collision since that gets deleted on destroy.
Here is how it looks now in the gameplay profiler, its from running on the pc of course. This is in the start view:
This is while the gameplay is running, the teleporting of the level chunks while playing takes quite a lot (the level chunks are attached to the target points). But i have no idea what i can do about that and i need to do it while playing so i can reuse level chunks:
@Showster
Yea, i tried to delete all my kismet before, that wasnt it. I basicly have everything made in kismet. But i now made my own more simpliefied gametype that got me 0.03 time improvement in the profiler.
@ Lexluthor1
Sry, but that would be crazy if the device renders everything in the map without cull distance volumes! Just look at the castle map, there are none of such volumes. I think what you got confused with is that there is no occlusion working on IOS, that meshes that are hidden by other meshes in front get not rendered. But thats not really a issue for me because the camera points so low and the level chunks are as small as possible because the camera moves on a fixed path. I also tried a low max draw distance on all my level chunks before which didnt changed anything.
Bookmarks