Martin O’Leary pourrait parodier Nicolas Bouvier ainsi :
« C’est la contemplation silencieuse des cartes de romans d’heroic fantasy, à plat ventre sur le tapis, entre dix et treize ans, qui donne ainsi l’envie de coder un générateur de cartes de mondes imaginaires. » Il a codé, il l’a fait. O’Leary a créé un site capable de créer des cartes convaincantes pour rêvasser des mondes, et pourquoi pas : aider le rôliste en manque d’inspiration !
Il y a quelque chose de perecquien dans la démarche. En toute transparence, O’Leary nous dévoile sa méthode – très sérieuse – pour créer un monde convaincant.
En générant une grille de points aléatoires, qui va servir de base à la triangulation du terrain :
En créant un premier « proto-paysage » dans lequel peuvent être paramétrées les pentes, des pics (îles ou montagnes), des arrondis pour les collines, différents modes de lissage de terrain, définir le niveau de la mer :
En faisant couler l’eau (d’un point haut vers un point bas) et en faisant en sorte qu’elle aille dans une direction (sans accumulation et sans qu’elle tourne en rond entre points bas) et érodant le sol du « proto-paysage » :
En définissant le tracé des rivières, de la topographie :
En installant des villes et des frontières. Les villes sont générées au moyen d’un score combinant la présence d’eau, la distance aux autres villes, la distance avec les bords de la carte. Les frontières sont calculées suivant une sorte de chemin des moindres coûts tendant à favoriser les frontières naturelles des eaux et des crêtes de montagnes :
Et finalement en nommant les villes et les pays. L’étiquetage utilise un générateur de noms qu’O’Leary a créé pour l’occasion et dont la méthode est tout aussi riche et travaillée :
Et comme vous ne pouvez pas avoir lu ou vu cela sans repartir les mains vides, O’Leary a laissé le code JavaScript de sa page et le code Python de l’algorithme : à vous de jouer !
Liens externes :
Uncharted Atlas, un bot qui publie une carte toutes les heures : https://twitter.com/unchartedatlas
Explication de la méthode et générateur de cartes : http://mewo2.com/notes/terrain/
Méthode pour les étiquettes : http://mewo2.com/notes/naming-language/