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.

And there are many more examples of this! Game engines strive to be general purpose in nature, so balanced algorithms are always favored over algorithms that might be fast in some situations and slow in others or algorithms that are fast but make usability more difficult.

Godot is not an exception and, while it is designed to have backends swappable for different algorithms, the default ones prioritize balance and flexibility over performance.

With this clear, the aim of this tutorial section is to explain how to get the maximum performance out of Godot. While the tutorials can be read in any order, it is a good idea to start from General optimization tips.