Search Unity

Damage systems

Discussion in 'Game Design' started by SparrowsNest, Dec 20, 2018.

  1. SparrowsNest


    Apr 6, 2017
    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):
    1. 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):
    1. 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?
    Last edited: Dec 20, 2018
  2. newjerseyrunner


    Jul 20, 2017
    There is a very well balance game that has armor like that: DOOM.

    1-100% armor reduced damage taken by 1/3
    101-200% armor reduced damage taken by 1/2
    201-300% armor takes all of the damage

    I adopted these values for my own armor system.
    Antypodish, xVergilx and SparrowsNest like this.
  3. SparrowsNest


    Apr 6, 2017
    If its good enough for id its good 'nuff for me.
    Might just adopt the going over "100" percent.

    Any thought on the overshield?