A rather interesting feature of Warlords of Draenor is the much anticipated “Item Squish”.
Basically, numbers are getting too big to rationalize. It’s hard to fathom ten
billion health and a half-million DPS, compared to a million health and five
thousand DPS, so Blizzard wants to make all the numbers in-game smaller.
Stolen from MMO-Champ. From Blizzcon. |
A quick technical aside, many people believe that Blizzard
is performing the number squish because computers take longer to calculate
bigger numbers. Assuming Blizzard has upgraded their servers to 64-bit code,
this is erroneous. An unsigned 64-bit integer goes to 264 - 1,
or 18,446,744,073,709,551,615. Any calculations on numbers smaller than that,
be it 10 + 20, or 10,000,000,000 + 20,000,000,000, take the same amount of
time. In Computer terms, if the numbers can fit in a single register,
it doesn’t matter how big it is. Technically Blizzard would still be okay on 32-bits,
as long as boss health stayed below 4.2 billion or so, but we’re rapidly approaching
that (Malkorok has 1 billion health on 25-man Normal, for example).
Back to the squish itself, Blizzard claims that our relative
power won’t change, and that our ability to solo old content won’t change, but
my intuition tells me that this is mathematically impossible. Now, instincts
about math are often wrong--a prime example of this is the Monty Hall problem,
which states:
‘Suppose you're on a game show, and you're given the choice of three doors: Behind one door is a car; behind the others, goats. You pick a door, say No. 1, and the host, who knows what's behind the doors, opens another door, say No. 3, which has a goat. He then says to you, "Do you want to pick door No. 2?" Is it to your advantage to switch your choice?’
Most people figure keeping to the same door is the better
choice, however, you have a much better chance to win that car if you switch to
the other door. The Wikipedia link gives the proof, but the end result is any
time my intuition tells me something about math, I figure I need to question it
(not to mention justify my minor in Pure Mathematics). So let’s run through
some numbers and figure out whether my instincts are right, or if Blizzard’s
statement is true.
The first thing I did was determined the DPS curve for all
of WoW. For each raid tier, I tried to find a boss with the following
qualities:
- Tight enrage timer (DPS race)
- Single target
- As little movement as possible (i.e.: Patchwerk fight)
- 25 Normal data exists (Tier 2 and 3 I took 40-man data and normalized the health to 25-man)
Tier
|
Boss
|
Health
|
Enrage
|
Raid DPS Required
|
2
|
*(999,300) 624,562
|
5 Minutes
|
2,082
|
|
3
|
*(3,850,000) 2,406,250
|
7 Minutes
|
5,729
|
|
4
|
3,375,000
|
~7 Minutes
|
8,036
|
|
5
|
4,500,000
|
10 Minutes
|
7,500
|
|
6
|
10,500,000
|
6 Minutes
|
29,167
|
|
7
|
13,038,575
|
6 Minutes
|
36,218
|
|
8
|
30,000,000
|
15 Minutes
|
33,333
|
|
9
|
20,910,000
|
10 Minutes
|
34,850
|
|
10
|
40,440,000
|
5 Minutes
|
134,800
|
|
11
|
90,620,000
|
7 Minutes
|
215,762
|
|
12
|
99,978,288
|
6 Minutes
|
277,717
|
|
13
|
184,238,336
|
6 Minutes
|
511,773
|
|
14
|
641,000,000
|
8.5 Minutes
|
1,256,863
|
|
15
|
1,226,000,000
|
12 Minutes
|
1,702,778
|
|
16
|
1,055,102,592
|
6 Minutes
|
2,930,841
|
* Health normalized by multiplying by 25/40.
~ No enrage timers for 25 man raids exist. Text suggests that ~7 minutes the raid will be overwhelmed.
% No Patchwerk fights exist on this tier. Anub’arak is the only one with a tight enrage, but between the life leech and the adds, the Raid DPS required is probably a fair bit higher than listed.
~ No enrage timers for 25 man raids exist. Text suggests that ~7 minutes the raid will be overwhelmed.
% No Patchwerk fights exist on this tier. Anub’arak is the only one with a tight enrage, but between the life leech and the adds, the Raid DPS required is probably a fair bit higher than listed.
If we plot the data on a graph, it’s very clearly an
exponential curve:
But
we already knew that. Blizzard has stated a number of
times they’re aiming for an exponential power curve, so that gear can
feel
exciting, and such that you actually replace your gear when an expansion
drops. But as you can see, the lower end is incredibly compact in terms
of values. The jump from Void Reaver to Brutallus may be a factor of 4,
but the raw value is only about 22,500 DPS, which is nothing in
comparison to the 1.2 million DPS jump from Iron Qon to Malkorok. So how
do we reconcile this with ensuring that we can solo the old raids and
not have numbers get ridiculously small rather than being crazy big?
One of Blizzard’s claims is, “it will STILL take 5s to
kill a Timeless Isle Gulp Frog.” To ensure that’s true, it’s a simple case of
just scaling your current power down and the health of the mob down by the same
factor. For example, if you do 100,000 DPS today, and a Gulp Frog has 1.4M
health,
it would take you 14 seconds to defeat the Gulp Frog. If Blizzard wanted to
scale down DPS so that the same character after the squish would only do 5,000
DPS, it’s a simple matter of dividing both numbers by 20, so the Gulp Frog
after the squish would have 70,000 health. No big deal.
So how about soloing old raids? If you wanted to use the
same level 90 character to kill Festergut, before the patch it would take 404.4
seconds at 100,000 DPS. After the patch, Festergut would need to have only 2,022,000
health to achieve the same result at 5,000 DPS. Not so bad.
Things start to get a little weird, in-line with my expectations on an exponential curve, when you apply
the same thing to the first few tiers. Princess Huhuran would need to have only
49,965 health to have the same effect, which is less than General Drakash
in UBRS--a 5-man level 58 boss--by nearly half. Void Reaver, only 225,000
health. That’s not to say it’s impossible, just a little strange. It’s honestly
a large enough difference between Tier 2 and Tier 16 that if Blizzard only reduced the Vanilla
tiers by a factor of 10 instead of 20 (meaning Huhuran would have 100,000
health), the ability of a max level character to solo that boss wouldn’t be
greatly impacted, though someone at level 70 might struggle a bit more than
they would otherwise.
If we were to take the squish to its literal conclusion, it
would fall apart once you hit Vanilla content, so I feel my instincts were
justified. But at that point the numbers are so small anyway that the precise
factor one would utilize applying the squish is largely irrelevant. The math is
a bit basic, but it supports Blizzard’s statements just fine. I doubt they’ll
just apply a multiplier to reduce the values because I’m sure there are
subsystems that I haven’t looked into that would fall apart, but given I didn’t
go to Blizzcon, I couldn’t begin to guess what they actually did (the squish
was in effect at the Warlords of Draenor
demo stations, apparently). Still, it seems feasible. I’ll be interested to see
how they go about doing it.
Awesome read, good explanation. I enjoyed it.
ReplyDelete"the ability of a max level character to solo that boss wouldn’t be greatly impacted, though someone at level 70 might struggle a bit more than they would otherwise."
ReplyDeleteMy understanding is that is is ONLY staying true for max level characters. A level 70 will be unable to solo level 60 stuff that they used to be able to.
Basically, instead of ilvl providing a, say, 2% increase from 1 all the way to 608 (169,396 times the power) it will be a 2% increase from 1 to 60 and then from 437 to 608 (with it being like a 0.1% increase from 60 to 437). This gives us 140 times the power instead, hence the squish. They're not multiplying the health/damage of players/mobs by a constant, they're reducing the impact of ilvl dramatically for a certain spectrum.
"My understanding is that is is ONLY staying true for max level characters. A level 70 will be unable to solo level 60 stuff that they used to be able to."
Delete~ Yeah, given Blizzard's track record of giving perhaps a quarter of a damn about anything not max level, I'd fully expect that.
"This gives us 140 times the power instead, hence the squish. They're not multiplying the health/damage of players/mobs by a constant, they're reducing the impact of ilvl dramatically for a certain spectrum."
~But they must also reduce mob health/damage to compensate, otherwise we'd not be able to kill a Gulp Frog at all. Regardless, I realize they aren't just going to divide everything by 20 and call it a day, that'd be silly for a lot of reasons. However, the important information here is the result, not how Blizzard got to the result, so I just used said factor as a proxy for whatever technique Blizzard would use.
"Technically Blizzard would still be okay on 32-bits, as long as boss health stayed below 4.2 billion or so, but we’re rapidly approaching that (Malkorok has 1 billion health on 25-man Normal, for example)."
ReplyDeleteActually we've surpassed that limit, since the devs themselves mentioned in Blizzcon that the reason that Garrosh has to heal up for each of his phase transitions is because they were hitting the caps on boss health already.
They also mentioned that they were considering raid-wide buffs when entering an instance at levels higher than planned, to make soloing possible.
"Actually we've surpassed that limit, since the devs themselves mentioned in Blizzcon that the reason that Garrosh has to heal up for each of his phase transitions is because they were hitting the caps on boss health already."
Delete~ Huh, I missed that. Doing some quick math on 25N, seems like Garrosh runs through 1.73B health through the entirety of the fight (I can't find numbers for Heroic, it seems, which will clearly be higher). Definitely close for comfort. But it does sound as if their servers are definitely still 32-bit. Or at least the numbers holding health values are.
"They also mentioned that they were considering raid-wide buffs when entering an instance at levels higher than planned, to make soloing possible."
~ That's a hack if I ever heard one, but I guess it would work. Definitely ugly, though.
Thanks! Information I was clearly missing :)
Yeah, that reminds me, Ra-Den on 25 man COULD bug out from his maximum health going over the maximum value a 32 bit integer could hold.
ReplyDelete