If you like procedural generation check out [0]. His recent blog posts have been about his Minecraft-like voxel engine (currently being used for Everquest Landmark I believe) but he has a lot of great gems in his archives.
Two recent articles about his language to randomly generate architecture, and two older ones about city generation:
I was discussing procedural city generation with a graphics person awhile back. One of the things we realized is that procedurally generated cities almost always feel "wrong" because real life cities generally have a mishmash of dozens of general architectural "styles" based on various quirks of history.
One example: in Cincinnati Ohio, working class houses in certain neighborhoods have stained glass windows. It's usually only one or two small ones, but they're there in certain neighborhoods because of a stained glass artisan "scene" that arrived on a wave of German immigrants. Another quirk about Cincinnati: there are lots of houses that are quite narrow for their plan area, because taxes were based on the width of the building on the street. There are quirks like these that cause a city to be a geographically differentiated patchwork of different styles.
Where can I learn more about the forces underlying the topography of cities? I find the connection you described between house width and taxation to be fascinating.
Have a look at the history of Edinburgh - things like geology (volcanoes, glaciation, crag and tails), city walls, wars, planned development etc. have all had a huge impact on this glorious city. :-)
Funny. I had almost the same discussion over in the UK. We decided that the most interesting city engine would be one that incorporated time driven development and the changing categorisation of land area.
I'd still love to try and write a game that included time travel and the results of historical changes on a modern city.
Reading the title I immediately thought these set of articles on procedural city generation. It's about the visual appearance of a city but very interesting nonetheless.
Or, if you'd like to buy this off-the-shelf, the second author of the cited paper went on to co-found a company called Procedural, which was bought by Esri (the geo-spatial tech giant). Their work is still available as the City Engine product: http://www.esri.com/software/cityengine
Excerpt: Road networks are a key aspect of city character and identity. Road networks are difficult to generalize since they are an interwoven component of a complex system. When viewing road networks from a map or city plan a number of patterns can be observed. It is these patterns that are key for procedural generation as they encode the structure of the road network.
Roads and rivers are the hard part, placing buildings next to it based on templates is easier.
There are lots of programs which generate a semi-plausible city map, perhaps filled with generic buildings. But so far nobody seem to be able to generate something that looks even vaguely convincing from street level.
It would be fun, and even useful, to have a procedural storefront generator. One that constructs storefront styles, signage styles, door styles, and window displays. Use images from a street view program to train a machine learning algorithm as to what various parts of cities look like. Don't just use existing storefront images; build them up in 3D from door, window, sign, and display components.
Two recent articles about his language to randomly generate architecture, and two older ones about city generation:
http://procworld.blogspot.com/2014/11/cantor-city.html
http://procworld.blogspot.com/2014/11/life-without-debugger....
http://procworld.blogspot.com/2011/07/screenshots-of-buildin... - Builds a city over rocky terrain.
http://procworld.blogspot.com/2011/07/city-lots.html
The video in the second one is really cool from a programming and debugging perspective.
[0] http://procworld.blogspot.com
ed: Added more city-generation links.