2 points par GN⁺ 2025-05-23 | 1 commentaires | Partager sur WhatsApp
  • Reconstruction de la planète Chiron du jeu Sid Meier’s Alpha Centauri de 1999 avec de véritables méthodes cartographiques, en transformant la carte du jeu basée sur 128×64 tuiles en une carte-poster haute résolution
  • Le cœur du travail a consisté à relever manuellement les valeurs d’altitude des 8 192 tuiles du jeu, puis à extraire les données de précipitations, de rugosité rocheuse et de xenofungus à partir de captures d’écran et d’échantillonnage dans QGIS
  • En partant du fait que Chiron est représentée comme une planète sphérique et que la carte du jeu se raccorde horizontalement, la carte d’origine a été dotée d’une projection cylindrique équivalente et d’une variante Trystan Edwards
  • Les données en grille à basse résolution ont été transformées en un modèle de terrain plus organique grâce à une dispersion aléatoire de points, une interpolation TIN, une triangulation de Delaunay, du bruit, des corrections manuelles et une réécriture des MNE polaires
  • La carte finale est le résultat d’un travail combinant QGIS, Python, Photoshop, Illustrator et Eduard ; elle montre que les cartes de mondes fictifs peuvent aussi être étendues avec des techniques cartographiques réelles lorsqu’il existe des données préexistantes exploitables

Un projet de cartographie de Chiron, dans Alpha Centauri

  • Le résultat est une carte-poster consacrée à Chiron, la planète qui sert de décor à Sid Meier’s Alpha Centauri
  • Chiron est à la fois le décor du jeu et l’un de ses éléments centraux ; la carte officielle intégrée au jeu a été réalisée par le game designer Chris Pine
  • Le propos de l’article porte moins sur la présentation du jeu que sur le processus de fabrication consistant à transformer les données du jeu en une démarche cartographique réelle
  • Ce projet est un exemple d’application de compétences cartographiques existantes à un monde fictif, mais il diffère par nature d’une carte fantasy créée entièrement à partir de zéro

La différence entre cartes réelles et cartes fictives

  • La cartographie du monde réel consiste plutôt à manipuler et styliser des données géographiques données
  • Pour créer une carte fantasy ou SF à partir de zéro, il faut créer les données elles-mêmes, ce qui demande d’autres compétences
  • L’auteur se voit davantage comme un manipulateur de données que comme un créateur de données
  • La raison décisive pour laquelle il a été possible de cartographier Chiron est l’existence, dans le jeu, de données préexistantes exploitables

Collecte des données du jeu

  • La carte officielle d’Alpha Centauri est composée de 128×64 pixels en forme de losange
  • Chaque pixel contient des attributs comme l’altitude, les précipitations ou la rugosité rocheuse
  • Transcription des valeurs d’altitude

    • Le travail exploite le fait que le jeu affiche la valeur exacte d’altitude de chaque tuile
    • Les valeurs d’altitude des 8 192 tuiles ont été relevées manuellement, puis vérifiées à nouveau pour réduire les erreurs de transcription
    • Cette tâche a commencé en 2022 et s’est achevée en 2025
  • Précipitations et rugosité rocheuse

    • Les données de précipitations proviennent d’une carte thématique issue d’un mod, absente du jeu original
    • Les précipitations sont réparties en 3 niveaux : rainy, moist et arid
    • Toute la carte a été capturée sous forme de captures d’écran, les couleurs ont été séparées dans Photoshop, puis les valeurs raster ont été échantillonnées dans QGIS sous forme de points vectoriels par cellule de grille
    • Les zones où des éléments de carte masquaient les informations de précipitations ont été corrigées manuellement
    • La rugosité rocheuse a été extraite avec la même procédure, mais n’a pas été utilisée dans la carte finale
  • xenofungus

    • Le xenofungus est une forme de vie indigène de Chiron, représentée sur la carte du jeu par des marqueurs roses ou rouges
    • Cette donnée est binaire : présence ou absence
    • En l’absence de carte thématique dédiée, les pixels roses et rouges ont été échantillonnés depuis la carte de jeu standard, puis corrigés

Définition de la projection

  • Le monde du jeu fonctionne comme une carte cylindrique : on peut se déplacer indéfiniment de gauche à droite, tandis que le déplacement s’arrête aux bords supérieur et inférieur
  • Comme Chiron apparaît comme une planète ronde dans plusieurs supports du jeu et sur l’écran-titre, la carte 2D est considérée comme la représentation d’une planète sphérique
  • Lorsqu’une base est fondée dans le jeu, elle contrôle le même nombre de pixels quelle que soit sa position ; on suppose donc que chaque pixel représente la même surface
  • Pour répondre à ces conditions, une projection cylindrique équivalente a été attribuée à la carte du jeu
  • En fixant le parallèle standard à 37,4°, on obtient le même rapport largeur/hauteur que la carte du jeu, ce qui correspond à la projection Trystan Edwards
  • Ce paramétrage de projection a ensuite servi de référence de coordonnées pour les jeux de données générés dans QGIS

Étendre la grille d’altitude basse résolution en MNE

  • Les données d’altitude d’origine forment une grille de 128×64, une résolution très faible pour une carte-poster
  • L’objectif était de créer un modèle numérique d’élévation plus détaillé tout en conservant les faits connus dans le jeu
  • Points aléatoires et interpolation TIN

    • Des points aléatoires ont été dispersés sur chaque tuile, avec une distance minimale pour éviter qu’ils ne se concentrent trop
    • Chaque tuile de la grille reçoit environ 1 à 3 points, et un point central est ajouté aux tuiles sans point
    • Chaque point reçoit la valeur d’altitude de la tuile sur laquelle il se trouve
    • Une interpolation TIN est ensuite utilisée pour générer un premier modèle d’altitude, réduisant l’effet de grille par rapport à une interpolation utilisant uniquement la grille d’origine
  • Triangulation de Delaunay et bruit

    • Pour obtenir un relief plus fin, la triangulation de Delaunay est utilisée de manière répétée
    • Un nouveau point est ajouté au centre de chaque triangle formé entre les points aléatoires, et son altitude est définie comme la moyenne des trois points voisins
    • Un léger bruit aléatoire est ajouté à l’altitude de chaque point pour créer des irrégularités, avec une amplitude de bruit réduite à chaque itération

Corrections manuelles et Garland Crater

  • Les endroits où le résultat de l’interpolation divergeait de la carte officielle de Chiron ont été corrigés manuellement
  • Certains lieux qui étaient des îles sur la carte officielle se retrouvaient reliés au continent dans l’interpolation, ou des îles trop petites disparaissaient dans la carte finale
  • Des points d’altitude supplémentaires ont été ajoutés dans ces zones pour ajuster les formes
  • Garland Crater ressemble presque à un carré si l’on ne regarde que les valeurs d’altitude de la grille d’origine, mais sa représentation visuelle dans le jeu suggère une intention circulaire
  • Cette zone a été corrigée en déplaçant les points d’altitude d’origine par rubbersheeting afin d’obtenir un cratère plus proche d’un cercle

Lissage et MNE polaires

  • Après l’interpolation, plusieurs procédures de lissage ont été combinées
    • Utilisation de la moyenne et de la médiane dans les focal statistics
    • Utilisation de la line integral convolution via le plugin Karika de QGIS
    • Ajout d’un peu de bruit de Perlin
    • Nouveau mélange des couches lissées avec les couches d’origine, puis nouveau lissage
  • La méthode relevait davantage d’ajustements jusqu’à ce que le résultat paraisse correct que d’une formule exacte
  • Comme la projection cylindrique d’origine étire fortement les régions polaires, le pôle Nord et le pôle Sud ont fait l’objet d’une nouvelle interpolation d’altitude dans une projection séparée
  • Aux pôles, de vastes zones ne disposent pas de données de jeu ; du bruit presque aléatoire a donc été dispersé au centre
  • Les MNE du pôle Nord et du pôle Sud ont été créés séparément pour pouvoir servir à de futures cartes de ces régions, puis réintégrés par blending au MNE principal
  • Par la suite, des lacs ou petites îles manquants ont encore été découverts ; certains ont été corrigés en modifiant le MNE, d’autres par dessin manuel lors de la phase cartographique

Projection orthoapsidale et scripts personnalisés

  • La carte principale utilise la projection orthoapsidale, ou projection Raisz Armadillo
  • Cette projection a été choisie parce qu’elle donne directement au lecteur l’impression de regarder une surface courbe
  • QGIS ne proposant pas cette projection, un script Python a été écrit sur mesure à partir des formules de transformation de Wikipedia
  • L’auteur n’étant pas encore très à l’aise avec PyQGIS, il a aussi reçu l’aide de ChatGPT
  • La projection a été modifiée pour s’adapter à la disposition des continents de Chiron
    • L’inclinaison verticale par défaut de 20° a été changée en -10°
    • La courbure latérale a été réduite
    • La carte a d’abord été réduite horizontalement avant projection, puis ré-étirée horizontalement afin de réduire la déformation par compression sur les bords
  • Le script ne traitant que les vecteurs, les rasters comme le MNE ont été convertis en polygones pixel par pixel, projetés, puis rasterisés à nouveau
  • Cette méthode n’est pas idéale et le traitement était long, mais elle a fonctionné pour le travail réel

Construction des couches cartographiques principalement dans Photoshop

  • La carte finale a été construite en grande partie par empilement de couches dans Photoshop
  • Le relief sous-marin a été produit en transformant les parties du MNE dont l’altitude est inférieure ou égale à 0 en raster noir et blanc, puis en les recolorant dans des tons bleus avec une gradient map
  • Pour les terres, les valeurs sous-marines ont été découpées dans le modèle d’altitude reprojeté, puis Eduard a servi à simuler un relief ombré suisse dessiné à la main
  • Un glow interne a été ajouté au trait de côte pour séparer la terre et l’eau, et pour donner l’impression que les montagnes proches du littoral s’estompent progressivement
  • Les valeurs d’altitude du jeu étant très irrégulières, les montagnes apparaissaient souvent brusquement juste à côté des côtes ; les zones littorales ont été traitées pour paraître un peu moins accidentées
  • Le relief terrestre a été teinté de brun avec une couche hue/saturation, puis un léger bruit de couleur a été ajouté pour lui donner un aspect plus organique

Représentation de la végétation à partir des précipitations

  • Comme sur la carte officielle du jeu, les données de précipitations ont été utilisées pour représenter la végétation
  • La couche de relief a été dupliquée, colorée en vert, puis enrichie de bruit de couleur et de couches de réglage de luminosité/contraste
  • Le masque qui mélange la couche de relief verte et la couche de relief brune provient des données de précipitations
  • Les points de précipitations reprojetés dans QGIS ont reçu une interpolation thin plate spline afin de créer la base du masque
  • Dans Photoshop, le mode de fusion dissolve et des filtres de flou et de renforcement ont servi à créer une texture de bruit douce et ponctuée
  • Ce masque donne l’impression que le nombre de plantes diminue dans la transition entre zones pluvieuses et zones sèches, plutôt que de simplement rendre la végétation transparente
  • À l’impression, cet effet peut être difficile à voir sans loupe, mais à l’écran il devrait produire des frontières de végétation plus naturelles

Xenofungus et rivières

  • Le xenofungus apparaît à la fois sur terre et en mer
  • Le xenofungus terrestre a été traité presque comme la végétation
    • Interpolation des données ponctuelles
    • Lissage et ajout de bruit
    • Utilisation comme masque d’une couche de relief rouge
  • Le xenofungus marin utilise le même masque ponctué, mais dans une couche violette séparée, limitée aux zones d’eau
  • La couche de fungus marin est mélangée à la couleur de l’eau sous-jacente avec le mode de fusion linear burn
  • Les rivières présentes sur la carte du jeu étant très anguleuses car contraintes par la grille, elles ont été redessinées manuellement dans QGIS
  • Dans Illustrator, une légère taper a été appliquée aux sources des rivières, puis Photoshop a servi à ajouter couleur et bevel pour donner l’impression qu’elles creusent la terre en s’écoulant
  • Une analyse hydrologique basée sur le MNE a aussi été tentée, mais le terrain était trop irrégulier, générant beaucoup de bassins endoréiques et de rivières courtes ; les dessiner directement s’est avéré plus simple

Couleurs, effet de peinture et accentuation de la courbure

  • Une augmentation de la saturation a été appliquée à toute la carte, et un graticule a été ajouté pour visualiser la courbure
  • L’augmentation de saturation est d’abord apparue par hasard lors du déplacement de couches dans Photoshop, mais le résultat a plu et a été conservé
  • Le système de couleurs est devenu plus intense qu’à l’habitude, ce qui a été accepté comme une expérimentation dans le cadre d’un projet personnel
  • La carte a été aplatie en une seule couche, réduite, puis le filtre dry brush de Photoshop a été appliqué pour créer une texture à moitié peinte
  • Le résultat du filtre étant trop flou, il a été mélangé à 50:50 avec la carte originale afin d’équilibrer détails et douceur picturale
  • Enfin, une ombre interne a été ajoutée sur les bords pour donner une impression de diminution de la lumière et renforcer l’idée d’une surface courbe plutôt que plane

Étiquetage et choix typographiques

  • Le premier étiquetage a été réalisé dans Adobe Illustrator, dont les outils de texte sont meilleurs que ceux de Photoshop
  • Les étiquettes finalisées ont ensuite été réimportées dans Photoshop et intégrées à la carte
  • La carte sous chaque étiquette a été floutée pour que les bords du texte se détachent plus nettement de l’arrière-plan
  • Des techniques de glow et de smart halos ont été utilisées afin de pouvoir placer du texte clair sur un fond clair et du texte sombre sur un fond sombre
  • Toutes les étiquettes utilisent BellTopo Sans, conçu par Sarah Bell
  • Les serif ont été jugées trop délicates face aux couleurs fortes de la carte, et peu adaptées à une carte de SF
  • Eurostile, la police du jeu lui-même, paraissait trop rigide pour une carte au style et à la palette plus doux
  • BellTopo Sans a été jugée adaptée parce qu’elle combine la force d’une sans-serif avec des éléments humanistes évoquant le dessin à la main

Toponymes ambigus et composition du poster

  • Les éléments géographiques du jeu ne sont pas toujours clairement étiquetés ; les textes blancs sont posés sur une seule tuile de grille
  • Dans beaucoup de cas, il a fallu interpréter directement les limites des formes de terrain
  • Planetneck a été le cas le plus difficile
    • Il était ambigu de savoir si le nom désignait un chenal en forme de doigt ou la terre qui le traverse
    • La carte du jeu contient aussi de fines zones de ligne brune franchissables à la fois par terre et par eau, ce qui rendait l’interprétation encore plus difficile
    • Le choix final a été d’en faire le nom de l’entrée d’une longue baie étroite
    • Cette décision est cohérente avec la présence d’autres noms de détroits sur la carte officielle
  • La carte officielle ne contient que 32 noms, ce qui est très peu pour une carte de cette échelle
  • Comme il semblait gênant de créer de nouveaux noms, seuls les noms existants ont été utilisés
  • Le poster final comprend, en plus de la carte principale, de petites cartes produites avec le même jeu de données et les mêmes techniques
    • Une carte montrant plus clairement les données d’altitude
    • Deux cartes polaires moins déformées
  • Un léger scanline a été ajouté au fond et aux cartes en hommage à l’interface du jeu
  • Le bleu du titre et du cadre est également un élément qui rappelle l’interface du jeu

Limites du travail et pistes futures

  • L’ensemble du processus a été très laborieux, combinant échantillonnage fastidieux des données du jeu, transformations GIS, ajustement de projection personnalisée et construction de couches Photoshop
  • Le déroulement réel n’a pas été aussi efficace que le suggère la description : il y a eu plusieurs mois d’essais, d’erreurs et d’impasses
  • Comme le jeu de données existe désormais, il sera possible à l’avenir de zoomer sur de petites zones de Chiron pour créer des cartes à plus grande échelle
  • Dans ce cas, il sera possible d’explorer des méthodes pour générer un terrain plus réaliste tout en conservant les valeurs d’altitude connues
  • L’intérêt potentiel des données de rugosité rocheuse n’est apparu qu’après la conception finale ; à cette échelle, elles n’auraient pas changé grand-chose, mais elles pourraient avoir un effet sur des cartes zoomées
  • Le MNE d’origine nécessite encore du nettoyage, notamment pour des lacs et îles manquants
  • Si une meilleure méthode de création d’un modèle d’altitude réaliste est trouvée, le MNE existant pourrait être remplacé par un meilleur modèle
  • Ce projet a été possible parce qu’il existait des données préexistantes, et il montre que même pour un monde fictif, des compétences de manipulation de données peuvent être appliquées selon des méthodes cartographiques réelles

1 commentaires

 
GN⁺ 2025-05-23
Avis sur Hacker News
  • Le récit de Daniel Huffman est assez convaincant et inspirant : https://somethingaboutmaps.wordpress.com/about/
    La version longue est encore meilleure : https://somethingaboutmaps.wordpress.com/2011/03/02/on-salva...

    • Sa description du mal-être lié au travail m’a vraiment parlé.
      J’aimerais moi aussi retrouver l’étincelle qu’il a trouvée, mais j’ai peur que ma passion ait déjà été complètement broyée il y a des années.
  • Ce jeu a été très important pour moi : je me souviens y avoir perçu pour la première fois, de façon abstraite, des idéologies et croyances religieuses détachées de cas humains précis.
    J’aimais vraiment les différentes factions et ce en quoi elles croyaient, et cela m’a toujours fait imaginer quelles sortes de croyances pourraient avoir des extraterrestres s’ils existaient.

    • C’était un excellent jeu.
      Le système politique était vraiment réussi, et c’était génial que, même avec seulement 4 choix dans chacun des 4 domaines, les options ne s’imbriquent pas automatiquement entre elles.
      On peut très bien créer un État policier de libre marché si on le souhaite. Je pense que jouer à ce jeu quand on est enfant peut pousser à réfléchir un peu plus à ce que signifient réellement ses positions politiques. Bien sûr, on aurait aussi pu lire des livres, mais comme c’est impossible. Cela donnait aussi une sensation parfaitement adaptée à un jeu de SF, car les auteurs aiment jouer avec des combinaisons politiques étranges.
    • C’est pour ce genre de raisons que j’aime la SF et la fantasy. Bien sûr, neuf fois sur dix, ce sont des variations de cultures humaines, ou elles sont réduites à une seule dimension au début : les elfes comme racistes élitistes, les Klingons comme peuple colérique, etc.
      Mais les séries qui durent longtemps ajoutent des nuances avec le temps, et finissent parfois par faire lutter les stéréotypes contre leur propre « nature ».
    • C’est dommage que Civilization: Beyond Earth ait été une telle déception.
      Au lieu de dirigeants, de factions et d’idéologies intéressants, on a eu droit à « l’Afrique de l’espace » et à « l’Australie de l’espace ».
      Je me demande s’il existe des problèmes juridiques empêchant Firaxis de faire un véritable remake de Centauri.
  • Sid Meier's Alpha Centauri était vraiment un jeu extraordinaire.
    SMAC m’a donné des idées sur la façon dont une société future pourrait s’organiser pour garantir la survie et le progrès de l’humanité, et m’a montré comment des technologies spéculatives pourraient transformer une civilisation.
    En y jouant, je me sentais moins seul, car il montrait que la solitude est une condition humaine universelle qui traverse les époques. J’y ai vu de l’espoir dans la vision d’une humanité trouvant sa place parmi les étoiles, j’ai été amené à me confronter à des idées bien plus grandes que moi, et j’avais l’impression que mes choix dans le jeu mesuraient mon empathie.
    J’ai aussi compris que l’histoire, comme un jeu, avance simplement sans boussole morale.

  • Pour ceux qui se demandent pourquoi Sid Meier's Alpha Centauri utilise le mot « planetfall » : c’était un terme récurrent dans le jeu, qui signifiait le début de l’histoire.
    Le message d’ouverture était le suivant :

    $NAME3, a new era of struggle and opportunity awaits you. The UN Starship Unity has arrived in the Alpha Centauri system after a forty year voyage. All contact with Earth has been lost. After Captain Garland's assassination by an unknown assailant, the crew mutinied and split into factions. In the ensuing conflict, some seized control of the Unity's colony pods. You now shape the destiny of your $ faction, which has just made PLANETFALL!

  • « J’ai donc parcouru la carte et noté la valeur d’altitude de chaque tuile. Il y en avait 8 192 au total. »
    Il y avait forcément une méthode plus automatisée que de le faire 8 000 fois à la main, non ?

    • Je pense que beaucoup de gens lisant ce commentaire auraient pu écrire très vite un script pour extraire les données de la carte et les convertir en .CSV.
      Cela dit, les projets longs et répétitifs, qu’on peut faire sans trop réfléchir petit à petit quand on veut juste occuper un moment avec quelque chose de pas très important, ont leur valeur.
    • J’ai pensé la même chose. Il y avait énormément de nerds qui adoraient ce jeu à l’époque, et j’en fais partie ; je pense que j’aurais volontiers relevé le défi d’extraire ces données par programmation.
  • En lisant la description de Sid Meier's Alpha Centauri, j’ai réalisé que la série animée Scavengers Reign avait un cadre très similaire : des colons humains qui s’écrasent sur une planète semblant dotée d’intelligence.
    J’en profite pour recommander de la regarder. Si vous êtes fan de SF, ou si cela vous évoque Greg Egan ou Vernor Vinge, vous devriez aimer. Même si vous n’êtes pas fan de SF, cela vaut la peine d’essayer. C’est vraiment aussi bon que ça.

  • Le sound design de ce jeu était vraiment excellent. Un jeu remarquable.

    • J’adore les sons étranges des « événements », les petits bips de l’interface, les « piou-piou » des armes, et le très bon doublage.
      Depuis que je l’ai acheté en boîte en 1999, je l’ai toujours gardé installé sur un ordinateur ou un autre. C’est une œuvre d’art. Malgré tous les progrès graphiques des 25 dernières années, aucun autre Civ ne m’a autant touché.
    • Mon seul reproche concernant le sound design, c’est la façon dont la musique de fond fonctionne.
      Elle semble probablement commencer à se lancer quand le joueur est inactif, mais quelle que soit la façon de jouer, elle a rarement l’occasion de se déclencher réellement.
      Il me semble que chaque faction avait sa propre bande-son.
  • Le travail est superbe, et j’aime beaucoup la carte et le texte. C’est vraiment très bien réalisé.
    Ce qui me manque, c’est qu’on ne voit pas de frontières à fort contraste dans la texture des terres. Tout passe en douceur d’une région à l’autre ; on voit les montagnes, mais la texture les ignore presque. Il manque les limites qu’on observe dans les textures de notre propre planète.

    • Je suis assez d’accord. L’un des traits intéressants qui donnaient à la carte originale son aspect extraterrestre, c’étaient les lignes rouges qui traversaient tout.
      C’était probablement du xenofungus, mais cela avait aussi un côté magma et donnait l’impression que les continents se fissuraient. Cette impression a disparu dans la nouvelle version.
      Cela dit, j’apprécie beaucoup le travail qui a été réalisé ici, et le résultat est vraiment superbe.
  • J’ai dû donner mon disque à quelqu’un d’autre pour arrêter d’y jouer. Cela perturbait sérieusement mon travail et mon sommeil.

  • Dans un registre proche, il existe le blog « Here Dragons Abound », consacré à la génération procédurale de cartes fantasy. Il n’a pas été mis à jour depuis un moment : https://heredragonsabound.blogspot.com/