Introduction : cartographier le 7ème continent, c’est quoi et on peut le faire comment ?
Ça y'est, le Kickstarter de la réédition du 7ème continent est lancée. Le jeu soulève beaucoup de questions sur ses richesses et qualités intrinsèques. C'est donc l'occasion rêvée de voir un petit peu se qui se passe et comment marche la mécanique du jeu.
Qui dit analyse du jeu veut dire ponctuellement du spoiler
La boîte de base contient pour le moment 1355 cartes avec tout (toutes les extensions du premier KS) et 1355 cartes, ça fait ... beaucoup de cartes. Bien que le jeu soit très riche en terme d'immersion, les mécaniques restent au final relativement simples.
L'exploration est bien souvent synonyme de ... cartographie (ici aussi). Du coup, une des questions récurrente est de savoir à quoi ressemble le 7ème continent. Si plusieurs personnes ont déjà fantasmé sur un continent en forme de crâne comme sur la boîte, il n'en est rien (pour l'instant). En effet, Burkhart Renk sur BGG a déjà fait une cartographie complète. Elle se base sur les liens entre cartes de type "terrain" :
Cartographie simple de la carte "010" représentée à gauche : chaque carte est placée par rapport à l'autre sur une grille.
Seulement, tout n'est pas si simple. Car un des mécanismes importants du 7ème continent, c'est d'avoir plusieurs cartes différentes avec le même numéro pour représenter :
- Une part de hasard : faire en sorte que le 7ème continent soit peuplé d'imprévus. C'est du coup une manière d'augmenter la rejouabilité.
- Une manière de montrer une évolution du continent : en effet, les cartes de même numéro peuvent être remplacées, modifiées, se succéder et c'est ce qui fait que vos actions peuvent avoir une influence sur le long terme. En général, cela se traduit par le fait de remplacer une carte verte par une carte jaune.
Il existe ainsi une version différente de la carte 010 (la 010 sur fond jaune) qui donne une "autre" cartographie :
Carte "010" à dos jaune qui n'a pas les même liens que la précédente.
Un deuxième mécanisme intéressant est celui des numéros cachés et des énigmes : il est possible de remplacer une carte par une autre si un élément du jeu nous permet de penser que c'est possible. Il peut alors y avoir des cartes avec des numéros différents au même endroit. Cette subtilité simple permet alors une grande richesse mécanistique puisqu'il y a une distinction entre carte unique et numéro sur la carte.
Deux cartes avec le même numéro (cartouche en vert) mais qui correspondent à deux cartes physiquement différentes qui peuvent avoir un contenu totalement différent. Elles sont au même endroit mais n'ont pas les mêmes cartes voisines. (voir ci-dessus)
Ça paraît tout simple, mais ça complexifie la représentation car deux cartes qui se placent physiquement au même endroit peuvent avoir des interactions différentes avec les autres cartes. La cartographie du 7ème continent n'est pas fixe. Au-delà de la dimension purement physique s'ajoute une dimension temporelle : l'état du jeu et de la carte dépend du passé et des événements déjà réalisés ou vus. On se retrouve alors face à un paradoxe : il n'existe non pas une mais des cartes du 7ème continent. Prendre une photo ou un objet statique n'est pas capable de révéler la nature de l'aventure ou du 7ème continent. La carte de Burkhart Renk contourne déjà élégamment cette difficulté. Pourtant, il manque encore des informations sur la richesse des interactions.
La cartographie brute ne donne pas toutes les informations : le coût pour se déplacer d'une carte à l'autre n'est pas toujours le même (il va de 0 carte 0 succès à 5 cartes 0 succès ou 4 cartes 3 succès). Du coup, un déplacement d'une carte à une autre n'est pas toujours équivalent lorsque l'on se déplace orthogonalement. Ce mécanisme "distord" le continent car des cartes physiquement les unes à côté des autres ne sont pas accessibles au même coût (en terme d'action ou de cartes à piocher et donc d'énergie dépensée pour les dévoiler).
Ainsi, si le travail de Burkhart Renk sur BGG est déjà un travail énorme, il manque beaucoup d'information pour montrer à quoi ressemble le 7ème continent en terme de richesse d'interaction. C'est surtout l'aspect mouvant et évolutif de la carte qui fait défaut.
Cartographier, les aspects techniques
Du coup, pour techniquement représenter le 7ème continent, il faut être capable de montrer les relations entre cartes et pour cela, il existe un outil assez pratique : les graphes. Le principe d'un graphe, c'est assez simple : c'est des ronds, appelés nœuds qui sont reliés par ... des liens.
Un exemple de graphe : chaque nœud est lié à un autre via une relation.
Il est alors possible de s'intéresser aux liens entre des objets. Dans le cadre du 7ème continent, le plus simple est de dire que la carte terrain XX est reliée à la carte terrain YY de proche en proche. Cela permet de donner une vision locale du jeu. C'est ce qu'a fait Burkhart Renk en organisant tous ces liens. Mais même rester à ce stade représente des difficultés majeures si on veut utiliser un stockage « classique » appelé de type SQL (en termes plus parlants : stocker des données sous forme de tableaux comme excel). Dans ce système, il y aurait deux types d'objets : les cartes et les liens entre carte. Cela se ferait classiquement sous la forme suivante :
Et là, premier souci : est-ce qu'on met les identifiants de cartes ou est-ce qu'on met les numéros ? Il faut ici différencier les deux. Pourquoi ? car deux cartes différentes avec le même numéro n'ont pas forcément des liens vers les mêmes cartes : les deux cartes 010 ne sont pas toutes les deux reliées aux cartes 004. Et à l'inverse, c'est bien vers un numéro que pointent les actions et pas vers une carte précise.
Ce type de représentation (de type SQL) purement local n'est pas très pratique : pour faire une suite de lien de terrain, il faut faire des opérations complexes (jointures de tables pour les initiés). Ces opération sont difficiles car il faut évoluer de proche en proche et faire beaucoup d'opérations pour passer d'une représentation à l'autre.
Il faut donc passer à un système qui soit réellement adapté à des graphes. Pour ça, j'ai choisi neo4j. Dans ce langage, il est toujours possible de définir des cartes qui seront les nœuds et des liens qui seront les relations entre les cartes. Une manière de représenter ces liens est alors de définir deux nœuds "cartes" et de les relier entre eux via la relation "carte adjacente". Cela se représente en pseudo langage sous la forme :
Pour décrire un chemin il est alors possible de simplement demander une suite de liens et nœuds qui relie la carte X à Y sans se poser de question complexe comme "Combien y'a-t-il de cartes entre les deux ?". Le passage sous forme de graphe rend très simple le passage de la "vision locale" (les liens entre chaque carte) à la vision globale (le chemin d'une carte à une autre) En pseudo langage, cela se traduirait par :
Ce qui est franchement simple et ressemble beaucoup à la forme réelle sous laquelle on demande cette information à neo4j.
Un des autre intérêts de la représentation sous forme de graphe est la flexibilité que l'on peut donner à chaque type de lien et leur nombre.
Deux cartes du jeu modélisées sous forme de graphes. Elles n'ont pourtant rien à voir l'une et l'autre, mais sont à chaque fois représentées sous forme de noeuds (ronds) et de liens (les traits avec des mots qui les relient). La représentation sous forme de graph reste ainsi adaptée dans tous les cas.
Il est alors possible de traduire plein d'informations sous forme de liens et d'ainsi concentrer l'information. En effet, il y a beaucoup de types de cartes différents :
- des cartes actions
- des cartes aventure
- des objets de quête
- des objets à construire
- des cartes avec une action, plusieurs actions
- des cartes à effets
Prédéfinir à l'avance toutes les caractéristiques possibles d'une carte est très difficile alors qu'il n'y a qu'un nombre limité de type de caractéristiques différentes. Le modèle de type « graphe » permet de rajouter très simplement une propriété : on ajoute un nouveau lien entre une carte et une propriété associée jusqu'à avoir tout décrit.
Conclusion
Bref, Neo4j permet de considérablement augmenter l'efficacité de la description entre les cartes. Mais avoir un langage puissant ne suffit pas, il faut aussi construire un modèle de types de nœuds et des liens entre eux.
Rendez-vous au prochain numéro pour justement aller plus loin dans l'analyse des mécaniques du jeux et la manière de les transcrire. On verra donc comment passer d'une carte à l'autre, et que ... c'est bien moins simple qu'il n'y paraît.
Liens
Le 7ème continent : le carnet du cartographe, partie 1 Introduction, intérêt, modélisation
Le 7ème continent : le carnet du cartographe, partie 2 Actions et liens entre cartes
Neo4j Langage pour stocker des graphes