An examination of randomness in Heroes of Newerth
An examination of randomness in Heroes of Newerth
-----------
First published June 12, 2010. Revised 30 July, 2010.
Introduction
In this essay I will examine the different kinds of randomness involved in Heroes of Newerth (=HON). Later I suggest some ways to reduce or remove the effects of randomness on gameplay.
Randomness affected elements
Randomness adds a luck factor to a game. A player is lucky, if a random element comes out in his favor. The randomness that I am talking about in this essay is the kind that is uncontrollable by players. I am not talking about any other kinds of randomness. For instance, as when a player teleports to safety because the players of the other team lost sight of him in the woods. Often, such players are called lucky. I am not interested in that kind of luck in this essay.
Randomness affected elements in HON
In this section I will document all elements of HON that are affected by randomness. I may have missed some. If I did, please notify me.
Hero abilities
In this section I will document the randomness elements in the abilities of heroes. I will do that by mentioning the hero name in headline 3 (in bold). The ability name in headline 4 (in italic). I will then copy (if possible) the description of the skill from the official homepage. Sometimes I will omit irrelevant parts of the description. All text that is copied or almost copied is placed in an indentation one level to the right. Text not placed in a such indentation are my comments on the copied text which is usually clarification or notes about whether something is random or not.
Swiftblade
Counter Attack
Extensive training in melee combat has allowed Swiftblade to perfect the art of countering enemy attacks, granting a chance that he will retaliate every time an enemy hero attacks him. On Attack 15 / 20 / 25 / 30% chance to counter-attack if attacker is an enemy hero. “On attack” should be understood as “when attacked”.
Way of the Sword
Swiftblade's unsurpassed skill at the sword has made him a master of hitting where it hurts, giving him a chance to critically strike opponents with each attack. 10 / 18 / 26 / 36% chance to do 2x damage.
Swift Slashes
Swiftblade attacks random nearby targets with such speed that he appears to teleport to them. Targets are randomly chosen, yet it is possible to teleport to the same target multiple times. Teleports self to random targets 3 / 5 / 8 times, dealing 150 to 250 Physical damage to each target. Applies Swift Slashes to self for duration of activation.
Moon Queen
Multi-strike
The Moon Queen's skill with her Luna Shuriken allows her to bounce it from her primary target to hit additional foes. Activation When toggled on, attacks on Hero targets will only bounce to other visible enemy heroes. On Attack Attack bounces up to 1 / 2 / 3 / 4 times to enemy units and buildings. Deals 35% less damage per bounce. I'm not sure whether this feature is random or not, but it may be. I'm guessing that it works in either of these two ways: 1. The shurikens bounce to a random target within a set radius, 2. It bounces automatically to the nearest target in a set radius.
Moon Finale
Casts 4 / 7 / 10 Moon Beams on random targets in radius. Maximum of 4 hits per target. Moon beams deal 300 damage per hit.
Wildsoul
Summon Beardulon
Wildsoul summons his pet bear, Beardulon Activation Summons Beardulon at target location. Beardulon cannot be summoned if he is currently active. Beardulon has the ability to carry items. -Increasing the level of the ability grants Beardulon more health and armor -Level 1, Beardulon learns the Return ability -Level 3, Beardulon learns the Entangling Claws ability. -Level 4, Beardulon learns the Demolish and Magic Resist abilities. There is a cooldown of 5 seconds on the Entangling Claws ability. It is not documented what the % chance of entangling an enemy is.
Zephyr
Wind Shield
Zephyr uses his control of the wind to create a protective barrier around himself, increasing his evasion and speeding him up. The barrier also has a chance to redirect incoming projectile based attacks back at the attacker. Activation Applies Wind Shield to self for 10 / 15 / 20 / 25 seconds. On Attack Applies Wind Shield to self for 3 seconds when Zephyr lands an attack This ability contains Evasion properties. Evasion properties do not stack. Instead, you will automatically use the Evasion from the item or ability that grants you the highest chance to evade. Wind Shield Effects 6 / 9 / 12 / 15% Melee Evasion 10% Movement Speed 6 / 9 / 12 / 15% chance to redirect projectile based attacks back at the attacker.
Chronos
Rewind
Chronos steps back through time when damaged, giving him a chance to undo damage taken quickly. On Damage 10 / 15 / 20 / 25% chance to heal damage taken. Heal occurs at a rate of 25% of maximum health per second.
Scout
Disarm
The Scout's mastery of close range combat allows him to occasionally disarm an opponent, then take advantage of the opening with a devastating attack. On Attack 10 / 15 / 20 / 25% chance to disarm opponent for 1 seconds and deal a 1.25 / 1.5 / 1.75 / 2.0x critical strike. Once disarmed, opponents cannot be disarmed again by the scout for 2 seconds.
Valkyrie
Call of the Valkyrie
Valkyrie calls forth several Battle Maidens to damage nearby enemies. Activation Deals 75 / 150 / 225 / 300 Magic damage to targets in radius around self. Deals an additional 37.5 / 75 / 112.5 / 150 Magic damage to one random target in a 200 radius.
Blacksmith
Chaotic Flames
Fireball: - When cast, has a {25,40,50}% chance to impact at least twice, {0,20,25}% chance to impact at least three times, {0,0,12.5}% chance to impact four times. Frenzy: - When cast, has a {25,40,50}% chance to cast twice, {0,20,25}% chance to cast three times, {0,0,12.5}% chance to cast four times.
Glacius
Glacial Downpour
Glacius showers the area around him with shards of ice. The shards will randomly strike around Glacius, slowing the attack and movement speed of nearby enemies and dealing intense damage to them. Activation Spawns an Ice Shard every 0.1 seconds at a random location within radius for 4 seconds or until ability is cancelled. Applies Glacial Freeze to targets within a 200 radius of where an Ice Shard impacts and damages them for 105 / 170 / 250 Magic damage.
Voodoo Jester
Acid Cocktail
Voodoo Jester throws a wretched mix of cursed chemicals at an enemy, stunning them and nearby units one after the other. Activation Deals 75 / 100 / 125 / 150 Magic damage and stuns target for 1.5 second on heroes and 5 seconds on creeps. Bounces 2 / 4 / 6 / 8 times. Bounces deal no damage to heroes and stun for 1 second. It seems that the target for the next bounce is chosen randomly within some radius.
Torturer
Impalement
The Torturer constantly summons many blades around him for a duration, impaling random enemies and structures near him. Activation Deals 9.375 / 18.75 / 28.125 / 37.5 Physical damage to a random target in radius every 0.25 seconds for 8 seconds, for a total of 300 / 600 / 900 / 1200 Physical damage.
Plague Rider
Plague Carrier
The Plague Rider lets loose a Plague Carrier towards an enemy. The Carrier deals damage to the target it lands on before traveling to another nearby target. Any enemy near someone hit becomes Infected. Activation Deals 280 / 370 / 460 damage to the target, bouncing to another enemy within 600 units. Bounces 7 times. The target is apparently chosen randomly within the radius.
War Beast
Summon Hellhounds
War Beast Summons forth Hellhounds from the underworld to attack his enemies. Activation Summons 2 Hellhounds for 55 seconds. Hellhounds have 400 / 475 / 550 / 625 Health, deal 17 / 27 / 34 / 43 to 18 / 30 / 40 / 49 Physical damage per attack, and have an attack cooldown time of 1.25 seconds. Their attacks have a 0 / 30 / 30 / 30% chance to do 1.5x normal damage.
Pharoh
Hellfire
Pharaoh conjures plumes of fire around him for a short duration, hitting random nearby enemy targets, damaging each and stunning them briefly. Activation For 10 seconds, impacts a random target in radius every 0.75 seconds, dealing 10 / 30 / 50 / 70 Magic damage and stunning them for 0.1 seconds.
Legionnaire
Whirling Blade
The Legionnaire's skill with a Battle Axe is unrivaled. Every time he is attacked, he has a small chance to perform a Whirling Blade maneuver, which damages all nearby enemies. On Attack 17% chance to damage enemies in 300 radius for 100 / 125 / 150 / 175 when attacked. “On Attack” should be understood as when attacked.
Rampage
Horned Strike
There is a chance Rampage's rhino unleashes a devastating Horned Strike when he begins an attack, doing bonus damage and pushing then enemy backwards. On Attack 17% chance on attack to stun and push back the target 140 / 180 / 220 / 260 units over 0.95 / 1.15 / 1.35 / 1.55 seconds, dealing 25 / 50 / 75 / 100 bonus Magic damage.
Pestilence
Gore
Pestilence gains a chance to stab an enemy unit with his frontal horn when attacking, causing them to take some additional damage and be stunned briefly. On Attack 10 / 15 / 20 / 25% chance to deal 40 / 50 / 60 / 70 bonus Magic damage to target and stun for 1 second.
Maliken
Possession
Maliken allows himself to become possessed, transforming him into a full daemon temporarily. While in this form, Maliken's attack becomes ranged and he attacks faster. Activation Applies Possessed to self for 30 seconds. Applies Feared to enemy heroes in a 400 radius for 0.75 / 1.25 / 2 seconds. Possessed Effects +20 / 40 / 60 Armor for the first 2 seconds, decreasing to +0 armor over the next 5 seconds.\n\nAttack Type changes to Ranged, with a range of 550.\n\nAttacks splash to nearby units.\n^y50 / 75 / 100%^* Splash in a 75 AOE\n^y35 / 50 / 65%^* Splash in a 200 AOE\n^y20 / 25 / 30%^* Splash in a 350 AOE Feared 40% Movement Speed Perplexed Silenced Disarmed Lose character control, running around in fear As far as I can tell. The movement caused by Feared is random.
Runes
A rune spawns every two minutes at a randomly chosen location from two possible. The type of rune spawned is random but is one of the following: Regeneration, Double-Damage, Illusion, Invisibility or Haste.
Neutral creep spawns
Neutral creeps spawn in the forest at 0:30 and afterwards at every whole minute (= at xx:00). The creeps spawn in camps located in the woods at each side of the river in the middle. There is an easy camp, two moderate camps, two hard camps in each team's large forest. There is also an ancients camp on the other side of the road. Each spawn has a number of different creeps that can spawn there with varying difficulty. Some slow, some disspell buffs, some has poisonous attacks, some stun, some are more numerous than others, some do more damage than others and some are magic immune. Many heroes have problems (especially Zephyr and Tempest) killing the magic immune creeps and they are often avoided in the early game. Some heroes (Zephyr and Legionnaire) benefit from there being many creeps at a spawn location.
Damage intervals
All heroes, all creeps, and all towers (but maybe not the well/tar pit) do damage chosen from some interval. The exact damage is seemingly chosen at random in the interval. Sometimes this matters more than others. Especially in the case of last-hitting it matters a lot as one often fails to get a last hit if one gets a low damage number on the interval. Damage intervals are common to many games. Some games, however, feature ways to reduce the randomness introduced by such intervals. Team Fortress 2, for instance, has a server-side variable where one can disable the intervals and use instead a fixed number on all hits.
Game modes
Banning modes
One might think which heroes are banned is a randomness factor, but it is not. It is controllable by players though, of course, only a single player.
Draft modes
Which heroes are selected for the game is randomly chosen.
Force random
Obviously the heroes are here selected at random.
Items
In this section I will document randomness elements in items. I will do that by copying the relevant description text from the official homepage. Item names are in type 3 headlines (in bold). The copied description is placed in an indentation one level to the right as in the Hero Abilities section. Any text below the text in the indentation are my comments.
Iron Buckler
60% chance to block 20 attack damage. Only 10 damage is blocked for ranged heroes.
Halberd
On attack. 15% chance to deal 40 physical damage to target.
Snake Bracelet
25% evasion.
Helm of the Black Legion
70% chance to block 40 attack damage.
Riftshards
10% chance for 1.8 / 2 / 2.2 / 2.4x critical strike.
Savage Mace
On attack. 35% chance to deal 100 physical damage to target and stun for 0.1 seconds.
Wingbow
30% evasion.
Brutalizer
25 / 10 (for melee / range) chance to stun for 1.4 seconds.
Thunderclaw
20% chance to cast Chain Lightning on target and two additional targets on attack. Deals 150 magic damage. Additional targets are seemingly chosen randomly within a radius.
Charged Hammer
20% chance to cast Chain Lightning on target and two additional targets on attack. Deals 200 magic damage. On activation casts Charged Up on target. When attacked with Charged Up on self, one has 20% chance to do 200 magic damage to the attacker and two nearby targets. As with above, the additional targets seem to be chosen randomly within a radius.
Other randomness elements
Kongor
Kongor has a bash ability.
Uphill attacking
Attacking a target uphill gives a 20% chance to miss.
Discussion of how to change randomness factors into non-random factors
There are mainly two kind of randomness abilities: First, skills that has a % chance to activate on a single target per hit/attack; single target abilities. Second, skills that target a random target in some radius; random target abilities.
Single target randomness abilities
One way to change critical hits based solely on chance (based on some % to get a critical hit) into a non-random element, is to remove the % part and set a necessary and sufficient condition to get the effect. Two examples of this. First, in a recent patch, Chronos's bash ability (Time Freeze/Curse of Ages) was changed from having a chance to bash the opponent to bashing every 4 hits. 0.1.66: [...] Time Freeze reworked: now Curse of Ages -Steals 1/2/3/4 agility per hit, debuff lasts 10 seconds. -The 4th consecutive hit on a target stuns it for 1 second during which Curse can no longer add charges to the target or build towards a stun. -Does not stack with Brutalizer. -Every action allies take while in Chronosphere is slowed by 90% (MS, AS, CS). This value changes to 80% with Staff of the Master. (source) Second, Night Hound's critical hit ability (Backstab) has the condition that it only works when Night Hound is attacking a target from behind. This is unlike the similar hero, Scout, 's critical ability (Disarm). Interesting conditions for abilities are:
Activate if and only if (iff):
Target has a higher/lower average/min/max damage than self
Target is higher/lower/equal in level to self
Target has more/less current/max hp/mp than self
Target is facing you
Target has recently attacked a teammate of your
One more examples of such conditions in use. Target is not near any ally is used in Sand Wraith's critical ability (Deserted).
Random target abilities
A way to change these is to introduce some condition for how they target players. Examples are:
The nearest/farthest player
The player with the most/less current hp/mp
The player with the most/less max hp/mp
If we think of Plague Rider's ultimate (Plague Carrier) these will have different effects:
Targeting the nearest player will cause the ultimate to bounce faster and longer. The opposite effect for the farthest player.
If targeting the most current hp, then it will result in less kills from the ultimate, however the team will take more damage in total (supposing that any damage that is in excess is reduced to 0). If the most hp, then it will result in more kills. Clever positioning can make the ultimate stop before hitting 7 times.
If targeting the most max hp, then it will result in bouncing a lot between high hp heroes (say, two str heroes) making this ultimate easier to counter with good positioning. If targeting the less max hp, it will result in bouncing between agi/int heroes more, scoring more kills. Giving these heroes magic armor (which does not give more max hp) then will result in a more ineffective ultimate (in total damage done after armor reduction). It will be easier countering this ultimate with clever item builds (the two lowest max hp get Headdress/Idol).
Runes spawns
Instead of having rune types random, one could have them spawn in sequences. Instead of having rune spawn locations random, one could have a new spawn each time at alternating locations. This is easily done for runes in a way that is easy to remember because there are five different runes that spawn every 2 minutes. Players merely have to remember the last digit to know which rune will spawn. Assuming that: 1. that bot is the first location, 2. that the sequence is Double-Damage/Illusions/Regeneration/Invisibility/Haste, then it would go like this: Location Time (in minutes) Rune Bot 0 Double-Damage Top 2 Illusions Bot 4 Regeneration Top 6 Invisibility Bot 8 Haste Top 10 Double-Damage Bot 12 Illusions Top 14 Regeneration Bot 16 Invisibility Top 18 Haste To avoid the the spawns repeating, one could make rune spawns depend on some condition. An interesting condition is that it spawns the place where all the players are the closest to at average. This means that players could have the rune spawn near them by clever positioning. For instance, suppose that in the 13th minute, 4 players on a team are out ganking and have run out of mana. They notice that in 30 seconds, a regeneration rune will spawn (because the last digit is 4), so they all go to the nearby rune spot. By being so close to the spot, the reduce the average range to that rune spawn area a lot, thereby increasing the chance (seen from their perspective, it's not a randomness factor in the relevant sense, the reason for the probability is that they don't know where the entire other team is) that the rune will spawn there.
Creep spawns
Similar to the sequence idea with runes above, creeps could spawn in such sequences, or the special type of creep could spawn for each 10 minute interval. For instance, by having the weakest creeps spawn in the first 10 minutes of the game. This would remove the randomness factor of getting lucky with the creep spawns as, for instance, Zephyr (in which where you want the group of 5 weak enemies, not the group of 3 with a slow debuff).
Uphill attacking
One way to remove the randomness here is to decrease the damage done uphill instead of having a 20% chance to miss. In the big perspective, this will result in the same amount of damage, so there will still be a penalty by attacking uphill but it is no longer random and can be taken into account by skilled players. For instance, when a player is last-hitting uphill, a good tactic is to wait a bit longer before attacking the creep since one's attacks will do less damage.