Bonjour,
J'aimerais créer un jeu qui s'inspire de Wakfu, en gros le décor bouge selon le personnage (la caméra reste centrée sur le personnage) mais si le monde est très grand (bien que je peux faire des "district" dans le monde pour éviter d'avoir trop de map à la suite) j'ai peur que l'appel de l'affichage des tiles (draw) de chaque map (sur plusieurs calques parfois selon le type de map) soit trop gourmand en ressources sachant que c'est des textures de +- 150*150 et que mes maps sont composé de 16x16 tiles.
Donc un petit calcul, imaginons un grand monde de 20*20 cartes, donc 400 cartes, chacune ayant 256 tiles ça fait 100 000+ d'appels par CALQUE à afficher chaque FRAME.. beaucoup beaucoup n'est ce pas.
Donc j'aimerais optimiser cela.
Pour cela j'ai plusieurs idées :
N'afficher que les maps qui sont autour du joueur. ça peut être facile (je ne sais pas vraiment enfait) à réaliser comme difficile vu que chaque tick je devrait prendre la position du joueur et vérifier si il se trouve sur une tile d'une map (donc 100 000 vérification chaque seconde ou moins selon le point de départ de la vérification), sauf si vous avez une idée c'est pas ergonomique.
N'afficher que les TILES visible par la caméra, en prenant leur position et en vérifiant si elle est à l'intérieur du rectangle de la caméra, je pense que c'est le mieux à faire mais j'aimerais des avis de pro ^^
Au niveau de ma map, c'est une classe qui est hérité de Drawable et Transformable et qui dessine chacune les tiles qui lui sont propres (comme ça la SFML gère tout si je dois déplacer/tourner ma map
) (Matrice des tiles étant récupérées d'un fichier JSON mais je vais pas détailler, car cela est chargé en mémoire lors du chargement initial du jeu)
Merci