Unreal Engine performance optimisation

We capture where frame time, memory and load time go on your target hardware, fix the biggest costs first and set budgets so the problems do not come back.

ExampleWhere a profiling pass startsThe first captures on a new project usually come from a handful of commands, run in the same test scene on the target hardware.
stat unit                 frame, game thread, render thread (Draw) and GPU time
stat gpu                  GPU time per render pass
ProfileGPU                one-frame GPU breakdown
memreport -full           memory by category, saved to disk
-trace=default,memory     launch argument for an Unreal Insights capture
In practice

What an optimisation pass looks like

We agree two or three test scenes that represent the worst real cases, then capture them on your target hardware with Unreal Insights and the GPU profiler. Those captures become the baseline every change is measured against.

The ranked list that follows usually mixes code and content: a manager actor doing too much work on the game thread every tick, a material far too expensive for its size on screen, shadow settings that cost more than they show. Each item has an expected gain and a risk.

After the fixes we leave budgets behind, such as frame time, triangle and texture memory targets per scene, plus an automated capture in the nightly build, so the next content drop does not quietly undo the work.

Where performance usually breaks

01

Frame rate drops in the busiest scenes.

Combat, crowds or open areas push the frame time over budget.

Hotspots found with captures, then fixed
02

Memory runs out on the minimum spec.

Textures, meshes and streaming were never budgeted.

Memory budgets per category
03

Lumen and Nanite cost more than expected.

The default settings look great and cost too much on target hardware.

Settings tuned per scalability level

What we profile and fix

CPU

Game thread, render thread and task graph profiling with Unreal Insights, from ticking actors to animation and physics.

GPU

GPU timings from Unreal Insights, ProfileGPU, PIX or Nsight to find expensive passes, overdraw, shadows and post-processing, with RenderDoc to see why.

Memory and streaming

Memory reports, texture streaming pools and World Partition streaming tuned to the minimum spec.

Lumen, Nanite and lighting

Lighting and geometry settings chosen per scalability level, with the visual cost of each change shown side by side.

Materials and VFX

Shader complexity, material instances and Niagara budgets reviewed and reduced.

Hitches and load times

PSO precaching and bundled PSO caches for shader hitches, plus asset loading and level streaming stalls.

Who works on performance

See the whole team.

George

Technical Artist

Leads GPU, lighting, material and VFX optimisation.

  • Materials & HLSL
  • Niagara
  • Lumen & Nanite
  • Profiling
FOUNDER

David

Founder & Lead Developer

Takes the CPU side: game thread, ticking, animation and physics costs.

  • Technical direction
  • UE5 C++
  • GAS
  • Engine modules

Andrew

Build & Tools Engineer

Adds performance captures to the nightly build so regressions are caught.

  • BuildGraph
  • Horde
  • Python
  • Perforce
  • Editor tools

Performance FAQ

Will you change our art?

Only with your art team's approval. Many gains come from settings, LODs and material changes that keep the look the same.

Which hardware do you test on?

Your target and minimum PC specs. For consoles and handhelds, we confirm devkit or hardware access before we quote. If specs are not defined yet, we help you choose them first.

Can performance tests run automatically?

Yes. We can add performance captures to the nightly build so regressions show up on the day they happen.

Start a project

Tell us about the project

Send us the engine version, where the project is and the work you need done. We reply within two business days with who we would put on it, or tell you it is not a fit.

A non-confidential outline is enough. If you need an NDA first, say so here and David will arrange it before you share project materials.

Add project details (optional)