🔷 Unity

MapGeneration

C#
Screenshot du projet

Le projet était de réaliser une génération procédurale d'un terrain dans Unity comprennant plusieurs types de tiles ainsi que des villes. Le tout, modulable en taille et densitée.

Afin de réaliser ce projet je fus en charge de la génération des villes: Celles-ci devaient suivres des conditions spécifiques et modulables. Les conditions en question étaient la régulation de la taille des villes, la présence de certains batiments specifique et l'écart minimal entre ces batiments. Il fallut également réguler quels tiles pourraient remplasser les villes (pas de villes sur les montagnes ou dans l'eau). Afin d'accomplir cela, les villes fut construites de façon à ce que chaque villes aient une taille entrée et chaque batiment vas indépendament regarder chaque tiles autour de lui si elle est libre. Si chaque tiles autour est occupe ou non utilisable le batiment va arreter de chercher. L'on peut voir cela comme un algorithme de propagation. Cela parait long mais le code a 2t2 opti;is2 afin de ne prendre que quelques secondes. Une fois le cluster de batiments terminé, l'on va regarder la distance minimal entre les batiments spéciaux et remplacer une maison aléatoire de la ville par l'un des batiments spéciaux. Finalement ne resté plus qu'à implémenter les chemins. Une fois que l'on a toute les villes, il suffisait de faire un algorithme de type A* afin de relier les villes entre elles, tout en ajoutant une variable de poids pour dissuader les chemins passant par le tiles de types eau ou montagnes sans pour autant bloquer les villes entourés par ce type de tiles d'etre relié.

Je suis plutot fier de la réalisation de ce projet car en plus d'apprendre la génération procédurale j'ai également pu m'intéresser à plusieurs algorithmes de pathfinding.

Voir le dépôt GitHub