I've been experimenting with different damage systems in the past week and would like you opinions on both of them. The mechanic is for ranged combat. The first iteration was a simple Code (CSharp): damageTaken = Mathf.Max(damage - armor, 0); Just subtract the armor value from the damage and apply that, I found this weird to balance and I didn't like the scaling of it at all. The second thing I tried was making the value of "armor" in the range of 0-1 and doing like so: Code (CSharp): damage -= (damage/2) * armor; meaning that an armor value of 1(the maximum) block half incoming damage, value of .5 block a quarter damage, etc. This is my preferred solution. Now another factor here, when the units in my game take damage to their health they get a "debuff" of sorts, they more they are damaged the slower they go relative to their max speed. Part of the armor( besides the "armor" value ) each unit have "armor durability" that acts as an overshield for the health.(taking damage to the armorDur doesn't effect the speed) When you run out of durability on the armor it's only half as effective(armor value of 1 becomes .5, value of .5 becomes .25, etc.) *armor durability is per-match and resets every time, it's not like RPG games do where the item breaks forever How do you guys feel about this system?