Méthodes de génération d'une carte

27

Je cherche à créer une carte simple, générée au hasard pour un petit jeu.

Le jeu consiste en une vue de haut en bas d'un monde, avec une masse terrestre et des zones océaniques. Pensez par exemple à une simple carte du monde.

La chose la plus proche à laquelle je peux penser que j'ai vue auparavant était le générateur de niveau pour les anciens jeux SimCity ou la série Civ , où vous pouvez définir une préférence pour un seul continent par rapport à de nombreuses îles, etc.

Quel type d'algorithme conviendrait? La carte devra être modérément zoomable, afin que je puisse avoir une vue "du monde entier", et aussi une vue locale plus zoomée, mais je pense que je vais régler ça plus tard.

Au départ, je n'ai besoin d'aucun concept de hauteurs, seulement deux zones - terre et mer, bien que je puisse l'étendre plus tard.

Cylindrique
la source
Je pensais le long des lignes de génération en utilisant une fonction de bruit perlin d'une certaine sorte, mais je ne sais pas comment passer de ce qui est essentiellement une carte de hauteur 2D, à un ensemble de lignes reliant toutes les zones à la hauteur X.
Cylindrique

Réponses:

21

Le "célèbre" Amit (avec la page géante de divers sujets de programmation de jeux) a un blog de programmation de jeux, et il vient de terminer un tutoriel en 3 parties d'une méthode intéressante de génération de cartes. J'ai vraiment apprécié les lectures, et il y a une démo de travail au bas du troisième article qui est assez stellaire.

"Génération de cartes polygonales" partie 1 , partie 2 , partie 3 .

Cela peut être une technique que vous souhaitez adapter à vos besoins! À tout le moins, il mentionne les algorithmes qu'il utilise à chaque étape du processus: il commence par générer des polygones de Voronoi , les détend à une distribution plus uniforme en utilisant la relaxation Lloyd , utilise "une fonction simple pour diviser le monde en terre et en eau" , puis les inondations se remplissent pour déterminer les océans et les lacs. On dirait que vous pouvez vous arrêter là, ou continuer à lire pour les montagnes et les vallées et les transformer en 3D et ainsi de suite.

Ricket
la source
2
Oh wow, j'ai utilisé énormément le guide d'Amit pour apprendre A *. C'est comme s'il me regardait dans la tête :) Il est temps de se faire tatouer "<3 Amit" ...
Cylindrique
1
Ce sont vraiment géniaux
Colm
Voronoi, sympa. :)
user712092