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.
OFFICIAL JOB DESCRIPTION
Lead Programmer (Game Engine Team)
WHAT DO YOU NORMALLY DO DURING YOUR DAY?
“When I arrive at the office, the first thing I do is check my mail. I am in constant communication with each department of the development team to ensure that any issues relating to my work are highlighted. Then I proceed to check any newly opened reports from the QA team, who work tirelessly to find any problems with the game and the engine. Following that I check the previous night's automated performance test reports, which we use to gather data over a period of time to help us monitor game stability and to check the impact on performance that any recent changes have had. After gathering all of this information I relay it within my team so that we can resolve any problems and make improvements to the engine.
Throughout the day, I attend code design meetings, work on code reviews and write additional code in my spare time. I also create my own performance profiles for the game using various configurations. For example, I will test huge infantry sieges to record the performance of a very specific situation. I will then repeat the tests using cavalry or ranged units to track any changes.”
WHAT DO YOU LIKE THE MOST ABOUT BANNERLORD?
“My happiest moments while developing the game are when a new optimisation is working and I see the FPS counter rise. We are striving to make the game run as smoothly as possible on a wide range of systems and it gives me great satisfaction and pride in my team to see how the game is constantly improving.
Visually I really enjoy our new cloth simulation system, but I must admit that the particle effects in big battles are my favourite.”
WHAT'S THE MOST DIFFICULT THING THAT YOU SOLVED SO FAR, DURING THE PRODUCTION OF BANNERLORD?
“Improving stability, performance and visual quality at the same time, without sacrificing any of them. We devised a way to handle this using a detailed integration system, lots of automation, and with our hard working QA team!”
WHAT DO YOU CURRENTLY WORK ON?
“Currently, I am checking and improving the performance of medium to very low hardware configurations. It is important to us that players get to experience a smooth and enjoyable gameplay experience. We are constantly trying to refine the engine to ensure that this is the case.”
WHAT FACTION DO YOU LIKE THE MOST IN BANNERLORD?
“My favourite faction in the game would have to be Khuzait, for cultural reasons.”
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 <1 second loading times on these bigger scenes."