I am planning on making a (simple) procedural city generator using Java. I need ideas on whan algorithm to use for the layout, and the actual buildings. The city will mostly have skyscrapers, not really much complex stuff.
For the layout I already have a simple algorithm implemented:
- Create a Map with java.awt.Point keys and Integer values. Fill it with all the points in the city's bounds with the value as -1 (unnassigned)
- Shuffle the map, and assign the 1st 10 of the keys IDs (from 1-10)
- Loop until all points have IDs:
- Loop though all points:
- Assign points next to an assigned point IDs of the point next to them, if 2 or more points border the point, then randomly choose which ID the point will get.
- Stop looping #3-5 when all points have ids
- You will end up with 10 random regions. Make roads bordering these regions.
- Fill the inside of each region with a randomly spaced and randomly rotated grid
PROBLEM: This is not the fastest way to do it.
What algorithm should I use for the layout. And what should I use to make each building's design? I don't even know how I'm going to do that yet (fractals maybe). I just need some ideas, not actual code.