0.7.0: Districts

More refactoring

The second figure of the version number has increased again (from 6 to 7) and this means I consider this update as a major one. The reason is not a new "districts" feature, but serious inner changes in the generator. As before, these changes are not visible. Well, at least I hope they are not visible. In case you are interested in technical details I've migrated the whole project to "double connected edge lists".

Districts

New "districts" replace old "neighborhoods". What is the difference?

Districts are shaped differently. Neighborhoods were just clusters of wards of the same type (craftsmen, slums etc). Because of that their shape and placement often seemed quite arbitrary. Districts are "grown" more organically - they are seeded around prominent city features and their borders are shaped by the landscape. Also they tend to be much more diverse in size and I think it's more realistic.

Neighborhoods were just clusters of wards of the same type (craftsmen, slums etc). Because of that their shape and placement often seemed quite arbitrary. Districts are "grown" more organically - they are seeded around prominent city features and their borders are shaped by the landscape. Also they tend to be much more diverse in size and I think it's more realistic. Districts are named differently. Neighborhoods didn't have names, just types. Districts get proper names based on super-complicated historical and cultural simulation of the city life. Districts get random proper names. The algorithm which generates district names is pretty simple, much simpler than the one which constructs city names. Quite often it produces silly names, but I think it's OK. In the future the names will be editable similarly to city names.

District labels

It requires too much typing to describe how these new labels are different from old labels, so please just try them out or look at the image. They are not perfect of course, especially curved ones. I'm not even sure they can be perfect and anyway it's a huge topic. I guess the current labels are good enough for the first iteration considering the fact that all the techniques are invented from scratch. Most likely I'll try to improve them with some existing algorithms created by smarter people than me :)

SVG

Legend can now be exported to SVG. Not sure if many people use it, but in my opinion with new district names "legend" became a more interesting option. Also all text (district labels, city name, scale bar) is now exported using the same font(s) as displayed inside the generator.

Supporting SVG is a real pain for me because all the "drawing" needs to be implemented two times - as "screen drawing" and "svg drawing". I consider dropping the support of niceties in SVG i.e. palettes, labels, isolines etc and leave just raw shapes. Please let me know if you think it's a bad idea.

Other changes

There are some, but I've lost my change log🤦 Here is a couple of items I remember: "tight" option for buildings and improved "elevation".

In other news...

I have a Patreon now!🎉🎉🎉 Please consider supporting the generator there or just following me for more stuff. If more stuff is what you need :)