I’m very interested in procedural generation and would like to know what types of algorithms could be used to create a simple city.
Just main streets that spread into several smaller streets and such with empty terrain filling the gaps of varying sizes.
I would really appreciate it if someone could point me in the right direction for this sort of algorithm.
Thanks
To be honest this can turn out to be very complex or very simple.
If I only take the image as a reference it seems this algorithm is somewhat imitating the visual structure of a tree. You have large streets where smaller streets go either to the left or right of it. The only important part would be to define the depth of this algorithm (based on the image 3) and define the max/min distance a new side street can appear. This algorithm should also work the other way around so that small streets can connect to bigger ones. Very simplified Lindenmayer-System.
This idea is however flawed in many ways. In reality you often don’t just have a side street going to the left or right in many cases you have a small street crossing a bigger one. Sometimes a level 1 street can also cross a level 3 street without connection to a level 2 street and you have to backtrack all your previous streets. Streets don’t always have a 90 degrees turn and here lies the biggest problem.
Like @jakev already mentioned a grid approach would be also possible (many cities are designed that way).