Mount & Blade II: Bannerlord Developer Blog Q&A

Murat Türe, the Lead Programmer of the Mount & Blade II: Bannerlord's engine team answers a number of question in the latest developer Q&A on Steam. He talks about his duties as an engine programmer and compares Bannerlord's engine to that of the original Mount & Blade. An excerpt:

Greetings warriors of Calradia!

A game engine is one of the core components of a computer game. Licensed game engines tend to offer a flexible approach to game development by providing a variety of options and features for a wide range of genres. However, developing your own game engine allows you to create exactly what you need for the task at hand. Granted, it is a monumental task to undertake, but we feel that the benefits far outweigh the time, energy and financial investments required to produce something which will allow us to achieve our goals and ultimately improve the quality of the final product. Our engine, which was built entirely in-house, focuses on the crucial needs of Mount & Blade II: Bannerlord. It is tailored to helping the game reach its full potential, which is something that would be hard to accomplish with another engine. This is what our engine team tries to achieve. Smooth gameplay, big battles and great visuals are their primary ambition. Murat Türe, Lead Programmer of the engine team, works on making Bannerlord optimised, moddable and huge, while retaining all of the key features which made our previous games so successful.

[...]

HOW WOULD YOU COMPARE THE ENGINE FOR BANNERLORD TO THE ORIGINAL ONE?

“I will try to explain the major improvements with respect to the old engine.

The rendering and postFX system has been revamped. We have a Physically Based Rendering engine which ensures that the materials in the game are visually appealing and consistent. Better Depth of Field, High Dynamic Range imaging, Screen Space Reflection and Ambient Occlusion techniques have been added and optimized. A GPU simulated cloth system has been introduced, (which has a general material system that supports different kinds of meshes,) enhancing the animations and visuals of the game.

Mount & Blade II: Bannerlord relies even more on CPU usage than Warband. Hundreds of characters, more advanced animations, an Inverse Kinematics system, individual AI, formation AI, combat calculations, (which do not change in respect to distance or visibility,) and many other requirements really increase the burden on the CPU. In order to accommodate this, our optimisation efforts are more heavily focused on the CPU. We generally try to use Data Oriented Design, which enables us to achieve high amounts of parallelism and core usage. Currently, 60-70% of the frame is fully parallel, which means it can, and will, use all of the cores of current and next gen CPUs for the foreseeable future, (the old engine generally used to use 1, or at most 2 cores.) This means that as new, higher core count CPUs begin to emerge, Bannerlord will scale well with the new hardware and players will be able to test bigger and denser battles. Currently our aim for battle sizes on current generation high end gaming CPUs is at 800 characters, at 60FPS.

The size of scenes is generally around 4 km square, which is much larger than in Warband, and scene creation is much faster. We developed lots of new editing tools for objects, terrain and flora for the scene designers to use. We have an advanced terrain system which can support up to 16 layers per scene, with no restriction on layers used per node. Also, the designers now have access to a scene upgrade level system, (a scene masking system which is used in siege scenes to allow level 1-3 castles to be placed in one scene,) and a new weather system, (which is used for creating different weather versions of the scene.) With all of the CPU and hard drive optimisations we try to achieve