Great, this is my version, it still needs a lot of terrain types and tweaking.
Currently there are 3 layers (grass, dirt, rock) with the grass and dirt with random thickness.
After an certain threshold there is only rock (with resources).
Dug down a little (there seems to be a lot of resources stacked tougether here, this is just luck):
Fully underground (in a big random cave):
Destruction is per pixel and is really fast thanks to the quad tree and some smart shader code:
Materials even blend into eachother with an selective - blurring shader
All this stuff is generated with simplex noise.
The layers are calculated like this (grass as example):
val is the height of the terrain, this add more chance for grass to grow on top, and decreases this chance lineary with the y coordinate.
float grass = Math.max(3, SimpleMath.fastAbs(gen2.noise((x+px)*0.001f, (y+py)*0.001f, 0, 5, 3, 0.5f))*10) - 0.12f * Math.max(10, y + py - val);
m = grass <= 0 ? TerrainMaterial.DIRT : TerrainMaterial.GRASS;
Gold gets generated as little to very little specs (> 0.9) values of the noise.
Iron veins are generated as lines (-0.1 - 0.1) values of the noise.
Terrain is infinite in all directions, you can keep walking forever ( and without lag now
Sorry no demo yet, it is not ready for wip
It is playable, but really boring, and the player model is not right.
(i could make a whole post about my player model, wich is also generated with only code (my own cilinder algorithm), and yes its fully 3D).
If you have any questions, feel free to ask.