DevLog : QuadTree, Interface et Menu
Shaman77 Il y a 3 ans Premium Pro0

QuadTree

Le QuadTree n’était qu’un parmi les nombreux sujets discutés sur le Discord de Gamecodeur que je ne connaissais pas.

Découverte du principe des QuadTree qui permet d’optimiser la détection des collisions d’objets en grand nombre.

Etude 1

Création de la classe QuadTree qui va découper les zones, en zone toujours plus petites, en fonction du nombre d’objets qu’elles contiennent.

 

Etude 2

Ajout de la détection des objets se trouvant dans une zone donnée

 

Mise en application

Sans QuadTree

La méthode la plus simple est de tester s’il y a une collision entre chacun des objets contenus dans la scène, soit 2 boucles imbriquées de : Nb Objets,

En termes de calcul cela donnera : Nb Objets * Nb Objets itérations.

Premier test avec 500 particules, soit 250’000 itérations

On obtient environ ~50 FPS ce qui semble être la limite

 

Deuxième test avec 2000 particules, soit 4’000’000 itérations

On obtient environ ~0.5 FPS (mon compteur ne peut pas descendre en dessous des 2 FPS)

 

Avec QuadTree

En utilisant la méthode des QuadTree

Test avec 2000 particules, on obtient plu que ~32’000 itérations à la place des 4’000’000 auparavant.

On obtient ~ 55 FPS

 

Donc pour résumer, les QuadTree c’est hyper cool !!! 🙂

Mais surtout obligatoire si l’ont veut gérer beaucoup d’objets, dans une scène, pouvant s’entrechoquer.

/*****************************************************************/

 

Barre d’Interface

Création d’une classe réutilisable  permettant de placer des barres d’interface librement en position Top, Right, Bottom, Left et transmet des événements par le biais d’un Delegate.

/*****************************************************************/

 

Menu de jeu

Création d’une classe réutilisable permettant de gérer un menu de jeu contenant différentes scènes ( nouveau jeu, sauvegarde, options, quitter, … avec une intégration dans l’update de la gameloop

 

Je vais encore terminer pour cette fin de semaine l’implémentation du menu de sauvegarde et des options de configuration des touches du clavier.

 

/*****************************************************************/

La semaine prochaine, je plancherais sur le pathfinding ou sur les shaders, 2 gros morceaux qui m’intéressent au plus haut point.

 

Merci d’avoir pris le temps de me lire et à bientôt

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.