Maps
Les maps définisse le contenu des mondes selon plusieurs données :
- les propriétés environnementales (luminosité, météorologie …)
- la modélisation du terrain (heightmap)
- l'accessibilité du terrain (affinité, blocages, type de terrain)
- la définition visuelle du terrain (background)
- les objets statiques constitutifs (tiles)
- les ancres événementielles (event anchors)
Propriétés environnementales
- la luminosité (@luminosity)
- Out : extérieur, influence du soleil
- In : intérieur, sans influence
- Dark : extérieur, plus sombre
- Light : extérieur, plus lumineux
- Dark-in : intérieur, sombre
- Light-in : intérieur, lumineux
- le temps météorologique (@weather)
Ainsi que des propriétés de base :
- la largeur de la map (@width)
- la hauteur de la map (@height)
- la dénivélation (@altitude)
- la base (@base)
- le type de base (@base.type)
- l'implémentation de la grille (@impl)
Implémentation de Grille
La grille est l'objet permettant d'accéder aux éléments se trouvant dans la map.
Cet objet est implémente l'interface Grid qui permet l'accès aux données de la grille. Plusieurs implémentations existent selon les cas d'utilisation :
- Grid2D “g2+” : grille 2D liée à une heightmap, la dénivellation est possible, mais il n'y a qu'un seul niveau partout, optimisée pour des zones de grande taille
- Grid3D “g3d” : grille 3D sans optimisation, très lourde
- StreamGrid2D “s2+” : même grille que Grid2D sauf que les cases ne sont créées que s'il faut y mettre quelque chose
- StreamGrid3D “s3d” : même version lourde que Grid3D gérant les cases uniquement non-vides
Heightmap
La heightmap est une grille 2D définissant le modèle structurel du terrain. A partir de cette grille, on peut déterminer à quelle altitude se trouve le sol étant donné une position 2D.
Accessibilité
L'accessibilité définit la manière de se déplacer sur le terrain et dans les airs / eaux.
Elle détermine les conditions d'accessibilité à des endroits.
A redéfinir :
- affinité : l'attraction du terrain
- mode : le mode d'accès
- g ground : terrain sec
- b blocker : éléments inaccessible
- w water : surface aquatique
- u underwater : sous l'eau
- autres ?
/!\ Il faudrait définir un seul élément qui contienne affinité et mode.
Background
Le background est constitué d'une liste d'images placées en arrière-plan, sans profondeur relative.
Tiles
Les tiles sont les objets possédant une profondeur. Cette profondeur permet de distinguer quel objet est devant quel objet selon la vue utilisée.
Marqueur événementielles
La partie événementielle de la map n'est pas définie de manière graphique. Pour cependant permettre une gestion simplifiée des position, les ancres ou “marqueurs” événementielles ont été introduites.
Il s'agit d'un identifiant lié à une position. Les événements définis de manière externes peuvent utiliser ces identifiants pour se référer à des positions.
Soit le marqueur événementiel : eventname@zz.yy.xx[dx.dy
Un mouvement (d'un personnage non-joueur par exemple) passant par cette position (eventname) peut utiliser la positon @zz.yy.xx[dx.dy ou plus simplement faire référence à @#eventname.