My fingers are burning

Hey there. I have tried many suggestions but am still having a problem with battery/mobile device overheat on my packaged builds. Here is my current list of optimizations:

  • I have reduced a lot of my shader complexity (very little red and white in shader complexity view)
  • Converted most lights to static
  • Reduced all textures that I could to the smallest possible size and LOD (without sacrificing too much quality to make it look like garbage)
  • Converted pretty much all of the major materials to unlit
  • Optimized animations
  • Reduced polys on enemy/character skeletal meshes using the built in UE5 mesh/skeletal mesh tools
  • Constrained a lot of the world particles to the player camera (i.e. when it’s snowing or raining, its only happening in a small area around the player)

I mean the list of optimizations go on and on and on. am I missing something? I am in optimization hell and can’t see my way through.

Sometimes my maps are running pretty cool, but other times it’s literally burning my thumb on my test Galaxy s23 ultra (and earlier/lesser models). It could be the same place on a map causing the issue or it could be another place. I usually close all running apps on test devices and get maybe an extra 5 minutes of cool testing, but that just doesn’t seem like an acceptable way of doing things.

Any support would be helpful.

High temperature is a hardware problem, bad / passive cooling, a bad battery or bad hardware design in general. To some point you can lower the amount of computations and power needed to run your game but even a smooth running game can make a device hot. If this problem is happening specifically on your Galaxy s23 ultra and earlier models, it might not happen on a different series / brand at all.

What I’m saying is, you might be optimizing / removing features for a problem only a small percentage of people have using these models, while in the end it’s a hardware issue and not a problem in your software. There might not be a fix on the Unreal side.

Every device has its own system for temperature management and security in case temps run too hot on parts. Some CPUs can go around 90C and still use passive cooling and there’s nothing you can do about that. Lithium batteries should not get burning hot or they are a serious health hazard with risk of ignition / explosion. I’d contact Samsung about this and hope for model specific advice.

Hey Roy and thanks for the reply. honestly, I’m not sure if it’s the battery or the cpu/gpu or what. I just know that several of my test devices get hot. I have a Lenovo tablet, 2 Samsung devices (one of them the s23 ultra), one mid-range spec amazon tablet, and a google pixel. I wonder if it is an unreal engine issue or if I’m possibly just missing a crucial optimization. surely, the folks at epic would not make an engine, with mobile devs in mind, that would make all android products burn.

So I think it’s more of an issue with the hardware, not android or unreal engine. The cooling of the device is poor or the eletrical system poorly designed. If that’s the case you can’t design your software to deal with that hardware. Heat is just an undesired byproduct when running hardware.

Really its a core unreal engine thing. Even 4090s get maxed out by the engine in less than a second.

The engine’s rendering is just so overbloated and bad that its unforeseeable to run stuff on anything worse than a 1060 - and if you can manage that you already have forward shading on and a bunch of things turned off.

Now, that doesn’t - for once - mean that other engines will have lower running temperatures…
But in pracrice its almost a guarantee?

You could test this by creating an empy scene with just 1 model and the light.

For comparing i’d go with an IOS release of unrral vs doing the same thing in Xcode with realitykit.

Youll notice that unreal not only runs slower, but causes temp to spike on the test device.

One could probably turn off a ton of the rendering features and configure the scene to run the phone less into the ground. But youd probably never reach the same perfoemance of the native code…

I would probably try the same test on android between Unity and Unreal.
Unity will probably look bad out of the door, while unreal would tend to look better.
But then the temps would also reflect that.
Naturally, if you were to get unity to look better, then your temps would likely spike…

Either way, other than changing more settings or swapping engine you have no real recourse to this from the software side…

Though… do try forward shading.
It used to be about 20% faster than the regular pipeline.

I am all for suggestions. I have started research on forward shading and im seeing two different topics. Forward shading and forward rendering. Are these one and the same?

Looks like it is just a tick box in project settings. Ill enable it and give it a go. My only other option is removing all of the “red” from all maps in my shader complexity view, but seriously. The game would look like crap. I cant tell you how many tricks ive had to pull out of my hat to figure out an unlit snow and water material.

Yea, forward rendering is the proper engine topic.
Since it changes the whole rendering pipeline to forward shading.

Its not really “just a tick box”, some material things you might have to re-do.
Shadows may look worse, fog etc may be gone, temporal AA may be removed, etc…
I believe you loose transparent materials as well… (then again transparency on mobile is an horrible idea :stuck_out_tongue: )

For mobile releases it may just put you in a spot where you can test and release witout burning the device up.

When you tick the box all the shaders will have to rebuild. You may even have to restart the engine.
Be prepared to wait a couple hours…

Thanks again. Have a sufficient enough machine that it took about 5 minutes. When i opened my project, the entire thing was black. I messed with my directional light intensity a bit but it was to no avail. I cant begin to fathom why nothing was receiving light from the directional light. Any idea why that might be? It didnt seem to matter if materials were lit or unlit.

I was reading a lot into deferred shading and a lot of the UE documentation says that this might be the way to go because it reduces the number of cycles used to render materials. This is new territory for me so id be willing to take your word for it.

Deferred is the UE4 standard.
Ue3 was forward only, which is why it runs faster.

Not sure about your scene, id suggest starting off on the test projects to see if the engine even works anymore in forward mode (really it better or VR is basically not possible on engine).

Theres likely to be something incompatible like a post process or similar in your scene… hard to guess at it…