Best practices when working with procedural mesh?

Hi,
I am not sure where this question should go but are there any “correct” (or better) ways to do things with procedural meshes? I have questions on how to go about making:

  • How should I spawn plants, rocks, etc?

  • Pick a random vertex per chunk and check if the normal is facing up.

  • Pick a random place and raycast to find a random spot.

  • How should I deal with spawning animals and NPCs?

  • The same as above?

  • How should I make water?

  • I don’t have many ideas for this one… should I be making a mesh? or shader?

Thanks for the help, feel free to suggest your own ideas. :slight_smile:

Short answer is there are no right answers. A lot of it depends on the implementation, like if you use a Voronoi graph to make definite areas/biomes, it’s easy to take a cell the graph makes and define that area as a town where you spawn villagers, or as a mountainous area where you would spawn rock. Compare that to a Minecraft-esque fractal generator where you do have to just plop a village somewhere, check if it’s in a valid area, and kill it if it isn’t.