I am building a 2D tilemap based puzzle game for android phones.
I have had no issues with speed using my old midrange cell phone (Moto Z play droid).
Now with my new also mid-range cell phone I found the game to be completely unplayable FPS wise and have flickering animated textures.
The SOC on the new phone is considered to be much better than the old phone and benchmarks show it getting much higher scores. I also tested with a newer budget Motorola phone and had much better results.
I have found the issue to be linked to the amount of tiles on the map at one time. The number of tiles on screen do not matter. I added a function to the process to hide all tiles that are not on screen and gained about 15 FPS. At worst with the new phone I get 5-6 FPS, at this point there are ~2000 128x128 hexagonal tiles displayed at a time.
I am wondering if anyone has seen anything similar to this and if there is anything I can do in Godot to make the game potentially function better on a Samsung phone vs a much weaker Motorola.
Would I be better off resizing all of my textures to be 64x64 or smaller and then scaling up to 128x128?
Any other optimization tips for Android would be great. I have been trying everything and only managing to get a few more FPS.
I do expect some slowdown on later levels as you can zoom the camera way out and the levels can be very large (56x56 tiles)
Godot 3.2.1 exporting with Godot-admob plugin not in debug mode.
Motorola Z play droid (Android 8):
-600 tiles on map = 27-35 FPS
-2000 tiles on map = 19-20 FPS
Motorola G7 Play (Android 9) :
-600 tiles on map = 55-60 FPS
-2000 tiles on map = 24-25 FPS
Samsung A50 (Tested with both Android 9 and 10) :
-600 tiles on map = 20-29 FPS
-2000 tiles on map = 5-6 FPS
PC (AMD FX-8350) :
-I tried 12000 tiles and maintained 60FPS