This game is actually a level generated procedurally using noise algorithms like Perlin Noise & Fractal noise.Using UnityEngine.Random.value gives very random values which cannot be used to develop a pattern. Instead Perlin Noise can be used which also returns random values but these values develop some kind of pattern. I have used Perlin Noise to generate heightmap that includes my plain & mountains.
I have used it to generate trees at random locations & also to generate alpha maps & details in the level. Samples generated by Perlin Noise, although seemingly random, are all of same size .So, these Perlin Noise samples are then used by Fractal noise which adds these Perlin noise samples at different frequency, at different strengths. Instead of summing the samples, it can also add octaves. This way we get patterns of different sizes which makes the level look more real
This levels adds mountains, plains, different types of grass, different types of trees & some flowers. Also, it keeps track of player’s movements & generate terrains dynamically adjacent to player.
As mentioned earlier, this is not an actual game but just a level, this can be used as level for any types of FPS games if symmetry is not required. This can also be used for Endless runner types of games as it generates terrain dynamically.