Comment puis-je créer un «monde» aléatoire dans un moteur de tuiles?

22

Je conçois un jeu qui fonctionne sur un moteur de tuiles classique, mais dont le monde est généré de manière aléatoire. Y a-t-il des jeux ou des algorithmes existants qui font cela? Les algorithmes de génération procédurale que j'ai trouvés n'utilisent jamais un système de tuiles ... Quelle serait la meilleure façon de générer un "monde" entier en utilisant un système de tuiles? Je ne parle pas de labyrinthes de blocs, mais d'une "carte du monde" globale merci

lezebulon
la source
5
Cela a été demandé à plusieurs reprises, essayez de rechercher ici: génération de monde aléatoire Modifier: en voici un pour un moteur de tuiles.
Richard Marskell - Drackir
2
-1: Cette question est sans réponse dans sa forme actuelle. C'est beaucoup trop vague, indiquant seulement que c'est une "carte du monde" faite de tuiles. OK, quel genre de tuiles? Que font ces tuiles en termes de gameplay? Cela pourrait être n'importe quoi de Final Fantasy à Civilization, et la "meilleure façon" de générer du terrain pour ces deux jeux est complètement différente . Il n'y a aucun moyen de fournir une réponse qui fournira un bon gameplay sans rien savoir de la façon dont vous prévoyez de l'utiliser. Avant de pouvoir parler de la génération procédurale de quoi que ce soit, vous devez pouvoir en faire vous-même une bonne version manuellement.
Nicol Bolas

Réponses:

34

Votre question vous amène dans le domaine de la génération de contenu procédural.

Génération mondiale basée sur des tuiles dérivée de méthodes continues / analogiques

Par continu, je veux dire quelque chose qui n'est pas des tuiles, quelque chose qui est analogique, un exemple étant une carte vectorisée. Vous pouvez utiliser n'importe quelle technique continue pour la génération, puis la quantifier. Par exemple, générez une image de bruit Perlin haute résolution, puis réduisez sa résolution pour l'adapter à la taille de votre tilemap et échantillonnez les pixels pour vous fournir une carte de hauteur. (Les cartes de hauteur peuvent être un excellent point de départ pour votre monde.) Cela parce que vous avez mentionné voir des sources qui ne vous montraient pas quoi faire en ce qui concerne la façon de l'appliquer aux tuiles.

Génération mondiale à partir de tuiles utilisant une approche de sculpture "aveuglée"

Avec une approche basée sur les tuiles (cellules), vous pouvez faire une sorte de génération aveugle où vous générez le monde petit à petit sans regarder plus loin que par exemple. les carreaux directement voisins, mais cela a tendance à ressembler au travail d'un insecte. Il s'agit de composants CA (automates cellulaires) typiques, et affiche une intelligence à plus petite échelle.

Génération mondiale basée sur des tuiles en utilisant une vision du monde plus large, de haut en bas

Cela prend une approche plus intelligente pour construire le monde tuile par tuile, car il va d'abord le construire région par région. De cette façon, vous contrôlez par exemple. différents biomes, régions politiques, etc., comme l'a fait Tarn Adams dans Dwarf Fortress. Bien sûr, cela vous oblige à réfléchir un peu à la façon dont vous souhaitez diviser votre monde. Il y a plusieurs façons, vous devrez faire vos propres recherches.


La génération de contenu procédural est un sujet assez large, vous devrez donc faire une bonne lecture avant d'avoir une idée précise de ce que vous voulez vraiment et de la façon de procéder - le diable est toujours dans les détails . Pour cette raison, quelques bonnes sources pour cela sont la liste de diffusion rec.games.roguelike.development (une tonne d'informations sur les mondes procéduraux basés sur les tuiles), les pages de programmation de jeux d'AmitP (regardez sous "Autres sujets") et enfin et surtout, le wiki de génération de contenu procédural .

Ingénieur
la source
Aucune de ces méthodes ne prend en compte l'objectif de gameplay de la carte. N'importe laquelle de ces méthodes pourrait générer de terribles cartes de jeu. Bien sûr, le PO n'a pas dit à quoi ressemblerait une bonne carte, alors ...
Nicol Bolas
6
@NicolBolas Exactement. Le PO a besoin de quelque chose pour continuer. Je n'ai pas besoin d'écrire un essai complet pour chaque réponse (bien que les preuves montrent que je le fais assez souvent).
Ingénieur
D'accord, "jouable" est une heuristique qu'il vaut mieux laisser à OP. "Jouable" est une couche au-dessus de la génération réelle d'un "monde aléatoire" et n'est pas requis par la question d'origine.
Patrick Hughes
6

La génération procédurale est un immense sujet. Jusqu'où êtes-vous prêt à aller?

Les réponses de Nick Wiggill sont excellentes. J'ajouterais à cela en suggérant que vous examiniez certaines méthodes mathématiques pour créer un terrain aléatoire cohérent.

Le bruit Perlin offre un excellent moyen de créer un caractère aléatoire lissé et fonctionne parfaitement pour toutes sortes de terrains. La simulation de l'érosion peut donner une impression réaliste de hauteur (bien que vous n'ayez peut-être pas besoin de cela car vous faites un jeu basé sur des tuiles)

Beaucoup de techniques discutées dans des articles comme celui-ci par Oddlabs , les créateurs de Tribal Trouble, fonctionnent bien en 2D et à basse résolution également. Si vous êtes plus à l'aise avec ce type d'approche, l'apprentissage de ces techniques peut valoir la peine.

Centigonal
la source