Make a new image, 1000x1000
Add a layer, transparent background, name it "Dissolve".
Set the Dissolve layer to dissolve mode, 10% opacity
Set the gradient tool to Normal mode, Gradient FG to transparent, Shape radial.
Set the foreground color to black, background color to white.
Make a gradient on the Dissolve layer from the center to a bit from the edge.
Add a layer below the Dissolve layer, transparent background, name it "Points"
Merge the Dissolve layer down.
The points layer now has a bunch of black dots. (Image 1)
Scale the image to 3000x3000.
Using the select by color tool, select all the black dots.
Grow the selection by 1 pixel. Twice.
Add a layer, transparent background, name it "Buildings".
Fill the selection with black on the Buildings layer.
The buildings layer now has a bunch of orthogonal buildings (Image 2)
(Insert stuff to distort the buildings, turn them at different angles and such)
Alpha to selection on the buildings layer.
Grow the selection 10 pixels.
Invert the selection
Using the select by color tool in subtract mode (hold ctrl), unselect all the black dots.
Add a new layer, BG color background, name it "Streets".
Set the gradient tool to Normal mode, Gradient FG to BG, Reverse (so it's white to black), Shape Shaped (dimpled).
Use the gradient tool on the Streets layer.
The streets layer now has a gradient between all houses. (Image 3)
Set the foreground color to 50% gray.
Add a layer, foreground color background, name it "Streets bump".
Bump map the streets bump layer with the streets layer. Azimut 135, elevation 45, depth 65, ambient 0 (Image 4)
Use the edge filter on the streets bump layer, Algorithm Laplace, amount 2,7.
Gaussian blur the streets bump layer, size 6,0
Normalize the streets bump layer (Colors|Auto|Normalize)
Add a layer mask to the streets bump layer, using a grayscale copy of the layer
Fill the streets bump layer with the Slate pattern
You now have some pretty nice streets between the houses (Image 5)