Bonjour à tous,
Je souhaite me mettre au "Game Programming" et j'ai envie de commencer par étudier la technique de TileMapping pour un RPG style Pokémon ou Zelda.
Il y a quelques temps, j'ai déjà fait un Mario et un Packman avec cette technique. Rien de très compliqué : je stockais la map dans un tableau 2D.
Mon soucis, c'est qu'avec un jeu style Zelda, c'est que la map peut vite devenir très grande et elle n'est pas rectangulaire, mais de forme indéterminée.
C'est pourquoi je recherche une structure de donnée adaptée à ce type de map.
* Avec un tableau 2D, je gâche beaucoup de mémoire.
* J'ai donc pensé à une structure d'arbre quadratique (ou quadrilatère, je ne sais pas comment ça s'appelle) : chaque noeud (tile) possède un pointeur vers ses 4 voisins connexes. Ainsi, on peut dessiner à l'écran le rendu en utilisant un algo de diffusion.
Avantage, on ne gâche pas de mémoire, l'affichage est super efficace.
Le soucis, c'est que la création de la map avec un éditeur de map n'est pas trivial... (l'utilisateur peut ajouter les tiles comme bon lui semble). La génération de la map demande donc beaucoup de calcul.
* J'ai pensé à une autre solution qui serait de stocker chaque tile dans une liste (chainée).
On ne consomme pas de mémoire inutilement, mais pour l'affichage, on est obligé de parcourir l'intégralité de la liste pour savoir quelle tile afficher... donc perte de temps...
Pour le générateur de map par contre, c'est super simple à concevoir ainsi
J'ai donc 3 méthodes :
- Tableau 2D : Gâche de la mémoire, très rapide à afficher
- Arbre quad : Pas de gâchis de mémoire, très rapide à afficher, mais conception de la map ardu
- Liste chainée : Pas de gâchis de mémoire, plus long à l'affichage
Je les implémenterais bien toutes les trois pour comparer les perfs en espace et en temps, mais je voulais d'avoir l'avis d'experts
Car comme le tileMapping est un sujet largement rependu, je suis sûr qu'il existe des structures de données plus utilisés que d'autres
Une astuce pourrait être d'utiliser une autre structure de donnée (liste chainée) pour l'éditeur de map, puis compilé la map pour qu'elle soit facilement lue par le jeu qui lui utilisera une structure d'arbre quad.
Qu'en pensez-vous ?
Black Templar