Posts tagged ‘discussion’

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.

Intro

I have a couple of thoughts related to discussing things on the internet that I want to share. These thoughts are about active networking, being effective and having the goal in mind, avoiding unproductive people etc.

Realization of why one is discussing

First one ought to make it clear to oneself why one is discussing on the internet; What is one trying to obtain? Some are undoubtedly there to “fight” battles for a variety of reasons. Perhaps because they deem it fun or entertaining or to get self-confidence by “slaying noobs”.

But I’ll admit that this is not my primary goal. By primary goal I mean that it is mostly not what I aim to get out of a discussion. I aim to improve my philosophical understanding and have a few laughs on my way there. I suppose that this is many people’s desire. At least, the philosopher type people I like to identify with.

However, this outcome, that is, improving one’s philosophical understanding, does not come easy. One has to learn how to communicate in a useful way. By useful I mean a way that is optimal for whatever one is doing. I’m assuming here that one is trying to improve one’s philosophical understanding in a broad sense, and thus I’ll focus on reaching exactly that. In some cases this can be substituted for whatever subject it is that one is interested in. Some of my points may also hold for other subjects.

Is one in the right place? – Part 1

Discussion on the internet usually takes place in forums. Forums are designed to be a good place to discuss. However, some people like to discuss in other places like comment sections, instant messengers etc. I recommend not using a suboptimal medium to discuss in, such as an instant messenger. The reason why instant messengers are not a good communication tool for discussion is that they emphasize the quickness of the response which is irrelevant for a good argument. Good choices are forums and emails or private messages sent via private message systems. Such systems are usually in place at forums.

The reason that they are good choices is that they allow for easy quoting of others’ words, and they give an overview.

There are also differences between them. Forums are more often used as fight places. When talking “public” people are probably more reluctant to admit that they are wrong in order to avoid losing pride. This is a human trait that ought to be avoided if possible. It can be done by remembering why one is discussimg: To get a better philosophical understanding, not to have a renown internet personality. One can reduce the personality issue by being anonymous, so that the only “person” that loses pride is the name on the screen. If it gets really bad, one can always create a new user and start out anew. Forums are better if one’s goal is to get opinions from many people; Such as getting general comments on some important argument. In-deep discussions can hereafter take place either in the public forum or in private communications.

The advantage of email is that the personality issue is less there; People are less reluctant to admit mistakes when there is only one person that will know. Also keep in mind that e-mails can be used anonymously too. A disadvantage of e-mail or private messages is that the information is not publicly viewable. This means that unless one afterward shares the emails with a third part, others will not benefit from reading the discussion.

Is one in the right place? – Part 2

Though, there are other things than the medium to take into account. There is also the community. This obviously relates to the question of whom one is going to discuss with. One would not want to discuss with people who’s goal is to “fight”, as mentioned earlier. One would want to discuss with people who also share the desire of improving one’s philosophical understanding. Such people can be very hard to come by. One should try to get a good look at the forum discussions to get an idea about the general level of the discussion. Afterward one can answer the questions: Is it worth participating here?; What will I probably get out of it if I participate?

Participation, however, might not be needed. There is no reason to just repeat something that was already stated clearly. One can learn a lot by just reading. Think of it like reading a book where one has the opportunity to write something and change the story. This does not imply that one ought to write something. It might be a good idea just to let it run.

Avoiding unproductive people

This is basic networking. Don’t waste your time with people who will not help you reach your goal(s). This could be, but is not limited to, people who like to “fight”, or people who are too stupid to learn you anything. Stay around productive people. Avoid responding to people who are unproductive. If you wish, you can reply that you find them unproductive and thus do not want to engage in discussion with them. In this way it will seem as if you don’t have any counter-arguments, though this shouldn’t matter much to one as it is only a personality issue which I mentioned earlier.

The idea of working beliefs

Suppose you want to examine some proposition. How would you go on doing that? One could contemplate it oneself, and then decide what to believe. The problem is that often when one studies something only oneself, then one will probably miss some things, at least one will miss things that are obvious to other people. Some of these things might be critical to the examination of a belief. If one is really interested in truth, then one wants to see the best arguments for all sides. A good way to get familiar with such arguments is to discuss the issue with people who are intelligent and fairly well-read. This method is especially useful if one cannot find a good article or book published on the issue, or that this is too expensive etc.

Discussions on the internet are typically separated into different threads. This gives a very good opportunity to test beliefs. One can start a new thread and then pretend to believe something, and give the best arguments one knows for that specific belief. Others will then, hopefully. supply counter-arguments. After some discussion one can assess the total available evidence and then form more well-researched belief than if one had only examined it oneself.

However, one should avoid testing too stupid beliefs for that might get reasonable people to think that one is a troll or just really stupid, and thus to not respond to posts that one makes in other threads too.

Another advantage with working beliefs is that one avoids the embarrassment of having been proved wrong. One should simply state in the beginning of the thread that one is defending a working belief to see how it goes.

Ignorance

We’re all fallible creatures. When one doesn’t know what one is talking about, one should admit it. Think about how many times you have been wrong in the past. This is good inductive evidence that you will be wrong in the future; What possible reason do you have for thinking that you’ve got it exactly right this time? (I.e. since the last time you changed your beliefs.) It’s a good idea to keep one’s ignorance in mind when discussing. People generally don’t like people who act or write like they know everything already. After all, if you already know everything there is to know about a subject, why are you on the discussion board? To preach your position?

Of course, one ought not to claim too much ignorance either. People who claim to be ignorant about things they clearly know about are lying, and thus untrustworthy. Realize that you’re not superman, you’re not right about everything you believe, but if you set your mind to it, you will improve your understanding and get rid of many of the wrong beliefs that you hold.

Synthesis, cooperation

When discussing some completely new problem, i.e. one that was not hitherto known to the participants in the thread, it is probably a good idea to try to invent a theory together that can solve the problem. Other participants are not your enemies, for all you know, you might end up agreeing with them. Try to cooperate with other people to figure out the situation. There is no reason to try to stand out from the crowd. The majority view is not always correct, but it is not always wrong either.

Writing in a friendly language, mind-reading, psychological explanations

Writing in a friendly language may get you some new friends, reduce hostilities from other participants, and help keep focus on the issue in the thread instead of on personal issues. Friends you earn this way may be helpful in reaching your goals too. For instance, they could offer to proof-read and comment articles you write before you publish them.

Try to avoid mind-reading the other participants. If you need to know their opinion about something, ask them. Wrongly assuming their position is unproductive and happens a lot on forums. It will just inflame things with accusations of “straw man!” flying around.

Try to avoid writing psychological explanations of why people believe what they do. Such explanations often beg the question and are thus unproductive. They also, sometimes, insult the other participants. If you find it very important to tell a particular person why you think they believe what they do, then write it in very friendly language and sent it as a private message or email. Such explanations also derail the thread, moving the attention from the issue to other irrelevancies.

Principle of charity, language

As mentioned earlier, after a long discussion it may happen that you come to agreement with the person or persons that you’ve been discussing with. Many times people get stuck in their language choice or use. One ought to realize that common language is broad and can be used in ways you don’t normally use it. One ought to attempt to understand what then other person believes instead of just (almost mechanically) replying to what they write. Sometimes people choose a wrong word to express their belief. Ask yourself what your goal is: Is it to show that some particular belief is wrong, or to find out what the other person believes and to have a productive discussion? Think about it, there are billions of wrong beliefs. One cannot demolish all of them. There is only a point in demolishing a belief when one knows that there are people who believe it.

There is a principle related to this, the principle of charity: When one reads a text and have multiples theories or interpretations of what the author means, one should always assume that the author means the most probably interpretation of the text. If multiple theories are plausible, one should either address all of them or ask the author for clarification.