Je programme un jeu basé sur des tuiles et j'ai quelques tuiles de base (herbe, terre, etc.), mais je ne sais pas comment faire une bonne génération de carte aléatoire, parce que quand je fais une sélection vraiment aléatoire, si la tuile devrait être de l'herbe / de la saleté, je reçois ceci:
Je comprends pourquoi cela se produit, mais ce que je veux, c'est créer des zones continues aléatoires d'herbe ou de saleté. Quelque chose qui aurait plus de sens, comme ceci:
Réponses:
Ce que vous pourriez faire, c'est générer aléatoirement une carte Voronoi comme ceci:
center points
(voir les points noirs) et décider au hasard s'il s'agit d'herbe ou de saleté.center point
terre ou d'une herbe.Si ce que vous avez fait précédemment est de «lancer une pièce» pour chaque tuile (bruit), la génération d'un diagramme de Voronoi fournira un bien meilleur résultat.
Vous pouvez améliorer cela en divisant le
center points
enislands
un algorithme qui:centers points
et les désigne commeleaders
.la source
center points
. Décidez ensuite s'il s'agit d'herbe ou de terre. Faites maintenant une boucle sur le tableau et décidez si chaque tuile est la plus proche d'un point de saleté ou d'un point d'herbe. Peut-être me dire quelle partie difficile?Vous pouvez utiliser le bruit perlin, qui est normalement utilisé pour la génération de la carte de hauteur. Bruit de Perlin dans les jeux
Ensuite, vous pouvez utiliser les hauteurs en tant que conseiller, à quel point le risque d'herbe / saleté se produisant dans une région de la carte est élevé.
Exemple (valeurs de bruit Perlin de 0 à 256): Si la valeur est supérieure à 200, la probabilité que l'herbe soit placée est de 80% (saleté 20%). Si la valeur est comprise entre 100 et 200, la probabilité que l'herbe soit placée est de 50% (la saleté aussi 50%). Si la valeur est inférieure à 100, la probabilité que l'herbe soit placée est de 20% (saleté 80%).
la source
http://gamedevelopment.tutsplus.com/tutorials/generate-random-cave-levels-using-cellular-automata--gamedev-9664
voici ma version de la méthode des automates cellulaires commencez par remplir la grille avec aléatoire puis exécutez ces règles d'automates cullular dessus quelques fois
et ça finit par ressembler à une grotte
l'index peut être converti en position x & y et inversement avec ce code
Je retourne juste une liste de bools parce que j'utilise cette liste pour beaucoup de choses: grottes, arbres, fleurs, herbe, brouillard, eau, vous pouvez même combiner plusieurs listes de différentes manières ici, je supprime d'abord toutes les grottes plus petites, puis réunissez deux listes aléatoires
la source
Sélectionnez un point sur la carte. Placez le type de tuile souhaité avec une valeur de base telle que 40. Gardez une trace de l'endroit où vous avez placé votre nouvelle tuile désirée. Ajoutez le point de départ à une liste.
Pour chaque point de cette liste, vous visitez tous les voisins. Tant qu'il vous reste assez de puissance (à partir de 40), ajoutez la tuile souhaitée et ajoutez-la à la liste à visiter. Donnez moins de puissance à la nouvelle tuile, déterminée par vous. Plus facile = abaissement aléatoire. Après avoir visité la vignette de la liste, supprimez-la. Recommencez en visitant toutes les tuiles non visitées mais créées.
la source