Parte 14 — Optimización, profiling y rendimiento
⬅️ Volver al programa · 📚 Índice completo · ⏮️ Parte anterior · ⏭️ Parte siguiente
15 clases · rango 240–254 · Hacer que el juego vaya rápido: medir antes de optimizar, profiling de CPU/GPU, presupuesto de frame, memoria, pooling, física, culling, LOD y multithreading
Fuentes de referencia de esta parte:
- Jason Gregory, Game Engine Architecture — rendimiento y sistemas.
- Documentación de optimización de Godot 4.
- Real-Time Rendering (Akenine-Möller et al.) — coste de GPU.
- Documentación de RenderDoc y profilers nativos.
🎯 ¿De qué trata esta parte?
Un juego que va a tirones no es divertido, por bueno que sea todo lo demás. Optimizar es una disciplina con método, no magia: la regla de oro es medir antes de optimizar. Esta parte enseña esa mentalidad y las herramientas: el profiler (CPU, GPU, frame time), el presupuesto de frame (16.6 ms para 60 fps, 11.1 ms para 90 en VR) y cómo repartirlo.
Después ataca los cuellos de botella uno a uno: CPU (lógica, scripts, llamadas), GPU (draw calls, overdraw, fillrate), memoria y recolección de basura, object pooling, física y colisiones, culling/LOD/streaming de mundo, optimización de assets, multithreading, y tiempos de carga. Cubre la optimización específica por plataforma y las herramientas nativas (RenderDoc, etc.). El capstone toma un proyecto pesado y lo lleva a 60 fps estables.
🧩 Problemas que resuelve
- Optimizar "a ciegas" partes que no eran el problema (sin medir).
- Caídas de FPS sin saber si el cuello está en CPU o en GPU.
- Tirones periódicos por recolección de basura o creación de objetos cada frame.
- Escenas grandes que se arrastran por dibujar lo que no se ve (sin culling/LOD).
- Tiempos de carga eternos que espantan al jugador.
- Un juego que va bien en PC pero es injugable en móvil.
🎓 Resultados de aprendizaje
Al terminar la parte, el alumno podrá:
- Adoptar una metodología de "medir → localizar → optimizar → volver a medir".
- Usar el profiler para separar cuellos de CPU y de GPU.
- Definir y respetar un presupuesto de frame por plataforma.
- Reducir draw calls, overdraw y asignaciones de memoria.
- Aplicar object pooling, culling, LOD y streaming de mundo.
- Optimizar física, assets y tiempos de carga, y usar multithreading con criterio.
🧱 Prerrequisitos
- Partes 0 (delta time, debugging/profiling), 2, 4 y 10 en adelante (hay que tener algo que optimizar).
- Godot 4.x; útil RenderDoc para el análisis de GPU.
📚 Las 15 clases
La Parte 15 multiplica tu productividad: construir herramientas y automatizar el flujo de trabajo.