I’m happy to announce new Alpha of the game!
Alpha 9 changes and improvements:
Three major gameplay mechanics (described in detail in earlier article):
- Wildlife (aggressive animals and dens)
- Early army (militia can be trained in Camp)
- Morale to affect warrior’s attack
- More great music by Juan I. Goncebat
- New fight and death sounds
- New scripted map Walkers (survive Walkers waves)
- New scripted map Into the Swamps (by Klassix)
- New skirmish map Horseshoe (with aggressive wolves)
- New skirmish map Borders (by Klassix)
- New campaign Orthalm (3 missions, by DarkianMaker)
- New terrains (yellow grass on dirt, coarse gravel)
- Diagonal transition for mountains/flat terrain
- New temp house models (by Icomatix)
- House building animation for 2 houses (with help from Dah)
- New palm trees
- Simplified gold production (no coal required)
- Increased unit walking speed by 25%
- Reworked AI setup and presets for skirmish
- Changed defence position setup in MapEd
- Tweaked AI to handle food production better
- Tweaked AI to handle offense better
- Tweaked AI to handle defense better
- Increased max stone volume up to 6 in one tile
- Gold and Iron ore can be placed on any mountain type now
- Fixed AI iron mining
- Improved iron mining rate
- Lots of smaller improvements in MapEd
- Lots of gameplay bugfixes and smaller improvements
As usual – this is still Alpha, there are likely a lot of bugs, flaws, incomplete features, broken mechanics and such. Please report them and also your thoughts on what should change and why.
Download links (updated to latest version):
Knights Province Alpha 9.1 (7z package)
Knights Province Alpha 9.1 (installer)
Did some low-poly palms for the upcoming Alpha 9:
I’m still working on wrapping up features/bugfixes for Alpha 9. Last big feature that needs to be done before Alpha 9 release – AI troop management between defence/offence positions. It’s proven to be one of the greater AI flaw so far.
Until then, wip builds are available in Discord community: #new_versions channel.
Alpha 9 will have the following major features:
- Aggressive animals
- Early army
- Warriors morale
Let’s see how they work!
Wolves, bears and boars will now attack all nearby units within some range. Wolves and Bears also got special spawning house – Den. It will spawn new animals until destroyed. Animals spawned from den will wander within certain radius (attacking anyone passing by) and “guard” in smaller radius (running to attack anyone approaching).
Animals and dens can be placed and configured via built-in Map Editor.
So now, animals are a real threat for citizens working in the field and for advancing armies. This can be seen in Horseshoe – 1vs1 map, designed around wolves obstacle in between 2 players.
Soldiers can be trained from the first second now. Militia training was moved to Camp. Cost of training is 1 Blank (who will leave his Cottage upon completion) and 1 Club. Clubs can be made later in the game in Weapons Workshop at a cost of 1 Wood. Typical Camp will have a dozen of clubs at the start, allowing player to hire Militia for exploring and self-defense, but not enough for full-scale offense operation (more on that in Morale section).
Along with Militia, now Camps can train Serfs and Builders (they cost only 1 Blank).
Warriors attack strength now depends on their class and proximity to their (or any allied) town. Militia has lowest morale strength – only 15%. This means that it will fight at full strength within it’s town borders and only at 15% strength when far from the town (e.g. in enemy town). Better warriors have stronger morale (which goes all the way up to 100%). This means, that for example 2 enemy militia can be easily beaten by just one defending unit.
I want the system to be stateless – that is given static setup (units/houses placement) morale should always be the same, irregardless of previous/next system state. In other words, if you see a screenshot you can calculate everyone’s morale without knowing what happened before.
The factors at play are:
- proximity to own houses is the best and strongest factor
- proximity to enemy houses lowers morale
- allied houses are also counted (after all we want to encourage allied help)
- campfires should boost morale as well (so they play a bigger role as outposts)
Here are some results of 100 test runs. First number is defenders count in their own town, second is approaching enemies. Tests were made with 2 and with 10 defenders to find out equivalent number of attackers:
- Militia: 2/4 10/41
- Axeman: 2/3 10/18
- Swordsman: 2/2 10/11
All these features are aimed at making early game more engaging.
Took these screens while playing challenge map in Alpha 9 – you have to survive against incoming enemy hordes, where each new wave is stronger than previous one. I’ve managed to last for ~40min:
P.S. You can try out Alpha 9 wip yourself by downloading from this special Discord channel: https://discord.gg/cEwJFSY
This week I’m experimenting with house building process.
There were several ideas, simple and complicated ones. But in the end I’m aiming toward the balance between house building process that should look appealing and doable from technical and labor standpoint.
Here’s how Cottage building steps look like when colored in prevew:
And this is how it looks in the game when the house building process is in progress:
It’s a long road to propagate this building approach to all in-game house. Especially since many house still don’t have their looks (and some houses are still not planned out yet). There are also pipeline issues to solve, so that modeled houses could be split into parts and imported in the game easier.
For now, Alpha 9 is likely to include just one or two houses with building process steps.
I’ve been asked about making a Discord server for the Knights Province.
So here it is: https://discord.gg/tqDCZzx
Feel free to come in and say Hi! 🙂
Suddenly all site links got broken and started leading to an empty page with lone “No SKU!” text. I was afraid site got hacked. An hour of troubleshooting lead to the solution – Just go to Settings-Permalinks and hit “Save ” button – miraculously cured!
TL;DR: When compilation time goes out of hand – prune “uses” sections.
Over the time the game`s EXE compilation time grew longer and longer. Today it clocked at 70sec! Of course codebase has also increased (~350kLoc now), but still it was weird, given that 330kLoc compiled in 12 or so seconds just a few months ago. Such long times are very counter-productive, given that project has to be compiled and tested every now and then during active development.
Delphi is known for it’s super-fast compiler. So I had to check what’s going on.
Thanks to Source-Code-Versioning (which is SVN for the project) I was able to roll-back to older versions and find the one that increased the compile-time from 15 to 68sec. It was made a month ago. Why did it make such a big change – I can’t say. There was nothing special in it, apart from shuffling several files between folder and changing a few bits in “uses” sections. This was a good lead though – I started to check what will affect compilation time between this and previous versions. It seemed like moving files between “uses” sections was the answer. So I did a quick optimization – removing unused units and demoting them wherever possible from “interface” to “implementation” sections. This was the answer! With 10 min refactoring sprints the time dropped down to 36 sec, then to 26 sec, then to 18 sec. I was on the right track.
Now I have returned to the latest version and started optimizing .. An hour later I’m happy to have project compilation time back at lightning-fast 8.5 sec! Praise the fast Delphi compiler! 🙂
P.S. All times are given full rebuild from SSD drive. Every time I did several builds in a row – times were very consistent.