Je sais que l'efficacité est la clé de la programmation de jeux et j'ai déjà eu quelques expériences avec le rendu d'une "carte" mais probablement pas de la meilleure des manières.
Pour un jeu 2D TopDown: (restituez simplement les textures / tuiles du monde, rien d'autre)
Disons que vous avez une carte de 1000x1000 (tuiles ou autre). Si la tuile n'est pas dans la vue de la caméra, elle ne devrait pas être rendue - c'est aussi simple que cela. Pas besoin de rendre une tuile qui ne sera pas vue. Mais puisque vous avez 1000x1000 objets dans votre carte, ou peut-être moins, vous ne voudrez probablement pas parcourir toutes les 1000 * 1000 tuiles juste pour voir si elles sont supposées être rendues ou non.
Question: Quelle est la meilleure façon de mettre en œuvre cette efficacité? Pour qu'il "rapidement / plus rapidement" puisse déterminer quelles tuiles sont supposées être rendues?
De plus, je ne construis pas mon jeu autour de tuiles rendues avec un SpriteBatch donc il n'y a pas de rectangles, les formes peuvent être de tailles différentes et avoir plusieurs points, disons un objet courbe de 10 points et une texture à l'intérieur de cette forme;
Question: Comment déterminez-vous si ce type d'objets est "à l'intérieur" de la vue de la caméra?
C'est facile avec un rectangle 48x48, il suffit de voir si la largeur X + ou la hauteur Y + est dans la vue de la caméra. Différent avec plusieurs points.
Autrement dit, comment gérer efficacement le code et les données pour ne pas avoir à parcourir / boucler un million d'objets en même temps.