⚙️ Programador de motor / rendimiento

El rol que mide antes de opinar. Aquí no se optimiza lo que parece lento: se optimiza lo que el profiler señala, y se comprueba que el resultado no cambió.

Nivel de entrada: avanzado · Foco: datos, memoria, paralelismo y rendering · Hito faro: cuatro optimizaciones medidas y verificadas contra su referencia

🧭 Qué es y por qué importa

El programador de motor/rendimiento trabaja por debajo del gameplay: cómo están dispuestos los datos en memoria, cómo se reparte el trabajo entre núcleos, qué estructuras hacen viables diez mil entidades, cómo se dibuja un fotograma y por qué a veces se queda medio segundo congelado.

Importa porque el rendimiento decide qué juego es posible. Un sistema que solo aguanta doscientas entidades limita el diseño; el mismo sistema con los datos bien dispuestos aguanta veinte mil y abre géneros enteros. Y porque el rendimiento percibido no es la media: es el peor fotograma, y eso rara vez se arregla por casualidad.

Es el rol más exigente técnicamente del programa y el que más se apoya en método. La habilidad central no es conocer trucos: es medir bien y comprobar que la versión rápida da exactamente el mismo resultado que la lenta.

🗓️ Un día en el puesto

🧠 Qué necesitas saber

Conocimiento técnico

Herramientas del oficio

Habilidades no técnicas

📚 Tu ruta en el programa

  1. Requisito: Parte 3 (física y matemáticas) y Parte 14 (optimización).
  2. 📚 Parte 14 — Optimización y profiling (240–254). Reléela: no es contenido, es el método.
  3. 📚 Parte 21 — Arquitectura avanzada (339–352). El núcleo, con el 🧪 lab de ingeniería avanzada.
  4. 🎯 Hito: cuatro optimizaciones medidas en tu máquina, cada una comprobada contra una implementación de referencia obviamente correcta (clase 352).
  5. 📚 Parte 4 — Gráficos y shaders (086–107). Necesaria para las clases 345–351, que son de rendering.
  6. 📚 Parte 15 — Tooling (255–266). Pruebas de regresión de rendimiento en CI (clase 321).

Lo que este programa no puede darte. Las clases 345–351 explican rendering moderno, pero no tienen laboratorio: medirlas exige hardware gráfico concreto y una pantalla, y una CI sin GPU no puede verificarlas. Prometer un badge verde ahí sería mentir. El laboratorio cubre las cuatro técnicas de CPU, que sí se pueden verificar de verdad.

🎓 Qué te contrata

📈 Progresión de carrera y salario

  1. Gameplay programmer con perfil de rendimiento — la entrada habitual: nadie contrata a un junior de motor.
  2. Performance / engine programmer — dueño del presupuesto de fotograma de un subsistema.
  3. Senior engine programmer — tocas el motor: pipeline de render, sistema de jobs, gestión de memoria.
  4. Especialización: rendering engineer, tools/engine architect o arquitecto técnico.

Rangos orientativos (brutos anuales):

Es también la ruta con más C++ en el empleo real. GDScript sirve para aprender el patrón y el método; los puestos de motor exigen el lenguaje nativo.

⚠️ Mitos y errores comunes

🚀 Siguientes pasos

  1. Haz la Parte 14 entera y perfila un juego tuyo. Escribe dónde creías que estaba el problema y dónde estaba.
  2. Completa el 🧪 lab de ingeniería avanzada y anota tus números: serán distintos de los del README, y eso es lo correcto.
  3. En ese lab, cambia el cálculo por elemento por una simple multiplicación y observa cómo el paralelismo pierde. Esa es la lección.
  4. Coge un sistema tuyo con muchas entidades y pásalo a SoA. Mide antes y después, y comprueba la equivalencia.
  5. Añade una prueba de regresión de rendimiento a tu CI (clase 321).
  6. Si apuntas a puestos de motor, empieza a portar tus experimentos a C++.