Je suis récemment devenu fasciné par les choses qui peuvent être faites avec un terrain procédural et j'ai commencé à expérimenter un peu la construction du monde. J'aimerais pouvoir créer des mondes qui ressemblent beaucoup à une forteresse naine avec des biomes créés à partir de cartes différentes.
La première étape a donc été faite. À l’aide de l’algorithme du carré de diamant, j’ai créé de belles cartes de hauteur. La prochaine étape est que je voudrais ajouter quelques caractéristiques de l'eau et les avoir générées de façon assez réaliste avec des précipitations. J'ai lu quelques approches différentes, telles que commencer aux points hauts de la carte et "descendre" au point le plus bas voisin, se regrouper / s'éroder au fur et à mesure que l'on descend jusqu'au niveau de la mer.
Y at-il des algorithmes documentés avec cela ou sont-ils plus spontanés?
Aimeriez tous les conseils / pensées.
Réponses:
Amit Patel, un utilisateur de ce site, a créé une merveilleuse ressource d'informations sur la génération de monde aléatoire qui vous sera certainement utile.
De plus, il y a d'excellentes questions / réponses sur la génération de procédures sur ce site.
Génération de routes / rivières sur une grille en 2D
Génération du monde procédural orienté sur les fonctionnalités de jeu
Comment puis-je générer des lacs et des rivières au hasard dans mon jeu?
Génération de carte aléatoire
la source
À l'époque où j'ai expérimenté ce genre de chose (fin des années 90), j'ai lu des papiers et des livres pour en savoir plus sur le débit d'eau, mais je n'ai pas gardé de trace de ceux que j'avais consultés. J'ai fini par faire mon propre truc parce que je voulais gérer l'érosion. Je voulais que les rivières produisent des canyons et des plaines inondables. Je voulais que les réservoirs de barrage se remplissent de sédiments. Je voulais que les rivières produisent des effets comme des lacs sinueux et sinueux. Je voulais des canaux pour l'irrigation et la dérivation de l'eau. Je voulais que les inondations endommagent les fermes et les maisons dans les plaines inondables.
J'ai gardé quelques notes (liens) dans la section Géographie de cette page . Il y a un article de Jos Stam à lire absolument. Malheureusement, je n'ai jamais organisé les notes. De plus, malheureusement, le jeu était pour OS / 2, donc je ne peux pas vous donner facilement un exécutable exécutable pour jouer. Et aussi, malheureusement, mon code est terrible, mais si vous voulez y jeter un coup d’œil, voyez water.cpp dans le code source (zip).
Choses avec lesquelles j'ai joué dans ma simulation (pas toutes réalistes):
Dans l’ensemble, j’ai eu l’impression que tout cela était assez amusant à jouer, mais il a fallu beaucoup d’heuristique et de peaufinage pour que cela fonctionne. Je ne suis jamais arrivé à un point où je pourrais dire que la création d'une rivière semblait naturelle et inévitable sans modifications. C'était tellement amusant (à la fois en tant que programmeur et en tant que joueur) que j'ai passé des années dessus et que je n'ai jamais terminé le reste de la partie. :)
la source
La plupart des implémentations que j'ai vues combinaient une "carte de rivière" (utilisant une bande étroite du bruit de Perlin ou une approche similaire) ou la méthode de "goutte de pluie" que vous avez mentionnée.
Voici quelques points de départ:
la source