Making AI to attack neutral aggressive animals (and their dens) proved to be more complicated than I thought. Why is that?
Existing AI attacks work quite simple – AI has a list of attacks it needs to run at certain times (or periods), which are “nearest unit”, “nearest house”, “go to location”. Then AI checks if it has enough troops and launches the attack. To this time, I have planned for neutral hand to own both inert and hostile animals and houses. Which means that in order for AI to attack “any” enemy, it needs to check all enemy hands assets and also to check all neutral hand’s assets individually (to pick only hostile ones). Which is sub-optimal both from programming and from code-design point of view (especially the “individual” alliance setting).
Hence I’m looking into splitting neutral hand into two separate hands: inert and hostile, so that alliance settings between hands become simple again (either “ally” or “enemy”). Rules go like in order of priority:
Hand is always ally to itself
Neutral Inert hand (Ni) will be ally to anyone
Neutral Hostile hand (Nh) will be enemy for anyone (except self and inert)
All other alliances are governed by mapmaker and mission setup (except listed above)
And I get rid of that temp “it depends” alliance setting )
New problems arise though. Currently in Game and in MapEd all hands are tightly packed and each hand can be of any type atm. It’s a good time to fix this too. E.g. you can have 1 human hand and 7 separate neutral hands. Which is a waste of space really. Now there needs to be up to 2 different neutral hands – Ni and Nh (if hand has no assets it gets skipped). Still tightly packed on save and always on the right side of the hands palette in MapEd. Reordering hands is a bit complicated since hands hold a lot of cross-references (e.g. Goals/Objectives/Alliances/etc). Processing example goes like so: load a map into MapEd with 1/2/3/Nh hands. Append 8 more hands. Make the last hand Ni. Swap hands around for Ni and Nh to occupy the 11th and 12th slot. Do the map editing. Remove hands without assets before saving.
Another complication: previously I stored hand type in 2 fields in mission data: allowHuman and allowAI. 4 combinations of which described 4 hand types that were – Human, AI, Skirmish and Neutral. Now 5th type is needed, to split Neutral. For that I’m planning to add allowNeutralType flag/command.
There are other minor issues of course (and some bigger ones I haven’t stumbled upon yet), but overall I’m feeling confident and happy about this refactoring – it will make things a bit more complicated in one small area (Ni and Nh management),but much more simple in other broader areas (since larger parts of the game work with alliances).
Due to lack of time and small number of maps sent in, competition is prolonged till next week – 30 Dec!
Winter is coming along with Alpha 10 of the Knights Province! Let’s celebrate this with a competition! Task is simple – create an addon map for the game using built-in map editor (and optionally, dynamic scripts). Submit the map until December 23rd 30th. Await for results and get your prize soon after.
New single-player map (can have support for upcoming skirmish/coop play)
All Knights Province units need food to eat (well, except machines and animals). Otherwise they die of hunger. So dedicating a large portion of town to a food production is a good thing. But how much food is needed anyway? Let’s look into how much units eat:
Warriors can not leave their duty, so they get their food delivered by serf, which gets picked randomly in Camp/Store and tops warrior’s condition to 100%.
When citizen get hungry, they come to nearest Tavern that has free places inside (each Tavern can fit only 6 units at once). Typically when unit comes to Tavern he is at 13% full. When inside, unit will eat food in order it is listed in the Tavern until being 90% full.
I’ve been asked several times about food values for citizen, so here’s a small chart:
Fish – 0.5
Cider – 0.3
Bread – 0.4
Sausages – 0.6
Ale – 0.3
Please note, that above values are subject to change and should be considered correct only for current Alpha 9.1. In upcoming Alpha 10 values will be tweaked to:
Fish – 0.4
Cider – 0.2
Bread – 0.4
Sausages – 0.6
Ale – 0.3
So for example, in well stocked Tavern, unit will eat Fish+Cider+Bread and walk out, keeping Sausages and Ale intact.
There’s a new map being made for Alpha 10 of Knights Province. Called Misty Mountains. Giving word to map’s author Klassix:
“Mainly this map is for the future multiplayer, but of course AI handles it too, but surely it won’t use the flanking mechanics I tried to apply in the corners . You can be attacked in early game by 2 sides. Wolfs and Bruno the brown bear will take care of any fool trying to fast push you with 3 militia through the middle.
If we will be able one day to slow down unit movement with a special snow texture (or option) I will apply this on the middle to slow things down a bit. I did my best to balance things for all 3 players and suggestions are as always welcome.