For our new game we want to develop a system that generates our world. For example we want to easily create big cities and multiple cities in 1 one world.

Here is a good example of what we want to create:





I was thinking of the use of multiple levels of procedural generation. So in a world different areas should be generated like an area for woods and cities. After that the layout of the city and streets would be generated and spots where buildings can stand. And after that the buildings would be generated for that spots. Same for woods and other areas. To set the parameters for this I was thinking about sliders just like the Far Cry editor does.

We want to know what is the best way to do this and if there are some algorithms to do this. If you guys have some other ideas I'm glad to hear them.