J'ai expérimenté des algorithmes pour générer automatiquement des cartes routières pour un jeu sur lequel je travaille.
J'utilise les jeux " Kingdom Rush " comme point de référence car ils ont de superbes cartes.
Je suis nouveau dans la génération de contenu procédural et je me demandais si quelqu'un ici avait des pointeurs. J'ai expérimenté la génération de topologies de routes aléatoires, par exemple quelques nœuds d'entrée / source, plusieurs nœuds internes (fourche et fusion) et certains nœuds de puits de sortie, puis en utilisant des algorithmes de présentation graphique pour créer une feuille de route réelle basée sur ces informations.
Voici un exemple utilisant l' algorithme Fruchterman-Reingold pour le tracé des routes:
Le graphique bleu utilise des points de contrôle de Bézier générés aléatoirement pour rendre les bords moins droits.
Voici un autre exemple généré en utilisant le même algorithme mais des nombres aléatoires différents:
Le problème est que la plupart des résultats finissent par être assez similaires, et je ne sais pas quelles règles je peux ajouter pour améliorer la contrôlabilité et la diversité des cartes générées par la procédure.
Tout conseil apprécié.
la source
Réponses:
Vos exemples de routes ont des courbes sur les segments entre les intersections, contrairement à celles que vous avez générées. Avez-vous essayé d'ajouter plus de points de contrôle "redondants" sur vos routes?
Et si le nombre de boucles était un paramètre de génération? "Curviness" (nombre de points de contrôle redondants). Le nombre de sorties en serait un autre.
Je pense que vous pouvez également terminer des routes lorsqu'elles atteignent des intersections en leur donnant des points de contrôle doubles. Cela devrait rendre les intersections plus belles.
la source