Our World in Minecraft

Un outil permettant de générer des cartes Minecraft à partir de données Google Earth.

En 2020, je suis tombé sur ce projet de KevinJNguy01, qui a réussi à convertir une partie de Google Earth en carte Minecraft. J'ai trouvé l'idée géniale, et j'ai voulu la reproduire.

Pour cela, j'ai développé un script en Python permettant de scraper les données de Google Earth, et de les convertir en monde Minecraft.

Le script

Le script est constitué de trois parties, fonctionnant l'une après l'autre :

Les difficultés rencontrées

Je n'ai jamais sorti le projet en open-source, car à mes yeux il n'était pas assez abouti.

La qualité du code

Étant donné que j'ai assemblé trois projets existants, le code n'est pas très propre, et je n'ai pas eu le temps de le refactoriser.

Le poids des données

Les données de Google Earth sont très lourdes, une ville comme Lyon pèserait plus de 100 Go. Les traiter prend énormément de temps, et nécessite du multi-threading (ce que j'ai implémenté).

Les ombres

Les vertex proposés par Google Maps contiennent des ombres directement intégrées aux textures, ce qui donne des bâtiments et des blocs de couleur très sombres. J'ai tenté de les retirer, mais cela a été un échec. Les arbres sont également très sombres, et ne sont pas très bien rendus.

La taille maximale du monde

Minecraft était à l'époque en version 1.16, ne permettant pas une hauteur de monde suffisante pour intégrer des villes à taille réelle. Par exemple, la tour Eiffel ne rentrait pas dans un monde Minecraft.

Mes résultats

Voici quelques captures d'écran des maps que j'ai pu exporter dans Minecraft grâce à mes travaux :

Lyon Part-Dieu dans Minecraft

La tour crayon de Lyon dans Minecraft

L'Opéra de Lyon dans Minecraft

Le quartier de Shibuya dans Minecraft

Une refonte possible ?

J'aimerais à terme sortir ce projet de manière automatisée, avec la possibilité pour chacun d'avoir son propre monde Minecraft basé à partir de son quartier. Ça serait un projet très intéressant, et faisable plus facilement aujourd'hui avec :

  • La sortie de Minecraft 1.17, qui permet des mondes plus hauts
  • La mise à jour Immersive View de Google Maps, qui devrait permettre d'avoir des modèles 3D plus propres
  • Mes compétences plus avancées en C/C++, en Python et en 3D.