J'utilise Corona SDK que je conseille vraiment qui simplifie vraiment la vie pour des jeux 2D!
Mes images d'arrière plan étaient énormes, de l'ordre du 720p pour chaque arrière plan.
Sur mon téléphone perso, un Xperia Z, avec le quel je testais mon jeu, ça ne posait aucun problème. Mais en testant sur celui d'un ami, beaucoup moins puissant (un Xperia Go), le jeu était presque injouable.
Sur le coup j'ai pensé que c'était due à la taille des fichiers images, j'ai donc tout compressé au maximum mais sans résultat.
Après quelques recherches, j'ai vu que peu importe la compression de l'image, il n'y a que la résolution qui compte.
En effet, OpenGL stocke dans la mémoire du téléphone chaque pixel de l'image chargée!
De plus, la taille de l'image dans la mémoire n'est pas vraiment celle de l'image chargée : elle prendra la place d'une image de résolution "multiple de 2" (Power Of Two).
Si par exemple mon image fait du 514*1024, elle sera stockée dans une taille de 1024*1024, elle prendra donc plus de place dans la mémoire et la saturation peut aller très vite si on ne fait pas gaffe à ça!!
La mémoire vidéo est saturé sur les téléphones les moins puissants ce qui cause beaucoup de ralentissement, certains n'arrivaient même pas à lancé le jeu!
Un redimensionnement de toutes les images à donc réglé le problème. Pour une même texture, un téléphone ayant une petite résolution d'écran chargera une version de 100*100px quand un téléphone FullHD chargera une version en 1000*1000px.