Génération procédurale de mondes

Tags :
  • POK
  • 2023-2024
  • temps 3
  • génération procédurale
Auteurs :
  • Paul Vietor

Dans ce POK, je m'intéresse à la génération procédurale de mondes.

Objectif du projet

Pour ce projet je souhaite faire un programme permettant de générer de façon procédurale la carte d'un monde avec de multiples environnements ainsi que de l'afficher, et éventuellement de l'exporter pour l'utiliser plus tard dans d'autres programmes.

Le code source est disponible sur Github

Objectifs du premier sprint

Résultats du premier sprint

Réalisé au premier sprint :

Pas réalisé par manque de temps :

Pour ce premier sprint, j'ai grandement manqué de temps dans les deux semaines allouées, donc je n'ai finalement pas eu le temps de faire l'affichage et je me suis restreint à deux algorithmes, mais j'espère continuer un peu les recherches et implémenter d'autres algorithmes pour avoir par exemple des cours d'eau.

Objectifs pour le second sprint

Et je me garde à priori 1h pour d'éventuelles difficultés imprévues, que je compte utiliser pour implémenter un export de monde si je ne l'utilise finalement pas pour autre chose.

Résultats du second sprint

Réalisé au second sprint :

Pas réalisé par manque de temps :

Finalement, j'ai eu de nombreux soucis avec l'affichage de la carte, qui a fini par me prendre bien plus longtemps que prévu, et le débogage de la génération au niveau local était particulièrement long car mon implémentation n'est pas bien optimisée, donc je n'ai pas eu le temps de m'intéresser à la génération de cours d'eau. Voici quelques exemples de ce que j'ai pu obtenir comme résultats :

Ressources

Un tutoriel pour la génération de cartes de planète avec Unity : http://www.jgallant.com/procedurally-generating-wrapping-world-maps-in-unity-csharp-part-1/ La page Wikipédia sur le bruit simplexe (en anglais) : https://en.wikipedia.org/wiki/Simplex_noise Une vidéo Youtube sur l'algorithme Wave Function Collapse : https://youtu.be/2SuvO4Gi7uY Une présentation par un des développeurs de Minecraft sur la génération du monde de Minecraft : https://youtu.be/ob3VwY4JyzE Dépôt Github de WaveFunctionCollapse : https://github.com/mxgmn/WaveFunctionCollapse Tileset utilisé : https://jamiebrownhill.itch.io/solaria-rural-village