[Résolu] Générer une map avec différent biomes

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Répondre
Avatar de l’utilisateur
Eanix
Messages : 62
Inscription : 08 Mai 2015 19:06

[Résolu] Générer une map avec différent biomes

Message par Eanix » 26 Août 2017 19:02

Bonjour/Bonsoir à vous,

Comme dis dans mon titre, je voudrais générer une map avec la création différents biomes, un peu comme dans Minecraft.
Je pensais pouvoir faire ça uniquement avec un perlin noise mais ça ne rend pas bien. Effectivement ce serait idéale si je voulait faire le même paysage en boucle mais je cherches la diversité. J'ai déjà fait des recherches mais ça reste vaque dans le fonctionnement. Du coups je cherches à avoir des idées de quelqu'un expérimenter dans ce domaine.

EDIT : et si quelqu'un si connait vraiment bien, s'il peut me quelques idées sur le changement de propriété dans les biomes (par exemple dans biome montage avoir des montagne en forme de "triangle" et dans un biome canyon avoir des forme de canyon 8/)

Dites moi si je n'ai pas été assez clair et Merci d'avance.
Dernière édition par Eanix le 01 Sep 2017 11:52, édité 1 fois.
Un petit pas dans la technologie, un grand fouillis dans ma tête :hehe:

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Greg » 28 Août 2017 20:09

Bonjour/soir

oui ce n'est pas très claires...

Que te manques-t-il? As-tu des pistes de travail? Qu'est ce qui t'empêches d'avancer?

tu veux générer une map aléatoire? de manière répétable (genre à chaque niveau) ou persistante? par code entièrement? tu utilises l'outil terrain ou des assets?

Edit : ah oui et c'est pour quelle plateforme? (sur mobile, les contraintes et limitations sont plus importantes)

Parce que la comme ça... à part t'orienter vers 50 pages du manuel (ce qui serait long pour moi et improductif pour toi) je vois pas trop...

pour les idées...
grosso modo Minecraft c'est une map de 'zones de cubes' (genre eau, prairie, désert).
Lors de la génération de la map ça doit traiter chaque zone en créant des plus petites 'zones de cubes' (tes biomes genre pour minecraft > Plaines = Plaine, Plaine de Tournesols, forêt couverte...etc)
enfin ça doit traiter chaque cube (foreach Cube in Zone) de chaque zone pour leur attribuer leurs aspects et propriétés correspondant à leurs biomes...

Après je dis ça, j'ai jamais joué à Minecraft ^^

:merci:
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Avatar de l’utilisateur
Eanix
Messages : 62
Inscription : 08 Mai 2015 19:06

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Eanix » 29 Août 2017 03:31

Tout d'abord, merci pour ta réponse ;-),

Je code pour PC. J'ai déjà de quoi générer un monde pseudo-aléatoire, infini, grâce à une fonction de perlin Noise mais cela ne convient pas à mes attentes. J'aimerais savoir si un type d’algorithme permet de créer des zone qui définirons les biomes. Et je voulais aussi avoir conseil sur comment donner des propriétés à ce qui se trouve dans un biome (Exemple : dans le biome fantasy, je voudrais que me colline resemble à un triangle inversé).

Pas d'asset pour acquérir de l’expérience.

La map doit se générer grâce à une seed (déjà fait).

Ce qui m'empêche d'avancer est le fait que je ne sais pas comment m'y prendre, c'est tout x). Après je bloquerais peut-être dans le code mais je saurais régler ça, sinon je reviendrais poser une question. :lol:
Un petit pas dans la technologie, un grand fouillis dans ma tête :hehe:

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Greg » 29 Août 2017 07:26

Ce serait plus facile pour nous de partir d'un bout de code que de réinventer la roue...

sinon peut-être :
MineCraft Terrain Generation In Unity 3D
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Avatar de l’utilisateur
Eanix
Messages : 62
Inscription : 08 Mai 2015 19:06

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Eanix » 29 Août 2017 10:58

Désolé, je ne peut pas vous donner le code car cela enfreindrais les droits que j'ai sur mon entreprise, et d'ailleurs je ne cherche que des idées. Par contre je peux vous dire comment j'ai procédé vaguement. ;-)

J'ai, tout d'abord, un script pour chaque block incluant ses propriété physique, un fonction de perlin noise...

Avec la fonction de perlin noise je génère la parti visible de la map de la taille d'un chunk,

Ensuite je génère, suivant les valeurs obtenues avec la fonction noise, un mesh dont seul les blocks qui sont visibles, sont pris en compte.

Ensuite je fabrique la texture suivant les blocks affichés et je l'attache au mesh.

Voilà voilà. Encore une fois désolé de pas pouvoir donné un morceau de code.

Par ailleurs, la méthode de génération dans la vidéo me semble incroyablement lente. Cela est peut-être voulu pour la démonstration, mais je ne pense pas. Par contre cette vidéo illustre ce que j'ai actuellement quand je load un chunk. Sinon un vidéo qui montre ce que je veux est celle-ci : https://youtu.be/lR3jW0ClM2E
Les propriétés physique dont je parlais sont illustrés aussi dans cette vidéo. Regardez la différence entre les collines dans la plaine et les "collines" dans la neige, le début de pente n'est pas le même.

Merci pour votre patience et votre compréhension :merci:
Un petit pas dans la technologie, un grand fouillis dans ma tête :hehe:

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Greg » 29 Août 2017 11:11

Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Avatar de l’utilisateur
Eanix
Messages : 62
Inscription : 08 Mai 2015 19:06

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Eanix » 29 Août 2017 11:43

Merci encore une fois :merci:
Malheureusement je ne veux pas utiliser d'asset :lol:
Je cherche juste un algorithme spécifique à la création de biome (pour les départager) or je n'en trouves pas.
J'ai pensé à utiliser plusieurs noise map pour créer différente condition climatique (humidité, température ...) mais je ne sais pas si c'est une bonne idée. Pour ça j'attendrai confirmation avant de me lancer. :hehe:

Si vous avez des conseils je suis preneur :super:
Un petit pas dans la technologie, un grand fouillis dans ma tête :hehe:

Avatar de l’utilisateur
Eanix
Messages : 62
Inscription : 08 Mai 2015 19:06

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Eanix » 31 Août 2017 21:49

Personne n'as d'autre idées ? (Je reposte pour remonter le topic :P)
Un petit pas dans la technologie, un grand fouillis dans ma tête :hehe:

Avatar de l’utilisateur
Titan
Messages : 582
Inscription : 12 Sep 2011 13:54
Contact :

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Titan » 31 Août 2017 23:26

Salut,
Malheureusement il n'y a pas de solution miracle pour obtenir de la diversité. Diversité est synonyme d'entropie et le seul moyen d'augmenter l'entropie, c'est de complexifier l’équation de génération.

Quelques pistes:
- Tu peut par exemple générer une map d'humidité, une map de temperature, et une map d'altitude moyenne, puis inféré un biome à partir de ces 3 valeurs: chaud + humide + basse altitude = jungle, sec + froid + altitude moyenne = toundra.
- Tu peut essayer de remplacer le bruit de perlin par un voronoi pour certaines valeurs.
- Au siggraph 2015 (je crois), un algorithme à été présenté pour générer un continent réaliste avec des rivières mais je ne l'ai pas retrouvé.
- Ce que j'ai retenu de l'algo de Miguel Cepero pour générer un continent:
*Il définit plusieurs "plaques tectonique" avec varanoi + midpoint displacement et il leur donne une direction aléatoire
*il définit les contours du continent avec un perlin, et il calcul une première élévation du terrain en fonction de la direction des plaques.
* ensuite il définit une direction de vent principale, les zones entre la mer et la montagne dans la direction du vent sont humide, les zones derrières les montagnes sont arides.
* avec les zones de précipitation il fait un calcul d'érosion pour aboutir à la heigtmap finale et à la position des lacs et rivières.
* Enfin il définit la température avec la latitude et l'altitude.
Ca ne marche pas pour une map infini, généré à la volée à la minecraft mais tu peut en tirer certaines idées.
http://procworld.blogspot.fr/2016/04/ge ... stiny.html
http://procworld.blogspot.fr/2016/07/ge ... art-2.html

- Si tu connais pas Miguel Cepero, il a travaillé un peu sur la génération de terrain et il y a quelques autres articles qui en parle sur son blog.
____________________________________________
Hop Boy

Avatar de l’utilisateur
Eanix
Messages : 62
Inscription : 08 Mai 2015 19:06

Re: [(MY-CF)-AL] Générer une map avec différent biomes

Message par Eanix » 01 Sep 2017 11:52

Ah merci !!!! :lol:
Tu m'as beaucoup aidé merci x). De plus cela tombe bien car après quelque réévaluation la map n'a plus à être infinie =)
Je vais travailler sur l'algorithme et peut-être que si la direction m'y autorise, je publierais une dll ;-).
Un petit pas dans la technologie, un grand fouillis dans ma tête :hehe:

Répondre

Revenir vers « Scripting »