Hello everyone,

I'm currently working on a 3d game app using Godot engine, and I'm facing a problem with overheating on some mobile devices. Specifically, when the app runs for more than a few minutes, the device starts to heat up significantly, which can be uncomfortable for the user.

I've tried optimizing the app's performance by reducing the number of objects and particles on the screen, and by using resource loading techniques to minimize memory usage. However, the overheating issue persists.

I was wondering if anyone in the community has experience with optimizing game apps for mobile devices and reducing overheating. Are there any specific techniques or best practices that you would recommend for achieving this goal?

Also, are there any tools or metrics that I can use to measure the app's performance and identify potential bottlenecks or memory leaks that could be causing the overheating issue?

Any advice or guidance on this matter would be greatly appreciated.

Thank you in advance for your help!

Heat is usually caused by the CPU. Mobile GPUs are plenty fast and as long as you are not rendering super high end, then the issue will usually be the CPU.

What you want to do is use the profiler in the Godot editor. Check for lots of script or physics bottlenecks, as this will be solely on the CPU. Reducing draw calls can also help.

Memory is not as important, unless you are making lots of reads and writes constantly, but loading upfront at the beginning should not be an issue.

If the profiler doesn't find anything significant, you can try just capping FPS. If it's a fast action game, it might not be possible, but slower games could work at 30 FPS.

Or you could drop to 30 FPS on the menu screens, or while doing UI stuff if it's a strategy or RPG games. Or do it dynamically based on if it's needed in action or whatever. Kind of a hack but it works as a last resort.