Optimisation

Introduction

Godot suit une philosophie de performance équilibrée. Dans le monde de la performance, il y a toujours des compromis à faire, qui consistent à troquer la vitesse contre la facilité d'utilisation et la flexibilité. En voici quelques exemples pratiques :

  • Rendre efficacement des objets en grandes quantités est facile, mais lorsqu'une scène de grande taille doit être rendue, cela peut devenir inefficace. Pour résoudre ce problème, le calcul de visibilité doit être ajouté au rendu, ce qui rend le rendu moins efficace, mais, en même temps, moins d'objets sont rendus, ce qui améliore l'efficacité globale.
  • La configuration des propriétés de chaque matériaux pour chaque objet qui doit être rendu est également lente. Pour résoudre ce problème, les objets sont triés par matériaux afin de réduire les coûts, mais le tri a également un coût.
  • En physique 3D, une situation similaire se produit. Les meilleurs algorithmes pour manipuler de grandes quantités d'objets physiques (tels que SAP) sont lents à l'insertion/retrait d'objets et au ray-casting. Les algorithmes qui permettent une insertion, un retrait et un ray-casting plus rapides, ne seront pas en mesure de traiter autant d'objets actifs.

Et il y a bien d'autres exemples ! Les moteurs de jeu s'efforcent d'être généraliste par nature, donc les algorithmes équilibrés sont toujours préférés aux algorithmes qui peuvent être rapides dans certaines situations et lents dans d'autres... ou aux algorithmes qui sont rapides mais rendent l'utilisation plus difficile.

Godot n'est pas une exception et, bien qu'il soit conçu pour avoir des backends interchangeables pour différents algorithmes, ceux par défaut privilégient l'équilibre et la flexibilité par rapport à la performance.

Dans cette optique, l'objectif de ce tutoriel est d'expliquer comment tirer les performances maximums de Godot. Bien que les tutoriels puissent être lus dans n'importe quel ordre, il est bon de commencer par Conseils généraux d'optimisation.