Fantasy medieval cities for the monthly challenge
imgur.com/a/5DxQKPosted Apr 19, 2017, 7:42 AM UTC
Posted Apr 19, 2017, 7:42 AM UTC
Very nice, but wouldn't most cities be influenced by there dependence on a fresh water source? (I see no rivers!)
That is usually typical, yes. Also the "citadel" is usually not built next to the city, but the city aroumd the keep.
It should be easy to replace one of the "districts" close to plaza with the "citadel". Historically, in most cases "citadel" is the town basis while "posad" (or "Lischke") with market was created near the castle walls a bit later.
Usually there would be multiple walls too. As the city grows the old walls are often not destroyed.
Unless its a motte-bailey construction, but not sure if those were common outside england
They were rather common even in medieval Rus, but it's definitely not a motte-bailey on the images. So it's better to draw castle inside the town walls.
It's not typical at all for a medieval city to be near rivers, medieval cities are built around a castle and typically in a strongly defensible position: up high, with inner and outer walls several meters thick and 10/20 tall.
You don't get rivers on hillsides, but you do get lots of underground streams. Water provisioning was done by drilling Artesian Wells (https://en.wikipedia.org/wiki/Artesian_aquifer). I had one in my cellar that predated the building (which itself is 700+ years old).
In modern times and were it is applicable (can go directly down from the mountain to the city) a dam can be used to collect rain water, be processed and delivered via aqueduct.
Source: I live here -> https://en.wikipedia.org/wiki/Cortona 3D Google map (red lines are the city walls, the fortress is on the far right, making sure peons died first if the main gates were breached) -> https://www.google.it/maps/place/52044+Cortona,+Province+of+Arezzo/@43.2662512,11.9862642,1227a,35y,39.02t/data=!3m1!1e3!4m5!3m4!1s0x132bf97881a782d7:0x27cf7fa1dc70734e!8m2!3d43.2750634!4d11.98512?hl=en
P.S. The procedural generation is spot on, but the gardens/areas around the castle/fortress can be far larger. It almost never is in the middle of the city, that's the main market square's place'
It's not typical at all for a medieval city to be near rivers
It's typical. Most castles have moat and you need a river to fill it with water.
If I'm remembering my architecture classes correctly, you don't need water for a moat to be useful. Dry ditches dug around castles on hills are also common.
They are common if you don't have an opportunity to fill it with water. It's not typical as most of the castles were built on the river or lake banks, or on the islands.
Great! Will you add some colors? And what about the source code, are you going to publish it?
I'd also be interested in the source code.
Me too, I'm looking into generating cities for my game and this algorithm seems almost exactly what I'm looking for.
Will you add some colors?
I’ll probably try colours but I feel skeptical about it: it’s easier to make a nicely looking monochrome map, than a full colour one
And what about the source code, are you going to publish it?
Yeah, why not, nothing confidential there :) But first I want to finish it and then I’ll need some time to clean the code. Right now it’s ugly, unoptimised and full bugs - no way I’m gonna publish it like this.
Any chance you are able to share your code now? I am interested in how you setup up the Voronoi diagrams in openfl.
Very cool, thanks for the further explanation of your techniques! :)
I've been looking into Voronoi / Delaunay graphs, hoping to one day make nice procedural lands and towns for games in Unity. This is good inspiration! :)
Really cool!
This looks great. Mind sharing the source so i can learn from it?
As soon as I fix most obvious of the bugs
Adorable!
nice. I'm definitely saving this for some future reference.
Very nicely done!
Thanks for feedback guys! Sorry that I can’t reply to each comment individually and quickly enough - I don’t have proper internet connection now and typing on a phone is such a pain. So this comment is what I have to say concerning historical accuracy of the layout.
First of all I must admit that of course I’m not an expert in medieval urbanism and medieval ages in general, not even close. I read some decent works on the subject(s) but I’m sure my ideas are distorted by historically inaccurate books, movies, games. I’m not ready to defend them :) But please note, that I always reference these generated layouts as “fantasy medieval cities”. I use the word “fantasy” not for shielding myself from accusations of incompetence (at least not only for that :)). It really is the focus of my interest since I hope to reuse these maps in some game in the future (ok, not some, but a specific one) with the fantasy setting. For example I’m going to implement public parks within city walls which is nonsense from a historical point of view.
On citadel placement
Now I think “citadel” is a wrong word. In my city it’s not the oldest and best fortified part of it, it’s a city lord’s castle. This is one of scenarios how a medieval city could be born: at first there is only a lord’s castle and then a settlement appears and evolves. Or the city could appear first (it even could be really ancient) and then a lord comes and builds his castle to control the city. Anyway, they are two close, maybe attached, but separate entities, they don’t need to merge into a single one. A prominent example of such layout is medieval London with its city walls and Tower of London. Of course it’s not the only possible scenario and layout, probably not the most wide spread, but still not a fictional one.
On the other hand I don’t know why I chose this shape, maybe it was a wrong decision. Such protruding castles do not look very nice especially when their shape happens to be too irregular (quite often). So I’m going to try moving the “citadel” inside the city walls (it shouldn’t be too hard), but I’ll keep it attached to the city walls since I like the idea of the main square to be a heart and geometric centre of the city (with a town hall, cathedral and prosperous houses around).
On rivers
I guess medieval cities usually emerged close to a river or a shore. Rivers were needed not as a source of drinking water, because river water was as far from drinkable as it could be. They were used for transportation and for crafts (blacksmithing, tanning etc). So a city could exist far from water bodies, but in this case there should be some other prerequisites for good trade in it (and cities were all about trade).
So yeah, I’d like to add rivers, it would help to make more interestingly looking maps, but for now it seems to be a rather complex task considering their Voronoi nature. I have some ideas, not sure if I’ll have enough time to implement and test them before the challenge ends, we’ll see.
As for shores they shouldn’t be too hard to add, but they’ll require some tinkering to look good. Interestingly I don’t know how coastal medieval cities did look. Did they stretched along a shore? Did they have walls on the water border?
You are completely right, except of the river water was drinkable and rivers were used as a water source. I bet my historian diploma on it.
Regarding coastal medieval (and post-medieval) cities. The main idea is that coastal city should be placed along the harbor. So we expect the coastal medieval city to be a port. Castles usually were built to control both land and harbor sides.
I advice you to look thought the Dalmatian fortresses plans for an inspiration.
Can't argue with a historian diploma :P
One more recommendation - The Medieval City by Norman Pounds.
Hey, do you have the code for this somewhere, maybe on github?
This is my take on the monthly challenge, made with Haxe+OpenFL.
I'm not done with these maps yet, but at least they look more or less as I wanted them to look.
Update
Unfortunately I didn't have time to add all the features I was going to implement (like assigning specific types to wards, adapting to terrain incl. rivers etc), I hope to continue working on it after the challenge ends. Meanwhile here is the web-version of the generator: link.