Mount & Blade II: Bannerlord Developer Blog Q&A

This week's developer blog for TaleWorlds Entertainment's Mount & Blade II: Bannerlord brings us another in-house Q&A, this time around featuring Burak Dermanlı, one of the engine programmers on the game. If optimization and performance are both things you care about, this latest post does a great job of making it seem like Bannerlord has things on lock in that department. A few snippets:

Greeting warriors of Calradia!

The main advantage of creating your own game engine is that, instead of being a Swiss-army knife (second-best in everything it tries), you can craft it to specialise in what you need it to do. As you know, we created an engine from scratch for Mount & Blade II: Bannerlord. We had many goals when we started working on it, but three of them had top priority: of course it had to do what we needed in order to create a huge sandbox game such as this one, but it also had to be easily moddable, and on top of that, it had to be flexible enough to work on low-end computers. In this week's blog, we talk to Engine Programmer, Burak Dermanlı, one of the people responsible for the engine and its optimisation for all kinds of computers.

[...]

WHAT DO YOU NORMALLY DO DURING YOUR DAY?

“As a programmer, I spend most of my time working on issues that are usually scheduled on a monthly basis. However, working on the engine level requires you to be prepared for any interruption during the day, such as a crashing bug that prevents people from progressing with their work.

Most of my work revolves around particle systems, asset pipeline, cloth simulation and memory management. I implement new features as requested but it can be said that they are almost finalised for Bannerlord needs. Both the particle systems and cloth simulation are extremely optimised so that they can run efficiently on low-end hardware. I sometimes see people’s concerns about these kinds of systems and if they will face a performance bottleneck with the game. There is a psychological fact that if there is something visually attractive on the screen then those elements come under scrutiny when performance problems arise. I have both low-end and high-end GPUs equipped on my rig and I am constantly checking their performance during development. For example, cloth simulation did not take more than a millisecond per frame on low-end hardware in any of the scenes you have seen in our gameplay videos.”

[...]

CAN WE DESIGN OUR OWN PARTICLE EFFECTS WITH THE ENGINE? (FOR EXAMPLE, IF ONE WANTS TO MAKE A “MAGIC EFFECTS” OR BOIDS BIRD FLOCKS IN HIS/HER MOD)

“We have a very detailed particle editor created from the feedback given by our artists. It is possible to create an infinite number of different particle effects with this editor by defining emission, movement and visual properties of the desired particle effect. You can use one or more emitters in a single effect (which might have a parent-child relationship) to create complex effects like a flying stone creating a dust trail, or as mentioned, a magic effect. But currently, we don’t have a built-in flock algorithm implemented in the particle system. However, you can implement it yourself with our scripting system.”