Greetings warriors of Calradia!
Bannerlord has many dynamic systems for maintaining most gameplay mechanisms. Horses are a case in point. They are produced in certain villages so there is a steady supply being created each day. These are then purchased (or sometimes looted) by passing armies or carried to town markets to change hands. Horses are also regularly removed from the game when cavalry troops eventually die or desperate parties slaughter them for food.
However, this dynamism brings its own unique challenges. How do we make sure that all these systems stay more or less balanced and working as intended, even after the elapse of many in-game years? In order to help designers with this, our engine team added a nice little utility for creating heat maps.
So, what are heat maps? Heat maps are a visual representation of the paths and active areas that parties traverse, as well as, the flow of goods around the campaign map.
It may seem limited at first glance, however, this is actually quite a powerful tool that allows us to identify issues with AI behaviour, in addition to, map design and balance. Every journey that armies, parties and caravans take can give us a valuable insight into what is happening in the game, highlighting any potential issues or confirming that our design is working as intended. With this data, we are able to make the necessary adjustments and changes to rectify issues, saving time, effort and resources in the process!
But, rather than trying to explain how we process and evaluate the information, it would probably be best if we gave you a couple of examples directly from the game:
Flax is a raw resource that is produced in the villages of northern Calradia. As the map below shows, there is a large concentration of flax in those areas, with little spread to other regions. This is because flax is a low-profit item and there is little sense for traders to invest in it. However, linen, a good that is produced using flax, is widely dispersed throughout Calradia. This is because linen has a much higher value than its unrefined flax form and, additionally, because it is in high demand throughout the continent.
We have a number of different types of bandit parties that roam the various regions of the map, but the Steppe Bandits were one that particularly stood out for us.
When we mapped their movements, we saw that they were unable to penetrate into the interior of the Khuzait territory. As we checked their paths and the areas that they concentrated in, we started to get some clues as to what was happening. One of the reasons was the placement of Khuzait castles. Bandits tend to prey on the weak, as is their nature. The placement of settlements in the region was giving the bandits few options when it came to plotting a route to undefended villagers. The bandit parties were actively trying to avoid the hostile Khuzait lords, which is exactly what we want to happen, however, this often resulted in long journeys around mountain ranges to reach their destination. This issue was compounded by the fact that Khuzait lords tend to have smaller, more mobile parties, which are quite adept at chasing down bandits. In the end, this resulted in a strange loop, quite literally, with the bandits running around in circles without actually achieving anything. In this instance, slightly changing the placement of settlements and hideouts resolved the issue.
As you can see from the given examples, the tool is really quite valuable to us in ensuring that our systems are working as intended. This is exactly why we will be expanding this tool to work with scenes too. And not only for singleplayer, but also to help us refine the design and balance of our multiplayer maps!
In next week’s blog, we talk to 3D Artist, Gökhan Şahin. If you have any questions you would like to ask him, please leave a reply in the comments and we will pick one out for him to answer!