Map Optimization (FPS)

Hello :),

I´m currently in the process of creating a map of which I´ve been working on for about 3 months.
I love LevelDesign, it´s just fascinates me, creating landscapes basically out of nothing and being able to tell a story with just a simple thing like a mountain or canyon.
The UE4 documentation got me through alot of the basics and some of the advanced technics and alot was just trial and error. I´m rather new, so I´m slowly advancing my knowledge, either by documentation, the UE4 Forums or Video Tutorials.
Now I ran into a massive “I don´t know what to do anymore” kinda like wall. Specifically optimizing FPS. I know that alot of Foliage causes performance issues so I got rid of all the unecessary. Using GroundClutterActors, seperating Mesh into Far/Near levels. Adjusting Culling Distance for large Rocks/Cliffs, etc. While my machine isn´t by far the best, I can still run most performance intense games with relative ease. I cooked my map about a week ago to start testing what I have created so far and to see how performance will be. Well I think Pacman would have travelled around the world twice while I was taking a single step.
I´ve read about Culling Volumes, but I dont think that will be enough. There´s also no Lighting build (IBL etc.)
So I hoped, someone could give me a helping hand on how to improve fps.

I´ve also ran into another issue after the latest devkit update. I´ve edited MI_NewIsland/MI_NewIsland_Hole and Childs (MM_NewIsland/_Hole). After the last update my changes were deleted. So I created duplicates renamed them and added my old changes
back in (Snow Biome textures). After cooking my map again today it would show my landscape in grayscale with no textures applied. It was ok while in the editor.

Sincerely

Ability to play video games /= the ability to create them

You shouldn’t need to edit the landscape material, unless something has changed i don’t know about, or, you just wanted to edit them for some other functionality reasons.
There are a lot of details missing …

Size of map?
Resolution of map?
(those 2 are my start points)
Are others having low FPS issues on your map after cooking?
System specs?
What does your computer resource pool look like when you have everything loaded up?
whats your FPS and MS for your map?
“stats fps” whats that look like? (another over-looked command is “stat Unit”)
Feel free to use this: Stat Commands in Unreal Engine | Unreal Engine 5.3 Documentation

Hi,

thanks for the reply in advance,

I´ve edited the landscape material to add 4 more textures. Specifically Snow;DeadGrass;Forest_Floor;Deep_Snow.

A friend of mine tested it and he had the same fps issues. His Machine does have better specs then I do eg. NVidia Titan; 32GB RAM

My System Specs:

Processor: AMD Phenom II X4 955 Processor 3,20GHz
RAM: 16,0 GB
GeForce GTX 960 4BG GDDR5
Windows 7 Home 64-Bit System

My Current CPU/RAM Usage in UE4 while everything is loaded up

CPU: 45%
RAM: 92%

Stat_FPS:

FPS: 15,5 average Highest_Peak_35FPS Lowest_Peak_9FPS Depending on Area and Density
MS: 63.5 average

Frame: 65ms
Game: 37ms
Draw: 58ms
GPU: 66ms
Resolution:
7621x7621

SectionSize:
127x127 Quads

SectionsPerComponent:
2x2

NumberOfComponents:
30/30

Total:
900

Way … way …waaaaay to high for Ark.
As a matter a fact, thats way to high for ANY multiplayer game. I would stick to 2k or under. You should see a dramatic boost in FPS with a 2k res map.

Your MS is really high here, and, i can bet its due to the 7k res map your running. At least the base of the high MS. Your FPS is really getting hit hard by something. Without actually seeing it, im going to guess its the 7k map res and possibly the foliage density.

Your CPU / RAM / Video is ok, i wouldnt say its under what it should be. I have seen stuff produced on less. I would drop your map res to like 2k, then, do a test to see what you gain in a 1k map res situation. Sometimes its like 2-5FPS, and, its not worth it, some times it is … up to you.

EDIT:
Reading over the stats (again, without actually seeing it) your poly count is way too high. If you are using default assets for Ark, i would venture to point the finger at the landscape you are using. You can use the landscape tool, under one of the options there is a option to resize it. You just want to redo the resolution. DONT save, just test it out without saving and see if that helps. If the 2k works out (2017 res), then try the 1009 res and see if that helps out at all. You may not gain anything from the 1k setup.

check this out here:

Scroll like 3/4 the way down, nice chart there.

Hey,

I actually uploaded a screenshot showing the stats and more. Apparently it doesnt show up in the attachments. I´ll reduce the resolution tomorrow and see how it impacts FPS.

Thanks again for your reply :slight_smile:

yeah man, just keep posting your updates so others can learn from this as well !

Hey,

after resizeing my landscape the FPS gain was very too little. I only gained 2 FPS. It got even worse in some other areas losing around 4 to 5 FPS. On top of that I would had to re-paint my landscape.
I am going to look further into my foliage, especially rocks. Lets see if there culling distance is set too high or sth.

here´s a link showing stats in UE4.

sincerely

Update_Foliage

Additional Images with an expanded view on Stats after removing some Foliage. Landscape resize not included. Will do one later as it takes some time for my machine to process.

New_Stats: Included InitView; Memory; Foliage; Landscape; Game; GPU Particles; Texture; Landscape; Object

I’ve just started getting into profiling in UE4, but a few things stand out to me here.

(1) Under GPU Particles it says that Sprite Spawn Time averages out 8.69 ms, and sometimes goes up to 22.27 ms. That’s a pretty big hit to performance.

(2) Under Foliage I see “Triangles - 43 million”. That seems like a lot to me, but I dev on a laptop so you you’ll want to ask someone more familiar with ADK if that is acceptable.

I’m not sure if it’s the same in ADK, but in regular UE4 you can set what ever is spawning your particles to “hidden in game” to see if that gives you a big fps boost. If that’s what it is then you’ll need to figure out a way to reduce it somehow. I personally have very, very little experience with particles so I can’t offer up much advice here. Looking at your Draw / GPU ms times on the right side of the screen makes me assume there’s more than just the particles slowing you down though.

Also what are your dev systems specs? You may be running a higher graphics setting inside ADK than your system can handle.

Second picture down:
Occlusion Calling - 15.5 ms
View Visiblity - 21.22 ms

Also on the right side of the screen “Textures Allocated: 1832 mb - (100%)” may be an issue as well.

It should be noted that cooked builds will run faster than the PIE version as the editor its self eats up a lot of resources.

Forth picture down:
“Landscape Drawcalls - 1078” may be an issue. What is the size of your landscape? How many “landscape components” does it consist of? Each landscape component requires 1 drawcall.

What does it say when you use the “Profile GPU” command? Depending on your system, post-process effects can eat up a lot of ms as well. What about level streaming? Are the meshes using their LODs properly? Have you added any custom meshes / blueprints / etc… ???

Ps … take everything I said as an idea of what’s going wrong. As I said, I’m fairly new to profiling with UE4 so it would probably be wise to get input from someone more experienced than myself before you make any drastic changes.

– edit --]
Just saw you already posted info on half the stuff I asked for. I should probably read things before I attempt to post advice lol…

Try changing the landscape material back to the original and see if it makes any noticeable difference in terms of render time (ms). Check your shader complexity for your landscape too (in regular UE4 you can do this by pushing F5 while in PIE). If your landscape shader complexity is high, you can reduce it in a couple different ways, but the easiest is to limit the number of painted layers within a single landscape component. Each landscape component compiles it’s own shader depending on the number of layers used within that component. Since you’ve added additional textures, google “ue4 texture shared wrap”. I dunno if that feature is available in ADK, but there’s several performance benefits that come from using it.

nailed it …
ue4 texture shared wrap was a 4.6 feature. ADK uses 4.5.1 with some hacked in 4.7 features … so, its a guess and then a “fingers crossed” that it works as intended lol.

Particles in ADK (ark in general) are super painful. Much more so over normal UE4. You want to use as little as possible. Waterfalls are particle effects.

Hey,

I am sorry for not replying earlier, I was quite busy figureing out where I messed up. Afterall I´ve decided to start new. I tried out alot of things, even went so far to wipe it clean to see if my landscape would at least run lag free when cooked. Well It didn´t.
You can only learn, its trial and error. In my case more error then trial but nonetheless I wont give up! The landscape on my new map is already done thx to Scape. A nice free tool to create heightmaps.
The trees are growing nicely and I am running at a constant of 40 to 55 FPS. Even in high density areas. In the next days I´ll give it another try and cook my map. Fingers crossed!

yay! glad to hear!
I always tell people, that, if you havent restarted at least 10 times, your doing it wrong. I look forward to seeing your project

Just curious about the workflow and result of using Scape. How long did it take you and how did the result look in once imported to the devkit?

It took me around 2 to 3 hours in total to create my new landscape with Scape. The result looked pretty nice. Even after resizeing down to 2k resolution. That being said, Scape is in Alpha, so it might crash once in a while. To save you simply Export your map as a 16Bit PNG. And to start working on it again you Import it.

Hey,

I cooked my new Map to check performance and so far its running smooth. The only issues I encountered were naming issues and Lighting. Apparently the editor has troubles telling the difference between my A1_Far/Near and theisland/scorchedearth. So it starts to cook the levels seperate from eachother which leaves me with a long list of maps to choose from.

The Lighting I took was from theisland map since I am not familiar with the process of yet. Down below is a link to some pictures I took of the map and its current state. Theres no real detail in it yet. Alot will change once I got the Lighting figured out! GroundClutter Actors not working aswell.
Furtermore I need to figure out how to creat my own custom spawnmap and how to get the IBL files into my map. Can´t find them in the Contentbrowser (Tried loading theisland, didnt work).
But at least I dont have these massive performance issues anymore once cooked! :slight_smile:

Hey,

I finally got my Lighting working “ish”, tho when I cook the map and start it up in ARK I get the following Crash Report Message.

If anyone knows what exactly went wrong would be appreciated. The only thing I could tell is that some Shader cant be found or some Material doesnt work. I havent found anything related to the referred Asset.

Sincerely

looks like there maybe something wrong with the materials used (where it is, i have no idea). I would assume its a landscape one, but, its in the shared folder, so, who knows.

EDIT: looks like there is a shader issue - are you using rock assets other then the ones that are default? (ref= “BM_Rock”)

Ye i do use Rock Assets, but only the ones available thourgh the Ark DevKit. Tho I used a different Material Inst for mine.

Also found the BM_Rock_DN. Tried Selecting Actors with that Material but nothing happend.

I´ll CHange back the Material for the Rock Assets.