Генерация города (процедурная)?
Классная задача.
Я бы нагенерил (скорее всего руками - чтобы красиво было) много шаблонов - а ля "кварталы" ток поменьше, а потом из них уже клеил город.

Если прям надо процедурно - то начинать надо пожалуй с дорог - у них есть четкие требования а-ля граф, где вершины это районы (наверное).

Ну и пара статей:
https://habr.com/ru/company/piter/blog/455004/
https://habr.com/ru/post/320140/ (да, это лабиринт а не город - но общие черты есть)
Город похож на город когда дома и кварталы в нем имеют углы - близкие к 90 градусов. Такой вот нечеткий криетрий.

Мне кажется эту задачу можно решать генетическим алгоритмом просто набрасывая на карту случайные полигоны домов а потом при отборе отбирать те которые наиболее параллельны или перпендикулярны дорогам.