What is it and when do you use it?
			Procedural Generation is the process of creating an environment somewhat randomly from a seed value.
			Ultimately there is no such thing as a totally procedurally generated game (that I know of). It is a matter of when the algorithmic world stops and pre-made assets are used instead.
			For example, a game like Minecraft procedurally generates the environment, the locations of villages, and the layout one by lage, but it does not generate the appearance of each house; Instead it pulls from a set of prebuilt preset homes.
			From this, we can realise that the most important consideration when making a project with these methods is to choose the best point to stop using them.
		
		
			Forms
			There are many ways you could split procedural generation, but the most useful is to divide it into two categories: Finite & infinite generation.
			These two cases while sharing some techniques are performed very differently from one another and have different restrictions that one has to consider when deciding one for a particular application.
			First let's specify what exactly I am referring to with the terms infinite and finite. Which type a given implementation falls into is not dependent on whether it is bounded; After all, every game world has to be.
			Rather, an "infinite" generator seeks to define an appearance at every possible location within a play space such that adjacent locations appear contiguous.