Mount & Blade II Bannerlord
Project Overview
Top Summary: Professional internship as a Software Engineer at TaleWorlds Entertainment, contributing directly to the core engine and gameplay systems of Mount & Blade II: Bannerlord during its intensive development phase.
| Quick Stats | Details |
|---|---|
| Role | Intern Software Engineer |
| Duration | Sep 2017 - Feb 2018 |
| Stack/Tools | C++, C#, TaleWorlds Proprietary Engine, Visual Studio, Perforce (VCS), Internal Profiling Tools |
| Link | Official Bannerlord Website |
1. The Challenge
During the development of a title as massive as Bannerlord, the primary challenge is balancing high-fidelity simulation—involving thousands of individual agents—with stable performance across various hardware configurations.
- Problem: Core engine subsystems required optimization to handle the increased complexity of real-time AI decision-making and physics without compromising the frame rate.
- Goal: To implement and optimize engine-level C++ components and gameplay C# scripts that are modular, maintainable, and performant enough for a global commercial release.
2. My Solution & Technical Approach
Working within a professional studio environment, I focused on high-performance code and official API development using the studio’s native source code.
- Engine Development (C++): Focused on performance-critical subsystems. I worked on optimizing low-level engine code to ensure efficient memory management and CPU utilization during large-scale battle simulations.
- Gameplay Systems (C#): Developed and refined core gameplay mechanics using the studio’s internal framework. This involved writing the official logic for NPC behaviors and world interactions that would later be exposed to the modding community.
- Architecture: Adhered to strict studio standards for modularity. By keeping engine-level optimizations in C++ and gameplay logic in C#, we maintained a clear separation of concerns that allowed for faster iteration on game balance and simulation logic.
3. Implementation & Overcoming Obstacles
- Hardest Challenge: Navigating and contributing to a massive, multi-million line proprietary codebase where minor changes to an engine subsystem could have cascading effects on physics, AI, or rendering.
- Resolution: I utilized internal profiling and debugging tools to identify bottlenecks in the real-time AI and engine subsystems. By focusing on performance-oriented programming and rigorous testing within the studio’s development pipeline, I ensured that optimizations did not introduce regressions in the game’s complex sandbox.
4. Results & Conclusion
- Measurable Impact: My contributions to the AI and engine subsystems directly improved the game’s scalability, helping the engine handle the dense computations required for Bannerlord’s signature 1,000-unit battles.
- Lessons Learned: This role provided a masterclass in professional game development. I learned how to work within a large-scale version control system (Perforce), the importance of writing “mod-friendly” official code, and how to optimize algorithms for real-time applications where every millisecond counts.