Wednesday, June 19, 2013

Matchmaking in DOTA2

A quick guide to how matchmaking works in DOTA2.


Statements from the DOTA2 dev team

The following were culled from the developer's forums:

1. There are no brackets or skill-tiers. You are rated on a continuous scale, so you can think of it as a percentile rank from 1-100.

2. The tiers you know from the Replay-Filters are not used in MM.

3. Battle Points and Battle Level are not used in matchmaking.

4. Performance Bars are not used in matchmaking.

5. We don't enforce a 50-50 win rate.

(And you are certainly not getting matched with bad players on purpose when you have a win-streak. There's no conspiracy just because your win streak ended)



What we know from match analysis

That's not very much to go on. But fortunately, we can do our own analysis on the match data on the servers.

Dotametrics provided me the data to put together this infographic showing the size of the match skill brackets in DOTA2. Yes the data is a few months old, but this distribution has been stable for more than a year now -  it's stood up to repeated sampling - the last time Valve changed their distribution was early 2012. All matches are tagged with a "skill level". Roughly speaking, Normal is anywhere up to 1 standard deviation above the mean, High is between 1 and 2 standard deviations above the mean, and Very High is 3 standard deviations above the mean.

You can find out what skill level your matches are by going to Watch -> Recent Games -> Filter by exact name and skill level.

It's true that players aren't officially tagged by skill level, but rest assured if all your games are tagged as "Very High Skill" it's very likely that you're in the top 4% percentile of players, according to the data that was collected. You will likely get matched into different quality matches in consecutive games, not because your hidden MMR is fluctuating, but because a higher level game might need a player and pull you in, or next time a lower level game might need a player and pull you in. If your MMR is straddling a bracket this is more likely to happen.


What affects MMR, and why it's hidden

From anecdotal reports from players (and my own experiments) the hidden MMR is influenced by more than just win rate. An account at the bottom of the skill curve can rise very rapidly into the Very High Skill matches if you manage to stomp a few games. It is likely Valve is using some secret game statistics to judge player skill - no one knows what it could be. Maybe it's denies, maybe the game detects if you're able to stack and pull creeps, it could also be KDR, or GPM. Maybe it's buying "advanced" items that higher skill players generally buy and which low skill players don't. Whatever the case, their smurf detection speed is way faster than what HON and LOL can do.

This is the most plausible reason why MMR remains hidden in DOTA2 - if it was visible, and rating change could be observed from game to game, it would be possible to reverse engineer the MMR calculation and thus manipulate it - if players figured out buying 4 wards triggered a bonus 5 MMR for the match, for example, or that if you reached 20 denies you got a bonus 2 MMR for the match, it could potentially be abused.

Design (Part 3) - Luck and Randomness

Introduction

This will be a series of articles about game design, using the popular games DOTA and League of Legends as illustrative examples. The specific words, "Design is an Optimization" was coined by the design director of Riot. It means that to him, design is an iterative process of optimization.

Thus if some aspect of DOTA or LOL seems inferior or different to the other, it is because a conscious choice has been made by its designers – the trade-offs have been examined, the benefits judged more than the costs.


Design (Part 3) - Luck and Randomness

Randomness or luck in games is usually considered a negative trait because in general, you want the more skilled player to win, not the luckier player. There are games with no luck involved, such as Chess. There are games where combat is influenced by luck – say like in Risk, where both players have to roll dice in combat, and it’s possible for a weaker army to win simply by virtue of getting a higher number on the dice roll.

There’s also what I call deterministic luck, like in the board game Game of Thrones – there are no dice involved, but combat involves guessing and predicting your opponent’s movement orders and combat decisions. You could get “lucky” in that you made a correct prediction and outmaneuvered the enemy, but that kind of play can be attributed to skill instead.

Through the course of history, there have been a variety of popular games on either end of the spectrum, from having zero luck involved to being almost entirely luck based (like Snakes and Ladders).

DOTA's developers seems to be happy with some level of randomness and luck in the game, even encouraging it with heroes that are specifically built around the concept of randomness. In LOL, Riot has decided that for it to be a proper competitive game, they need to reduce the luck element as much as possible so the more skilled team is more likely to win. Even when abilities seem random there's usually an element of player control involved. See below for examples!


Random Disables in DOTA


The Spirit Breaker has a passive called Greater Bash that gives him a 17% chance to stun his enemy for 1.6 seconds on hit.

The Lone Druid's Spirit Bear has a passive called Entangling Claws that give it a 20% chance to immobilize the enemy for 3 seconds on hit.

The Chaos Knight has a spell called Chaos Bolt that will damage and stun the enemy for anywhere from 2 to 4 seconds.

These random disables can be debilitating. The infamous "lucky first hit root" of the Spirit Bear has been responsible for the deaths of many heroes. And of course when you play the Spirit Breaker, his Greater Bash never seems to proc but when someone is playing it against you he seems to get bashes all the time!


Controlled Random Disables in LOL


Annie has a passive called Pyromania, that causes her spells to inflict a 1.75 second stun on every fourth spellcast.

Kennen has a passive which causes damaging spells to inflict a stacking “Mark of the Storm” debuff on the enemy, when it hits 3 stacks the enemy is stunned for 1 second.

A large part of playing Annie is manipulating the sequence of spells so the AOE nuke gets the stun proc, in order to stun multiple champions at once. Also, "priming" her passive by building up three counters first allows her to stun in the first moment of the engagement. Kennen's stun is more a sustained build up stun, where if you don't immediately disengage from combat with him you're certain to get stunned for that one second.


Random Damage in DOTA


The Phantom Assassin has a passive called Coup de Grace which grants her grants her normal attacks a 15% chance to critically strike for 450% damage, far beyond what is typical of normal critical mechanics.

The Ogre Magi has a passive ability called Multi Cast, which enables all his spells to randomly cast multiple times. His Fireblast spell ordinarily does 275 damage and stuns for 1.5 seconds - however, it can randomly be cast twice, three times, even four times on the same target. This is a basically a spell critical mechanic. A 4x multicast on a single target will deal 1100 damage and stun the target for 2.4 seconds. It even plays the jackpot winning sound =)

It's not unheard of for the Phantom Assassin or Ogre Magi to instantly kill a squishy support hero with one hit right at the beginning of a fight, before they can even react or cast a single spell. Not a very fun experience for them...


Controlled Random Damage in LOL


Jax has a passive called Grandmaster's Might, where every third basic attack will do bonus damage.

Vayne has a passive called Silver Bolts, where every third consecutive attack on the same target inflicts additional damage.


Realistic Simulation

So what benefits could randomness bring, if it hurts the competitive nature of the game?

One answer is something I call realistic simulation. Imagine a D&D RPG game, where killing goblins awarded the player loot (gold coins). The loot from each goblin killed has to be random. It would be kind of stupid if every single goblin killed awarded exactly 2 gold coins - it breaks immersion completely. It's fair, it's balanced, but you lose immersion because it immediately feels like an artificially designed world rather than a real one, where some goblins have no gold on them, and some have a lot.

So here we see one possible trade-off - the real world is random, and if a game is completely stripped of random elements, it can feel artificial and fake.


Drama and Revelation

This is another benefit that randomness brings - the act of revealing the result of a random event can cause anticipation, suspense, surprise, and drama. In some cases, this element alone is all that is needed to carry the entire game, even if it has no other elements or gameplay!

A famous example of this is the Candy Land board game, designed for young children, most recently in fact referenced in the Wreck it Ralph movie. Cars race around a track - players draw from a deck of cards which indicate how far the car advances each turn.

In some sense, the game is already completely decided at the start, when the deck is shuffled and set down. All the player does is reveal the cards one by one. It can be played alone by one child, allowing him to experience the excitement of watching which car will win the race. This game has been so popular it has been in continual production from 1949 until today.

Drama and revelation are important elements in all game design, not just children's games, and a game stripped of randomness will naturally lose some of this.


Skill in adaptation, not execution

Random elements in the game creates openings and opportunities - if you get some lucky procs, the enemy is forced to use some cooldowns, and your team has a choice - do you capitalize on this now and blow your cooldowns as well, or do you let them expend their cooldowns and take them at another time in the near future?

Without the background of a rapidly shifting state of play, the game becomes stable and biased towards the teams who had the best build composition and execution, rather than the team with the better flexibility and reaction time. Adaptive play is more exciting than a game where a team with perfect build and execution wins every time.


Faking Randomness - Pseudo Random Distributions

This is actually something developed by Blizzard in their Warcraft 3 engine which was eventually carried over into DOTA and LOL. Pseudo Random Distribution, or PRD, refers to a dynamic probability calculation aimed at reducing randomness in the game while still preserving all the benefits of randomness.

In a true random distribution, every roll operates independantly, but in PRD, the probability of an event happening is increased every time it fails to happen, and then gets set back to its initial value once it does. An example will be helpful here...


The Phantom Assassin, as mentioned above, has a 15% chance to proc a Coup de Grace critical on hit. In a true random distribution, the system works as you'd expect - every hit is granted a 15% chance to crit. With PRD, there is a pre-calculated constant, C, that corresponds to the 15% proc chance - in this case, it is 3.2%. At her first hit, the system checks for the 3.2% crit chance - if it fails to crit, the next strike is granted a 6.4% chance to crit. If that fails also, the third strike is granted a 9.6% chance to crit, and so on. If a critical does occur, the next hit after that is reset back to 3.2%.

The idea is that over a large sample, using a PRD yields the same crit chance as using a true random distribution (150 crits out of 1000 hits) but with one key difference - the distribution of the crits is more stable. Using a true random distribution results in a higher likelihood of streaks - two lucky crits in a row, or long periods without a crit. In a true random distribution, the chance of two crits in a row is low but possible (15% x 15% = 2.25%) while under PRD the chance of two crits in a row is negligable (3.2% x 3.2% =  0.1%). On the other hand, the chance of at least one crit over a long sequence of attacks is higher for PRD - over 13 hits, PRD has a 97% chance to generate at least one crit, while a true random distribution only has an 88% chance.

Monday, June 17, 2013

Competitive Roundup (Part 2)

Introduction

There are so many tournaments going on at the same time that it can get overwhelming trying to keep up with them. In this series of blog posts, I will share matches which I have found notable and worth watching in the past week or two.


Alliance takes up Tobi's "challenge" vs IN.RS
  
  vs  

Tournament: RaidCall EMS One Summer Cup #4
Teams: iNfernity RS versus Alliance
Stream: joinDOTA

Very short 8 minute match. Tobi starts laughing midway through the draft when he realises that Alliance is planning to take up a "challenge" he issued them - to take raxes by 10 minutes. They actually manage to take down the first rax before 8 minutes, just at the GG call.
Yes it's a stomp of a lesser team in a tournament, but the manner of it happening is quite interesting, particularly the hero picks. I have a tendency to recommend shorter games anyway, as even I don't particularly like watching long drawn out games (unless they're particularly noteworthy)



Group A Tie-Breaker (Defense 4)

  vs  


Tournament: Defense 4
Teams: Mousesports vs Na'Vi
Stream: joinDOTA

The only "actual" game between relatively equal teams I'm highlighting this week, Mouseports, fresh off their win in the TI3 Western Qualifiers, got drawn into Group A of the Defense 4 Tournament, along with Na'Vi. They both went through the group stage games with the same number of wins, so they have to play a tie-breaker.

Na'Vi allowed Mouseports to run an Alchemist safelane uncontested - with free farm and points in Greevil's Greed getting him a 5 minute Midas.

For me the highlight was Na'Vi running Funnik as the solo off-laner vs the enemy quad-lane as Bounty Hunter - you heard that right, 1v4 (Dark Seer, Jakira, Shadow Demon, Alchemist) as Mouseports' Dark Seer abandoned his off-lane. Funnik pulled out all the stops - manipulating the creeps at the start so they would double up, harassing the Mouseports supports in the jungle and stealing their farm - and he somehow managed to find his farm and levels, finishing Phase, Vlads, Drums, and Assault Cuirass by 20 minutes, all items aimed at boosting the damage of their carry. Amazing play. Other interesting note is how Puck in midlane can Phase Shift before the Dragon Knight Flame Breath can reach her.

As a note, I am highlighting a lot of Alliance and Na'Vi games because they're very entertaining. Na'Vi have a tendency to be extremely aggressive - they pull off a lot of risky plays, and it sometimes backfires on them, similarly for Alliance.


Dominating Windrunner play by Dendi

   vs  

Tournament:  The Defense 4
Teams: Na'Vi versus RoXKIS
Stream: joinDOTA

It was pretty much a forgone conclusion that Na'Vi would win this game because they're a much better team, but it's entertaining just because Dendi plays a Windrunner mid who doesn't have the greatest start, but still ends up scoring 8 kills in 12 minutes, forcing RoXKIS to surrender. No one else managed to get any kills, except for one by XBOCT. I guess it's noteworthy because Windrunner has a very unreliable stun skillshot and isn't usually the best candidate to send mid when you could run heroes with more reliable disables and damage like Storm or Puck. But we have Dendi to show us how it's possible I guess =P

Friday, June 14, 2013

Design (Part 2) - Power without Gameplay

Introduction

This will be a series of articles about game design, using the popular games DOTA and League of Legends as illustrative examples. The specific words, "Design is an Optimization" was coined by the design director of Riot. It means that to him, design is an iterative process of optimization.

Thus if some aspect of DOTA or LOL seems inferior or different to the other, it is because a conscious choice has been made by its designers – the trade-offs have been examined, the benefits judged more than the costs.


Trade off #2: Power without Gameplay

This is a problem where a skill has too little complexity to provide any gameplay, yet has enough power to influence the course of the game. The game outcome then feels unsatisfying to both sides as no gameplay was invoked.


Passives and Auras

Passives and auras are an obvious offender here, as they contribute towards you winning the game without any action required on your part.

The poster child for this effect right now is the Crystal Maiden - she has a very strong global mana regeneration aura, but her viability is curtailed by designing her with severe weaknesses - nearly the lowest movespeed and hit points of any hero in the game, and a lack of any escape mechanism. Basically she contributes to her team winning the game just by... existing.

I know you guys only want me for my mana aura, I feel so used *sobs*

How do we mitigate this problem, when auras and passive skills are a staple part of RPGs everywhere?

Riot has tried to make aura or passive skills more interesting by making sure their passive effect is minor, and compensating by adding active effects to them in order to promote gameplay and allow decision making.


For example, Sona in League of Legends is an aura based champion (she has 3 auras!) which relies on an aura switching mechanic where only one aura can be active at any time, and every time you change aura a different active effect is triggered around her – this creates an engaging game play mechanic where the timing of the aura switches matters just as much as what aura you have on at the time. Additionally, every 3 aura changes, her next auto-attack is imbued with an additional property based on the last aura used, which subtly alters her role from being a mere back line aura supporter into a champion that also actively contributes by attacking the enemy. I think this is an excellent reimagining of the Bard type RPG character.


Master Yi has an ability called Wuju Style that passively gives him attack damage, but it can be clicked to provide him double that bonus for a short burst, and afterwards he loses the passive benefit until it finishes its cooldown. Teemo has Move Quick that passively gives him increased move speed, but has an active ability that gives him a temporary burst of speed.


Active skills can have low complexity too

Lion in DOTA2 famously has an ultimate called Finger of Death which he can get at level 6. All it does is inflict a large amount of damage to an enemy instantly, at long range, quite likely killing them. That’s it. That’s all it does. It’s pretty one dimensional. You can’t dodge it, there’s no counterplay - if Lion wants to cast it on you, he will. It's got a long cooldown for balance, but that's of no comfort for the poor guy he just killed.

Fingering you back to your fountain since 2005

Doing high damage isn’t a bad thing: it’s just bad if it’s unavoidable and generates no gameplay. Luna gets an ultimate at level 6 called Eclipse that can potentially do even more damage than Lion’s Finger of Death. However, the way it works is that it fires 4 beams over 2.4 seconds which target random units in the area around herself - the trick is to ensure that the enemy hero is the only enemy unit around her so he gets hit by all 4 beams and dies.


This immediately creates a host of counterplay possibilities: you are “safe” when encountering Luna with allied creeps, as they they will absorb most of the beams if she tries to use Eclipse. If you meet her alone, and you have a mobility skill, you can bait her into using her Eclipse, and then immediately jump out of range, wasting her spell completely, since Eclipse does damage over 2.4 seconds, not all at once. Luna will be aiming to catch you off guard when your mobility skill is off cooldown (if you have one) or ambush you when you're traveling through an area without creeps - or, even if you're safe among creeps, she can quickly clear the creeps with her Moon Glaives, leaving you exposed.

Aha! We have created this elusive thing called "gameplay" where both players have to use judgement and skill to outmaneuvre the other. Compare this to Lion's Finger of Death, which offers very little gameplay in comparison.


Why do low complexity skills exist?

Diversity of skills is one reason. If some skills are complex, shouldn't there also be some skills that are simple, even though overly simplistic skills generate no gameplay? I realise this is almost like saying a restaurant should serve some food that doesn't taste good, but there lies the answer too - taste is a subjective quality.

Some players enjoy the simple mechanics of Lion's Finger of Death - it's powerful, long ranged, they have the certainty it can't be dodged, and it does exactly what they want, every single time. And I enjoy playing the Crystal Maiden, and so do many people I know. So... objectively less interesting gameplay, but subjectively more fun for some players? Maybe diversity of complexity is itself a positive element in game design, rather than seeing complexity as a variable you need to constrain within a specific continuum to avoid the problems of too much and too little complexity.

Legacy and thematic considerations are another reason these skills remain. Many of our conceptions of typical RPG fantasy characters follow archetypes set in stone - a Paladin, for example, always has some kind of defensive aura that protects his party, because, well, he's a Paladin. Sometimes, simple is beautiful. Looking at it holistically, I'm not sure this hypothetical skill can be improved by increasing its complexity and gameplay - say by giving it an active component that temporarily gives his party a larger defensive buff for a few seconds and then disabling the passive for another few seconds. Sure, objectively you've gained gameplay, but sometimes, in game design, maybe you shouldn't sacrifice everything else at the altar of gameplay after all.


Final thoughts

League of Legends champion designs are a lot more restrained on both ends - avoiding overly complex or overly simple skills, trading off the optimal level of complexity against gameplay. There aren't many examples of Power without Gameplay that exist in their game - maybe Heimerdinger or Veigar, some of their older legacy champions that are due for remakes.

On the other hand, DOTA2 hero designs are all over the map - you have some really complicated heroes and skills, creating a Burden of Knowledge problem, and you also get some very simplistic designs which generate very little gameplay, which create the Power without Gameplay problem.

As I mentioned in Part 1, League of Legends is a product of design,while DOTA2 is product of evolution. Evolution is messy, unexpected, illogical, but occasionally, it sometimes does some things better than something that was deliberately designed.

Next post in this series deals with "Randomness as an element in game design"

Thursday, June 13, 2013

Let's Play (Part 2) - Crystal Maiden

Introduction

Every week or two I generally try to play a new hero to discover what it’s like playing it, and in this series of blogs I will make a post on my experiences with it.

Release artwork for the Snowdrop Crystal Maiden set created by Anuxi


Crystal Maiden

The Crystal Maiden is based off the character Jaina Proudmoore in Warcraft 3, a talented ice sorceress and the de-facto leader of the Human Alliance. Jaina was instrumental in leading the survivors of Lordaeron across the sea to Kalimdor, founding the new city of Theramore and eventually helping defeat the Burning Legion.

In DOTA2, the Crystal Maiden has a variety of devastating frost magic spells with long range and crippling effects. However, her slow movement speed and low health pool make her vulnerable in fights, making her a high risk / high reward type hero.

Crystal Maiden recently got her Arcane Aura and Freezing Field buffed and has a decently good win rate (20th out of 101 heroes at present) but only about middle of the pack in pick rates. Many players dislike her because of her slow move speed, despite her strengths.


Strengths

Longest ranged snare in the game - Crystal Nova can hit enemies 1100 range away.

Quintessential hard support - she can contribute to the team with a minimum of farm and levels, and even boost the power of heroes across the map with her global aura.


Weaknesses

Slowest movement speed in the game and nearly lowest hit points.

Her entire skill set focuses on crippling physical damage dealers, but they typically buy a Black King Bar or Manta Style by midgame, which allows them to completely shrug off her spells and kill her outright. She has a limited window of time to make an impact on the game, as the game goes past 30 minutes her presence becomes minimal.



Frostbite

Maxing Frostbite first is the preferred build, as this is her hardest disable. 3 seconds of disabled movement and attack will shut down most physical damage dealers, forcing them to buy a Black King Bar as their first item. In addition, it is a very useful jungling skill - this ability lasts 10 seconds on creeps, effectively stunning them for 10 seconds and dealing 700 damage to them - even at level 1. This is an important source of gold and experience for the Crystal Maiden who is often played with lowest farm priority, yet needs to farm a Force Staff as soon as possible. There is a slight quirk in the damage progression - the damage goes from 140 / 210 / 210 / 280, so you don't actually gain any damage going from level 2 to level 3.


Freezing Field

This is a controversial skill. The Freezing Field slow and damage is centered on her, which means she needs to be in the middle of the enemy team. But as a hard support, she will be low level and have almost no items, and will likely be killed in seconds. Also the channeling can be interrupted by stuns, so logically she needs a Linkens or BKB but she will almost never achieve the farm required: even if she does, by that time the enemies can also get a BKB and be immune to the Freezing Field.

Using this skill therefore requires good judgement, and is what separates the average Crystal Maiden player from the truly good ones.

1) It can be used defensively in conjunction with tree juking - if you're fighting in the forest, using the trees to block vision of yourself to gain 2-3 seconds of uninterrupted channel on Freezing Field can win the fight outright - without vision of you, the enemies have limited ways to interrupt your channel or damage you.

2) It can be used defensively in a counter-initiation role - if the enemy team initiates onto yours, you can immediately move up and use Freezing Field. You will force them to switch targets and attack or stun you instead, buying your injured teammates some time to survive and retaliate. If they have unwisely used up all their stuns, you may actually get your full channel off, turning the fight around.

3) It can be used offensively to "mop up" a fight - you will need a mobility item (Force Staff or Blink Dagger) to do this, though. At the moment the enemy realises the battle is lost and they try to retreat, this is when you jump forward and activate Freezing Field. This is a low risk play for you, because at this point they will have expended most of their offensive abilities, and their mindset is focused on retreating, not fighting. Using Freezing Field in this way can turn a bloodless retreat into a team wipe.

This skill is an example of deliberate "Pattern Mismatch" in the game - a slight derail into design principles, which I will cover in a later design post. Basically a hero seems designed to work one way, and then is given a skill which seems to go against their original design concept. In this case, Crystal Maiden's skillset seems to indicate she is a support hero who gets minimal farm and levels, yet is given an ultimate that requires her to be right in the thick of battle. In the case of Lina, a spellcaster hero is given a passive (Burning Soul) that dramatically boosts her auto-attack damage as if she were a physical damage carry.


Synergies

Crystal Maiden's global mana regeneration aura can be a good complement to ganker heroes which apply early aggression and are mana limited, for example Mirana, Tiny and Spiritbreaker.


Counterpicks

As Crystal Maiden lacks a true disable or escape mechanism, she is particularly vulnerable to heroes such as Naix or Slark, who can shrug off her spells. Heroes with a Black King Bar as their first purchase such as Lycan or Spiritbreaker will also be able to kill her effortlessly.

Heroes with orb attacks (Drow Ranger, Huskar, Viper, to name a few) can manually cast their orbs and autoattack through her Frostbite, rendering her helpless against them.


Item build

As a hard support, you shouldn't be expecting to pick up much farm, and you will be spending money on the courier and wards. I do want to talk about a few notable items.

1) Magic Wand - I cannot overstate how useful this item is. The extra burst heal is extremely cost efficient, especially when you will be buying iron wood branches for early stats anyway. A fully charged wand will instantly heal you for 225hp and 225mp. You would ordinarily need to get 12 strength or a vitality booster to get that large of a hp buffer, and it only needs to save your life once in the entire game to be worth it.

Magic Stick saves my life with its 150hp heal (I survive with 100hp)

2) Force Staff - This is a core item on the Crystal Maiden. It allows her to use Freezing Field with the extra mana pool and mobility it provides - it also gives her a much needed escape mechanism (which can also be used to save allies) and extends the already long reach of her Crystal Nova. Force Staff + Crystal Nova means she can land her slow on enemies 1700 distance away.

Force Staff escape against an Anti-Mage and Razor

3) Luxury - if you have extra cash, you'll be spending it on team survivability items, since you badly need the survivability yourself. If there's no Mekansm or Drums on your team you may as well build one for the added stats and team benefits. If the enemy is primarily physical damage you can get a Shiva's Guard, if the enemy is primarily magic damage based you can get a Pipe of Insight. Shiva's Guard particularly deserves mention, as it synergizes perfectly with her skillset - the activation doesn't interrupt her Freezing Field. Her main foes towards the end game would be physical damage dealers with BKB, and the 15 armor combined with the 40% attack speed reduction will help her survive against them. It's a better buy than a Sheepstick, which can't help her survive against a BKB-ed carry anyway, and the mana regeneration goes to waste too. Ghost Scepter also deserves a mention, as a somewhat risky counter against physical damage dealers.