Optimización

Introducción

Godot sigue una filosofía de rendimiento equilibrado. En el campo del rendimiento, siempre hay compensaciones que consisten en la velocidad de intercambio en términos de usabilidad y flexibilidad. Algunos ejemplos prácticos de esto son:

  • Renderizar grandes cantidades de objetos de manera eficiente es fácil, pero cuando se debe renderizar una escena grande, puede volverse ineficaz. Para resolver esto, se debe agregar el cálculo de visibilidad al renderizado. Esto hace que el renderizado sea menos eficiente, pero al mismo tiempo, se renderizan menos objetos. Por lo tanto, se mejora la eficiencia de renderizado general.

  • La configuración de las propiedades de cada material para cada objeto que necesita ser renderizado también es lenta. Para resolver esto, los objetos se clasifican por material para reducir los costos. Al mismo tiempo, la clasificación tiene un costo.

  • En física 3D ocurre una situación similar. Los mejores algoritmos para manejar grandes cantidades de objetos físicos (como SAP) son lentos en la inserción / remoción de objetos y la transmisión de rayos. Los algoritmos que permiten una inserción y remoción más rápida, así como el raycasting, no podrán manejar tantos objetos activos.

¡Y hay muchos más ejemplos de esto! Los motores de juegos se esfuerzan por ser de uso general por naturaleza. Los algoritmos equilibrados siempre se prefieren a los algoritmos que pueden ser rápidos en algunas situaciones y lentos en otras, o los algoritmos que son rápidos pero son más difíciles de usar.

Godot no es una excepción a esto. Si bien está diseñado para tener backends intercambiables por diferentes algoritmos, los backends predeterminados priorizan el equilibrio y la flexibilidad sobre el rendimiento.

Con esto claro, el objetivo de esta sección tutorial es explicar cómo sacar el máximo rendimiento a Godot. Si bien los tutoriales se pueden leer en cualquier orden, es una buena idea comenzar desde Consejos generales de optimización.