I'm working on a project where my final goal is to procedurally generate a small planet complete with trees and all that biz but I'm trying to do it in C# however im a nimrod with little to no experience in C#. I recently made a noise terrain generation thing in processing but that's all the experience I have with noise. If anyone has helpful tips on how to create biomes and stuff like that please tell me.
How to make a biome based noise map for a spherical planet
Moving to For Beginners forum.
Aech said:
im a nimrod with little to no experience in C#
Not sure how that follows. Nimrod was the biblical mighty hunter and tyrant king who built the Tower of Babel. You might be using it in the Bugs Bunny sense, where in some old cartoon from the 1940's Bugs ironically referred to Elmer Fudd hunting him as though Elmer thought himself as Nimrod the hunter, but really, that seems strange to call yourself that.
Moving on from that oddity…
Aech said:
my final goal is to procedurally generate a small planet complete with trees and all that biz but I'm trying to do it in C#
Since you have “little to no experience” in the language and you're starting from scratch yourself, you've got a long, Long, LONG way to go, realistically you're looking at 5+ years of effort if you follow this route, and that's just to get to the point where you're comfortable building things, not to the point of making games.
If your goal is to learn C#, I suggest books and online courses that teach the language proper. Microsoft offers quite a few of them for free to help learn their language. Search engines and videos will also help.
If your goal is to write a game that uses C# for a scripting language, I suggest you start looking into Unity as a game engine. Unity offers a bunch of free and paid tutorials and courses around their tools. Search engines and videos will also help.
Actually IMO most planetary biomes aren't done well. I've seen a few that break areas up using Voronoi regions, however the results tend to depend on the input points and they don't seem to match the terrain well. Probably you should take latitude, altitude, and prevailing wind direction in relation to mountains into account. For example, one side of the big island of Hawaii is dry and even has cactus, while the other side is a rain forest. There are probably other factors too, but you would likely need to study climatology.
Gnollrunner said:
Probably you should take latitude, altitude, and prevailing wind direction in relation to mountains into account. For example, one side of the big island of Hawaii is dry and even has cactus, while the other side is a rain forest. There are probably other factors too, but you would likely need to study climatology.
Yeah I'm working on something similar and it's quite involved to do it right (especially if you want it to be somewhat realistic and fully procedural). You basically need a climate simulation which generates various data maps for the sphere (min/max/average yearly temperature, precipitation, wind velocity, etc.) based on other data like solar irradiance through the year, Coriolis effect, elevation, atmosphere thickness/composition, latitude.
Once you have the climate data you can place terrain materials and vegetation where it is appropriate. For instance, palm trees only grow where the temperature never gets very cold, and where there is enough precipitation. Cacti are adapted to dry conditions and so they will be in areas with low precipitation. There shouldn't be any distinct boundaries between biomes, nor any predefined “desert” or “temperate” regions. These are arbitrary human-defined classifications used to describe a continuously spatially varying set of climate conditions. The generation should instead be a probabilistic process, where the probability of generating a particular type of entity (e.g. tree of particular species) depends on its suitability for the location being generated.
Not an easy task to do it in a physically accurate way. The rabbit hole here goes pretty deep. For now I'm working on the geology and solar system side of this, which is a prerequisite for doing the climate stuff.