Mount & Blade II: Bannerlord Developer Blog Q&A

Mount & Blade II: Bannerlord's engine has to support large scale battles, open world exploration, and be extremely moddable. To achieve these goals without sacrificing performance too much, TaleWorlds Entertainment decided to create a proprietary engine for Bannerlord. And if you're curious to know how that's working out for them, Gökhan Uras, one of the teams' engine programmers, is answering a number of engine-related questions in this week's developer blog Q&A. An excerpt:

WHAT DO YOU LIKE THE MOST ABOUT BANNERLORD?

“The modding capability of the game. The modding community did wonders with Warband, I can’t even imagine what they will come up with our brand new editor and scripting system. Our editor is very feature rich! It contains smaller tools like a resource browser, particle editor, cloth editor, atmosphere editor, skeleton editor, flora editor, material editor and texture editor. We have a prefab system in place to easily reuse entity hierarchies across scenes. We have a very detailed terrain editing system for painting height maps, texture layers and floras, and you can also easily import height maps and layer weights from outside sources to modify in the editor. We also support real-time reloading of resources to ease our artists’ workflow. Aside from building scenes, modders can add C# scripts to any entity to create any mechanic they want to achieve mod specific behaviours.”

WHAT'S THE MOST DIFFICULT THING THAT YOU SOLVED SO FAR, DURING THE PRODUCTION OF BANNERLORD?

“It is not something I solved by myself but scaling from ~20 people to ~80 people was a really difficult process. We had to change things in order to work efficiently with that many people. We needed to change our version control system and issue-tracking system with our workflow throughout the office.

As an engine team, our code affects everybody in office, from gameplay teams to artists. So we needed to ensure that nobody is affected by our faults. To that end, we implemented an automated test system which rejects the work if anything breaks, before the change goes out to everybody. We needed to add visual tests to the system, which compares screenshots of valid ones and current ones, to catch shading bugs which can be easily overlooked and resurface weeks later. During this period we also established an extremely good QA team, and learned to work with them efficiently to minimise any issues that could affect workflow. It looks easier on paper, but changing any habits in life is a hard process and for working habits it is the same.”

WHAT DO YOU CURRENTLY WORK ON?

“I am juggling a few things these days. I am finalising a very big refactor on the agent rendering system which improved our CPU performance by nearly 15%. I am at the polishing stage of contact hardening shadows for high-end configurations and along with this I am trying to find optimisations to shadow rendering. Also, I am working closely with one of our artist to improve our tree shading and I started to tinker with our editor to improve usability according to feedback we get from our artists.”