Si vous avez lu le chapitre sur les jeux de plateforme, vous devriez être à l'aise avec ce qu'il va suivre.
Si on prend une carte, et que l'on applique une grille, on peut facilement observer qu'un niveau est composé de tiles (morceaux d'images):
Il faudra donc une image comme celle-ci pour arriver à reproduire n'importe quel niveau:
L'image contenant les tiles peut être découpée en mémoire. On accèdera ainsi à un tile à l'aide d'un numéro (0 sera le premier, 1 le second... de gauche à droite). Pour avoir les informations du niveau, il nous faudra le couple [v, h, n] (index vertical, horizontal, numéro de tile). Ce sera la structure de base pour pouvoir établir un niveau, et même le sauvegarder dans un fichier pour un chargement futur. Vous remarquerez que pour le moment, c'est exactement comme pour un jeu de plateforme.
On peut compter deux niveaux de brouillard:
Le fonctionnement est très similaire à celui de la map, puisque finalement, la représentation du brouillard de guerre se fait parle biais de tiles:
La première difficulté réside dans la mise à jour du champs de vision. En effet, le brouillard de guerre, et la zone découverte, dépendent de ce qui est vu par chaque unité. La zone à découvrir est généralement mise à jour une seule fois (la découverte est acquise), mais la zone de brouillard doit être mise à jour à chaque changement. Pour un fonctionnement optimal, on peut donc établir une fonction de mise à jour du brouillard, qui sera appelée par chaque unité ayant effectué un déplacement.
La seconde difficulté consiste à savoir comment dessiner le brouillard pour avoir des bordures cohérentes (effet circulaire). Il n'y a pas vraiment de secret, si ce n'est d'établir des règles de connexion des tiles. Le but est de représenter par une condition quels sont les tiles pouvant être à droite/gauche, droite/haut, gauche/bas... de chacun.
Il suffit de faire de même pour les tiles de bordure/angle:
Et pour la zone centrale:
La zone verte représente la zone cachée (partie caché du tile de la map), tandis que la zone blanche représente la zone non cachée.
A l'heure actuelle, la structure de nos tiles ne permet qu'un simple affichage. Si l'on souhaite ajouter un pathfinding, il va falloir compléter notre structure pour la rendre compatible. Les seules informations nécessaires sont le type du tile (bloquant ou non), et si ce dernier a été visité ou pas (cela servira pour affiner les recherches). Pour la suite, je vous invite à passer à la partie concernant le Pathfinding.
Lire la suite: Les Jeux de Stratégie - Le Pathfinding