Greetings warriors of Calradia!
Mount & Blade’s deep and intuitive combat system is one of the core features of our games. Our directional attacking and blocking mechanic is intuitive in the sense that it is easy to pick-up, and deep in that it allows players to continuously develop and adapt their own fighting style through the use of feinting, chambering and good footwork (including a well-timed kick!).
In previous Mount & Blade games, there is, however, an element of randomness in combat. Damage is calculated using a number of variables and weapons are hardcoded to deal a randomly selected amount of damage from a predefined range (before other factors are added to the equation, such as the attacker’s weapon proficiency, the speed of the combatants and the armour value of the unlucky soul on the receiving end of an attack). We feel that, for the most part, this system works well, but, there is still that one part of the damage calculation that can’t be controlled or reliably predicted by the player.
In Mount & Blade II: Bannerlord, we wanted to improve this aspect of combat to make it both fairer and easier for players to understand, especially in a multiplayer setting. We decided that the best way to go about this would be to make a physics-based system which would take into account the physical properties of a weapon and use a simulation to derive the combat stats, such as weapon speed and damage. We hope that this system will balance weapons in a more natural and realistic way.
Another advantage for the physical stat calculation is that it can be used in our new weapon crafting system. The physics-based system fits naturally with crafting because all we need to do is to acquire the physical properties of crafted weapons and then feed these into the stat calculation system. This will, in turn, provide us with the stats for the weapon.
When crafting a weapon, the player first selects a template. A sword, for instance, is made up of a blade, a guard, a grip and a pommel. Each of these parts may give the weapon certain bonuses or penalties outside of the physics simulation (a particularly large guard may increase the wielder’s hand armour, for example). Each part also has certain physical properties that are used for calculations. Once the player selects each part, we combine the physical properties of the parts to make up the overall properties of the weapon.
These properties are:
- Length: Determines the reach of a weapon.
- Mass: This is important for thrust attacks and is used to determine the speed and power of thrusts. Light weapons are faster, but have less energy and cause less damage. Making the weapon heavier will slow it down but also make it more powerful, up to a point. If too heavy and too slow, a weapon will make contact with your opponent before it could reach its full speed, making it feeble and ineffective.
- Weight Distribution and Inertia: This is important for swings. Unlike thrusts, swing speed is affected not only by weight but also by the distribution of weight around the pivot point of the swing. Increasing the weight may increase the damage (within certain boundaries), but, it will also increase the inertia, meaning that more energy would be required to achieve sufficient speed on impact. Thus, these weapons will typically be slower and increasing the weight will only positively affect damage up to a certain point.
After deriving these physical properties, we then use them to determine the weapon’s swing and thrust speed. Doing this with perfect precision would be rather difficult, since we would have to take into account all the motions a fencer goes through, all the muscles that are involved, their performance limits, etc. We simplify all of this with a basic model where we assume the fencer is made up of three simple motors. One motor representing the legs and hips, one for the chest and shoulder, and one for the arm and wrist. We then run a simulation where the motors work together to speed up the weapon until it hits the target. (Actually, we run two simulations, one for swing and one for thrust.) After these steps, we get the length, mass, swing and thrust speed of the crafted weapon. But, there is still the rather interesting problem of determining its damage...
Join the conversation and comment on the forums! (140 comments)