Bonjour,
Je développe un moteur pour un jeu de stratégie et j'aimerais avoir vos avis sur la meilleure manière de représenter les données de la carte et les objets du jeu.
La carte est composée de cases regroupées en provinces. La particularité du jeu est que toutes les cases (de continents) sont habitées et contiennent de multiples bâtiments qui produisent des ressources.
Dans la première version (qui sera bientôt prête), j'ai simplement une classe représentant une case, qui contient toutes les données (concernant l'affichage ou non) :
La carte est un tableau 2D d'objets MapCell que je vais parcourir pour l'affichage. J'affiche l'image correspondant au type de terrain, je calcule dynamiquement les transitions et les frontières puis je les affiche, j'affiche l'image de la ville si nécessaire et enfin j'affiche l'image correspondant au type de la première armée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 TMapCell = class //type de terrain fTerrainType : byte; //ressources fResources : array[0..2] of TResource; //nombre de travailleurs disponibles fIdleCitizens : integer; //groupes de bâtiments fActivities : TList; //joueur qui contrôle la case fPlayer : TPlayer; //identifiant de la province à laquelle la case est rattachée fProvince : TProvince //booléen indiquant la présence d'une ville fHasCity : boolean; //Armées fArmies : TList; //visible par le joueur ? fVisible : boolean; end;
Mais en lisant différents articles sur la manière de représenter la carte et les données du jeu j'ai l'impression que ce n'est pas la meilleure approche.
http://www.gamedev.net/page/resource...ersion-12-r728
http://archive.gamedev.net/archive/r...rticle727.html
http://www-cs-students.stanford.edu/...leObjects.html
http://archive.gamedev.net/archive/r...is8/page3.html
Je pense donc complètement revoir ce fonctionnement dans une prochaine version du jeu. Par exemple je pourrais gérer d'un côté les tuiles à afficher (terrain de base, végétation, ressources, transitions...) avec un tableau par niveau et de l'autre les données du jeu (habitants, production...), ce qui me permettrait de réutiliser la carte pour d'autre jeux.
Quelle approche me conseillez-vous ?
Partager