Just realised I didn't answer this well. Being the "procgen tragic" I am, here comes the procgen explanation...
Anyone who ventures into procgen needs a good grounding in noise functions. You'll soon learn about Perlin/Simplex, Worley, Musgrave, Voronoi, etc. For terrain, 2D and 3D noise functions are relevant, and in the case of ED specifically, we only need to look at 2D noise. 2D noise can produce very nice heightmaps, but with no possibility of overhangs or caves (3D noise is required for that). For this reason, the type of terrain seen in ED is sometimes called 2.5D.
Great examples of 2D noise functions can be found here:
Now specifically for the geome in your screenshot, the most relevant 2D noise is probably about half way down the page, "Ridged Multifractal". In fact the description there even says, "Great for electrical effects, and as a
displacement map for mountains due to the sharp peaks and valleys."
That 2D image is simply a 2D array of height data, so when used as terrain, the game engine transforms the noise into hills and mountains with the lighter shades (higher values) being the higher elevations, like this:
View attachment 284527
So I'd suggest the noise function in C most closely resembles the geome in your screenshot.
In practice, any procgen coder will probably tell you that terrain for hills/mountains is the easiest to simulate. It's literally about 20-30 lines in most languages, consisting of:
- Import noise modules/libraries
(nobody these days has to code their own noise functions - they're all available in libraries)
- Set up noise parameters
(octaves, lacunarity, etc. describing the geome characteristics - these are all noise params you learn quickly)
- Generate the noise
(often just a single line calling the noise library)
- Optionally, add additional additive and/or multiplicative layers of noise as necessary, for realism (repeat steps 2 & 3)
- Render / plot
To be perfectly honest, many of the hills/mountains we see in the new ED geomes are underwhelming, especially the rounded (unnatural) looking ones. I've said previously that I see no reason why these had to be pre-generated and repeated as terrain tiles. Having said that, although hills and mountains are simple, there are other geological features which are technically quite complex to solve. These include erosion / alluvial deposition, and rivers. For my own hobby projects, I estimate 10% of my time is spent on tectonics, continents, hills/mountains, and the rest on erosion and rivers. But there are plenty of shortcuts for erosion/rivers which can make them real time.
I've written far too much... bet you're sorry you asked now.