Open TMRomain opened 2 years ago
L'exemple est fait avec une map de 500*500 soit 250000 case, + les arbre qui se génère par dessus environ 300000 entités. Il est important d'optimiser se système car il est réutiliser lorsque le joueur se balade dans le monde.
Avec l'ancien système il y'avait plusieurs boucle qui fessait générer chaque case (et arbres) pour la map le temps de démarrage de la scène était environ de 40s :
Le nouveau système génère une case (et arbre) puis le réutiliser pour continuer la génération donc au lieu de générer plusieurs case on en génère une puis on la copie. Ensuite il reste juste a modifier les paramètre diffèrent du clone comme la position ou le matériel. Le temps de chargement de la scène est de environ 11s :
On peut voir que la quantité de ressource demander + le temps de chargement de se système est environ 7fois plus rapide. Se qui permet un chargement des chunk sans lag.
Avec l'ancien système je boucler dans tout les chunk et je vérifier si il était afficher ou cacher puis si je boucler dans tout les case du chunk pour les désactiver un par un. Avec le nouveau système je choisie que le chunk que je doit afficher ou cacher puis avec la technologie DOTS et les query je désactive tout d'un coup.
Chaque fonction si dessus désactive toute les case d'un coup, sans boucle. Avec l'ancien système juste le fait de cacher ou afficher les case produisez des lag maintenant on peut se balader au travers des chunk déjà générer avec une baisse de performance beaucoup moins importants.