Greetings warriors of Calradia!
One of the most important (and complicated) tasks during the development process of Mount & Blade II: Bannerlord was to develop our engine. Using a proprietary engine instead of licensing an existing one might look like an unnecessary complication, but it’s actually vital for what we want Bannerlord to be. For a start, the game would not be a moddable as it is going to be without it! Our engine programmer Gökhan Uras explains a bit more about the engine of Bannerlord in this week’s dev blog.
NAME
Gökhan Uras
FROM
Ankara, Turkey
JOINED TALEWORLDS
2012
EDUCATION
B.S, Middle East Technical University, Computer Engineering.
OFFICIAL JOB DESCRIPTION
Engine Programmer
WHAT DO YOU NORMALLY DO DURING YOUR DAY?
“I am mostly at my desk, coding and debugging. My main focus is post effects pipeline, general shading and CPU performance. I also do lots of tooling for our editor. I constantly check our issue tracker to see if there is anything that needs tending to right away. I am also in constant communication with my team. We always strive to achieve higher quality in our engine, to that end we always collaborate with each other and the feedback from the rest of the team is always invaluable. On top of that, I am always trying to implement new features for our artists to achieve the visual quality that they desire from our engine.”
Temporal Scalable Ambient Obscurance (TSAO)
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.”
Contact Hardening Shadows (CHS)
WHAT FACTION DO YOU LIKE THE MOST IN BANNERLORD?
“Battania because I really love the aesthetics of their architecture and moody atmosphere of their towns.”
WHAT WAS THE MOST DIFFICULT CHALLENGE IN MAKING THE ENGINE FOR THE GAME?
“The main challenge in making an engine for Bannerlord was giving players huge battles with hundreds of characters and without sacrificing graphical quality or performance. But it is also the main reason that we created an engine in-house. Another of the main challenges was ensuring that all of our features support modding. Modding is very important for the Mount & Blade series so we needed to give modders the appropriate tools.”
IS THE ENGINE COMPLETELY FINISHED OR ARE CHANGES STILL BEING MADE TO IT?
“We are still making changes; we are constantly trying to improve visuals, performance, usability, modding etc. I would call the current state of the engine as almost finished, so you should perceive these changes as releasing updates and patches to it in-house. We built a very solid foundation over the years, so adding features and improvements is not disruptive to development. We will try to increase the quality of the engine even after release, and we will definitely use it for all projects for the foreseeable future.”