- Home /
Help me to optimize my mobile game
Hello game devs I have a mobile game and the main scene has many sprites in 3D apace which are layed on top of each other, almost all the sprites share the same material and can be batched togather, but I also have some other objects (again sprites) between those layers and they of course break batching, almost all sprites are semitransparent, after all I have 10-20 drawcalls, 15 on average, overdraw is high and I have 0 batched draw calls. And the reason I told you my story is due to the performance issues I have. On some devices it overheats after some time and the device starts to throttle. I have done lots of profiling and it's obvious for me that this is GPU bound, CPU wastes 70% of the time waiting for GPU to render, GPU runs at 100% , used Adreno profiler. What can you suggest how to solve this problem? Example device CPU - Snapdragon 808 GPU - Adreio 418 Thanks in advance ))
Try turning off 32 bit display buffer
in Edit > Project settings > Player
Thank you this seems to be helpful, I'll try it and will let you know about it.
Try to check your scripts and remove unused variables also you can make your sprites in lower resolution
Thanks for comment, but I think removing unused variables and making sprites smaller will only help me to reduce memory usage, which is already pretty low ~100mb
Answer by DenisM · Aug 03, 2016 at 08:43 AM
1) Do you got any particle systems? if yes, then try to simplify them, or bake them in to animation.
2) why do you got a lot overdraw? can you show some samples of what you are trying to achieve?
3) You can use premultiplied alpha blending. It cost less when talking about calculation of pixel and draw calls.
4)You can use opaque shader on non transparent sprites.
5) Turn off any anisotropic filtering on every textures if your game is 2d.
6) Turn off spriterenderer if alpha of color is 0. "render.enable = render.color.a != 0;"
7) If you got a LOT of overdraw and cant avoid it you can render your part of the scene with most heavy overdraw to render texture with low resolution and then blend it to your fullscreen scene.
8)Do your scene need to update or its static? If its static you can render your scene in to render texture and then use it. And rerender it when only something change.
Your answer
Follow this Question
Related Questions
How to manage images in good resolution in Mobile App 0 Answers
How do I batch procedural objects? 1 Answer
Anti Aliasing on Mobile 3 Answers
3D performance on mobile platforms? 1 Answer
Bloom/Neon effect Mobile 0 Answers