Help for optimization.

I have done the following optimizations for my project:

  • Reduced texture resolution
  • Optimized lighting
  • Reduced overdraw in the scene (effects, etc.)
  • Used Nanite and enabled LODs for non-Nanite meshes

What other optimizations can I implement? I still can’t achieve the desired FPS.

1 Like

Having achieved a target FPS on a particular system may not reflect the same on another system. All the above-mentioned changed done seem to be fine. You could additionally use profiling tools to see what kind of assets take up most of the memory.

Off the top of my head - Using trim sheets, Occlusion culling, and reducing the number of actors running on tick might help improve performance. I mean, there are so many ways to optimize even I’m not sure of haha!

1 Like

Thanks I will be searching them

Pick a different engine… this engine is not even remotely friendly to optimization - and thats to be kind…

Search the forum for answers, theres tons of tips and things that cover just about everything - but it’s a learning/research process…

What do you mean with changing the engine?
Version?
I use 5.3 currently

Using a different one altogether.

Do you mean source version of 5.3 or 5.4 maybe 5.5?

No, he means one of the competitors, not from Epic, and re-develop your game.

Of course, they also can’t render the same thing at the same frame rate, they just have lower-capability defaults that work better on lower-end systems.

That being said, you haven’t shown any indication that you’ve actually yet done effective optimizations. For the forums to help, you’ll need to provide some more information:

  1. What is your target hardware? CPU, GPU, memory, OS, screen resolution?
  2. What is your target frame rate on that hardware, and what is your current frame rate from a release mode build run on an otherwise-idle target system?
  3. When using the profiler, where does it show that you’re bottlenecked?
  4. When running scene statistics, what are the number of lights / items / triangles / shader ops?
  5. Are there particular objects or features of your game that significantly improves the frame rate, if you remove them?
2 Likes

Edit for 2.
Frame rate and Output Resolution

Re what other engines do, depending on what engine it is, they generally render better than unreal.
Unreal looks plasticy unless you make it not look that way. It’s just the way it renders light by default.
Ofc, if you go to Unity and expect it to render stuff at cinematic quality faster then unreal you’ll have issues. On the other hand, CryEngine would look better, have more performance, and also include volumetric based ray tracing that is still (I think, been out of the rendering loop a while) the industry leading performance cost to ray traced end result system availiable to the unwashed masses like us.

Hoever - a source build of 4.27, while still being hard as f to optimize like anything Unreal Engine, will give you a much lower starting scene cost compare to the newer stuff that just doesn’t work.

You have to remeber that inspite of epic releasing it as a done deal the engine is not either done or a deal.

Even 4.whatever is/was not/will never be a “done deal”.
Its a development tool that is in constant development and that you are the unfortunate tester of (along with all your player base, and all us folurm users).

With that in mind, you will have an extra hard time using anything 5, due to Lumen, Nanite and a ton of other unoptimized things that are part of 5

Part of that complication is due to the fact that the tech is fairly new. You won’t really find as good optimization guides as you would for previous versions of the engine. And most importantly, even those who really want to get something good going are telling you that Nanite is trash like evrything else epic put theor hands to in the past 5 years or so. Its a systemic problem really.
Until fortnite dies the engine will never really work right i’m afraid.

1 Like

Guys I dont know why “new” Unreal technologies are kinda bad?
They are for optimization but they seem hard to use?
I am now testing 5.4

New technologies like Nanite and Lumen are hard to make the best use of, because we haven’t worked up a muscle memory for what will work well and what won’t. Typical forward shading has been around for 30 years, everyone knows how it works. G-buffer / deferred shading on top of modern on-card shaders has been around for 15 years, and most artists know how to work with it now. The latest technologies aren’t as mature, and the environment around them isn’t as mature. If you put in all the work to learn it and tweak it, it can look amazing at a playable frame rate – much better than the other engines – but the work you have to put in to get top-of-the-line looks, is top-of-the-line number of hours.

Anyway, you still didn’t answer the questions in the previous message. Without those questions, you can’t really start a real discussion about “optimization.”

Nanite is just a bad idea according to people who have a name in the industry, looked at the source, and said the equivalent of “Epic is on drugs if they think this is ever going to be faster than regular scenes”.

Chaos performs around 80% WORSE than PhysX - Epic can’t even paint by numbers on physics.

Lumen is it’s own thing - GIs are problematic for everyone when it comes to cost. Still, it’s new. It’ll never “work right” until the 3rd or 4th year of active development.
And even then, probably it’ll only start to work right when people that matter actually join development of it - which is not likely given Epic’s situation.

MetaHumans aren’t for game development - they should never be made to be for game dev.
Similar tech - Lyra, MotionMatching, etc. unless it’s implemented by you is worthless and full of holes anyways.
ML Deformer is an even worse than normal idea - they can’t compete with Pixar due to patents. ML does not even come close.

Landscapes will never work by design when performance is involved.

SkyAthmosphere is a dud unless you really need to be “out into space”, and even IF you were, it’s arguably still a dud.

SkyLight and the real time capture option it now has is PROBABLY the only actual improvement they made to the engine in the past 6 years or so (and it’s obviously expensive anyway).

The real problem with Epic is it’s employees.
They underpay them, remove them from doing what they do best, and often re-assign them to perform whatever menial task needs doing according to some egg-head who randomly decided that: “Don’t work on this anymore, we made the 1 video that makes it look like we compete with other engines which do the same thing much better; no need to improve past the video. In fact, remove the feature all-together or make it not work with everything else.”
AND
On top of that, they are probably like: “hey fortnite needs some animation and I know you are really just a developer with some 20 years experience developing, but make this animation instead”. Really wouldn’t put it past them :stuck_out_tongue:

BUT, let’s get back on topic;
Answer the questions so we can direct you on how to actually optimize things (short of eliminating all the things I listed above from your project)

Our minimum target hardware is a 1660 Ti.

My hardware is a 4080 laptop, and I get 70-80 FPS in a dense environment in my project. I aim for at least 100+ FPS with the 4080.

I sent the profiler video, where I also showed the light complexity and shader complexity. Removing them increases the FPS by 2-3.

Notes: This will be a co-op horror game.
I am using a Nanite landscape and World Partition.

PERFORMANCE TEST VIDEO

Ok let me stop you right there.

When you benchmark you need to do so with a standalone build - and the editor closed or at the very least minimized.
Since the editor itself is liable to steal a ton of perfoemance you would otherwise need to run the game.

I’ll review the rest just to see if anything jumps out, but given the state of the engine things getting 80fps with the editor open or with Pie is already a win.

I didnt see any obvious FPS drops or areas where it is slower than others.

I would sugfest fixing shader complexity to be lower on those Windows - its probably the transparency and I dont think you need it in the current way they are used (seen minimally from afar).

But it wont change all that much.

Merge objects - like the tombstones - togeter if they are above 100 or so indivisual non-instanced meshes.

1 Like