Greetings warriors of Calradia!
Mount & Blade II: Bannerlord’s singleplayer campaign takes place in a vast sandbox with numerous systems working together to provide players with a deep and engaging gaming experience. Bringing these systems together and ensuring that they work alongside and complement each other is no small task. And with multiple programmers working somewhat independently on each system, an additional layer of complexity is added to the mix. This is where Ömer Sarı steps in. It is his responsibility to coordinate and organise the campaign team while ensuring that the programming work is of a consistently high standard.
Computer Science, Bilkent University
OFFICIAL JOB DESCRIPTION
Lead Programmer (Campaign Team)
WHAT DO YOU NORMALLY DO DURING YOUR DAY?
“I do code reviews and small meetings with fellow team members to ensure good code quality in the campaign project. Other than that, there are times when I attend design meetings to discuss the technical details of game features. Every couple of weeks I organise internal single player tests and review the feedback from my colleagues.
I try to implement new features and/or solve bugs with the rest of the time I have. The feature which I work on usually varies depending on the priority of the task and the immediate needs of the campaign sandbox.”
WHAT DO YOU LIKE THE MOST ABOUT BANNERLORD?
“I like being immersed in an alive and ever-changing Calradia; The game is made up of complex systems running in the background, such as the trading system, resource production, prosperity, loyalty, etc., and I’m particularly interested in how these systems can affect each other. Raiding villages and looting caravans in an area can hinder the production of a certain trade good, which in turn can have an impact on the economy of a faraway kingdom.
I like the ability to directly change the living world around you through your actions.”
WHAT'S THE MOST DIFFICULT THING THAT YOU SOLVED SO FAR, DURING THE PRODUCTION OF BANNERLORD?
“I gained the role of campaign lead programmer a few months ago. Before that, I was mainly writing code all day long. Now, I also have to be available to other campaign team members or for design meetings, code reviews, and so on. So, currently, my biggest challenge is to manage my time in a way that allows me to take care of my team, review their code and yet still find time to create content myself!”
WHAT DO YOU CURRENTLY WORK ON?
“I am working on optimising the pathfinding usages by campaign parties, as well as, translation/localisation support.
We have a lot of parties moving around the campaign map, with each of them constantly calculating the distance between their position and their potential target’s position to figure out if they should really go to that target. I am trying to increase the precision in their calculations while improving performance at the same time.
Each language has its own needs and rules. Our text system enables the player’s attributes and actions to change the way other characters address the player. For example, if the player is an honourable king with a family, his wife will address him as husband, his foes will address him with respect, etc. Our text system is able to replace specific parts of the text to achieve this role-playing element, and I am trying to ensure that this system works for every language.”
WHAT FACTION DO YOU LIKE THE MOST IN BANNERLORD?
“I like Khuzaits the most. I like their tribal nature and their troop tree. Watching your enemies getting crushed and trampled under hordes of mounted men is always a spectacle. Also, horse archers always tend to make things easier!”
HAVE THERE BEEN ANY RECENT ADDITIONS TO THE GAME THAT HAVE PROVEN MUCH MORE DIFFICULT TO IMPLEMENT THAN THEY WOULD SEEM?
“It is usually difficult to predict what will be affected by a new feature since the project is fairly large and complex. Any new feature that is being added, no matter how small it is, may require additional work to remove any discrepancies with other systems. Luckily, we are not adding as many features as before.
One recent example that I can give is our work on the party speed and inventory mechanics. When we tweaked the penalty for parties transporting cargo beyond their capacity, we discovered that a range of AI parties tend to go beyond their limits. This was perfectly fine with the previous (very forgiving) set up but caused them to slow down excessively after the change. Of course, we could have simply reverted the changes, but that would leave the capacity system feeling rather toothless. And maybe worse, it would not address the underlying problems. So instead, we set out to find a better solution (or several in fact). In some cases, like villagers transporting goods from their home to the town, this simply meant adjusting the frequency of their deliveries to better match the rate of production. In other cases, like caravans, we introduced the ability to purchase additional pack animals. However, even with a number of eventualities addressed, we felt that there should be a failsafe in place. After all, what if a party acts according to plan but is attacked and loses a lot of men? Suddenly, they may be carrying goods well beyond their capabilities. So, currently, we are looking at if and when a party should be able to rid itself of some of its cargo, prisoners... or wounded men.”