Contexte
Je gère un serveur minecraft où je vais concevoir une ville de départ assez grande. J'ai une série de choses, comme des panneaux de règles et des cages de foule, je voudrais y installer des bâtiments. La ville elle-même sera extrêmement grande et étendue, de préférence jusqu'à 1000 par 1000 blocs de taille.
Les bâtiments eux-mêmes auront des empreintes cubiques ou rectangulaires basées sur un certain cube de base, comme tous les multiples de 3 blocs. Les rues et la distance entre les bâtiments auront de préférence une largeur de 5 à 11 blocs, selon l'importance de la rue.
Quand je commencerai le plan de la ville, je saurai exactement quelle taille je veux que les bâtiments soient et combien il y en aura.
Le problème
Le problème est de concevoir l'aménagement de la ville. Évidemment, avec quelque chose d'une telle envergure, et moi venant d'un milieu de programmation plutôt que d'un urbaniste, il est assez difficile de commencer même à envelopper ma tête autour du problème.
Le problème est précisément que je veux que la ville soit aussi naturelle que possible. Bien sûr, ce serait assez facile à construire sur un modèle de grille simple, mais je veux éviter autant que possible une grille, ou tout ce qui ressemble à une grille.
La question
Quels algorithmes pourrais-je poursuivre pour pouvoir m'aider à le concevoir à l'aide de code? Je pensais que cela aurait l'air le plus naturel si j'utilisais des fractales d'une manière ou d'une autre, car minecraft utilise déjà des fractales dans sa génération de terrain, et une ville semble se développer naturellement dans un modèle fractal.
Je pense qu'il est similaire à certains égards à un algorithme de jeu tetris, donc si quelqu'un a des solutions qui existent dans cette direction, cela aiderait aussi. J'imagine quelque chose où je serai en mesure de définir les formes que je veux utiliser, et le logiciel répète ensuite jusqu'à ce qu'il trouve la solution la plus "optimale" pour une distribution uniforme des bâtiments. Existe-t-il déjà quelque chose pour m'aider à résoudre ce problème en utilisant python, de préférence de manière visuelle en utilisant pygame?
Naturellement, cela a également des implications intéressantes pour la génération de villes en général dans la conception de jeux, donc je suis très heureux de voir quelle est la meilleure solution.
edit Pour être clair, je cherche juste la disposition à ce stade car les bâtiments seront conçus et construits dans le jeu.