Móvil es otro mundo#
Un juego que vuela en tu PC puede arrastrarse en un móvil: menos potencia, GPU limitada, memoria justa y, encima, batería y calor. Optimizar para móvil no es "lo mismo pero un poco menos": hay prioridades propias.
El error nº1: optimizar mirando el rendimiento en el PC. El editor y tu ordenador no representan al móvil. Haz una Development Build y conecta el Profiler al teléfono concreto (mejor, el más flojo que quieras soportar). Los números reales están ahí, no en tu PC.
1. Limita los FPS (y ahorra batería)#
En móvil, ir a 120 FPS calienta el aparato y vacía la batería sin que se note la mejora. Fija un objetivo razonable:
void Awake()
{
Application.targetFrameRate = 60; // o 30 para juegos tranquilos
QualitySettings.vSyncCount = 0; // vSync no aplica igual en móvil
}Muchos juegos móviles apuntan a 30 FPS constantes y se sienten mejor que uno que va a 55 y baja a 40 sin parar. La estabilidad importa más que el número. 30 sólidos también alargan la batería y bajan el calor.
2. Draw calls y overdraw: los grandes enemigos#
- Draw calls: reduce como en reducir draw calls (comparte materiales, atlas, static batching, GPU instancing). En móvil pesan más aún.
- Overdraw: dibujar el mismo píxel muchas veces (transparencias apiladas, partículas grandes, UI superpuesta) es carísimo en las GPU móviles. Menos alpha, menos capas, partículas más pequeñas.
3. Texturas: lo que más memoria come#
Las texturas suelen ser el mayor gasto de memoria en móvil.
- Usa compresión de textura adecuada: ASTC es el estándar moderno en móvil.
- Baja la resolución máxima (Max Size) de las texturas que no necesiten tanto detalle.
- Activa mipmaps para objetos 3D (evita el ruido a distancia; en UI/2D, desactívalos).
- Atlas de sprites en 2D para agrupar y reducir draw calls.
4. Iluminación y sombras#
Las luces y sombras en tiempo real son de lo más caro en móvil.
- Hornea la iluminación de todo lo estático (ver URP).
- Minimiza las luces en tiempo real (idealmente una direccional).
- Sombras en tiempo real: reduce su resolución y distancia, o desactívalas donde no aporten.
- Usa URP con un perfil de calidad ajustado para móvil.
5. Física y scripts#
- Reduce la frecuencia de
FixedUpdatesi tu juego lo permite (Time → Fixed Timestep) para aliviar la física. - Aplica todo lo de gestión de memoria y GC: en móvil, un pico del recolector se nota mucho más.
- Menos Rigidbodies dinámicos, colliders primitivos, y la matriz de colisiones bien afinada.
6. Calidad escalable#
Los móviles varían muchísimo. Ofrece ajustes de calidad (o detecta la gama del dispositivo) para bajar resolución de render, sombras y efectos en los teléfonos más flojos. Un buen juego móvil corre en el móvil malo del vecino, no solo en el tuyo.
Un checklist de rendimiento móvil#
Errores frecuentes#
- Optimizar mirando el PC en vez del móvil.
- Dejar los FPS sin limitar (calor y batería).
- Ignorar el overdraw (transparencias y UI apiladas).
- Texturas sin comprimir que agotan la memoria.
- Luces y sombras en tiempo real por todas partes.
Ponte a prueba#
Resumen#
Para móvil: limita los FPS (30/60, prioriza estabilidad), controla draw calls y sobre todo el overdraw, comprime texturas (ASTC) y ajusta su tamaño, hornea la iluminación y minimiza luces/sombras en tiempo real, cuida el GC y ofrece calidad escalable. Y perfila en el dispositivo real, no en el PC. Es donde más se nota todo lo de draw calls y memoria.