Skip to content
Maintankadin

Northrend weapon enchant

Torakka
Mon Dec 08, 2008 7:52 am
Obrimos, it doesn't work really like that. Combat table in WoW only means that server rolls simulated 1000, 10000 or even more sided dice and your avoidance values + enemys crit, crush, etc values are added to that dice in order you listed and when list becomes full (100%) rest are ignored and that is why we can get "uncrushable" or block capped which seems to be today's word for it.

Let's say that our tank has for example 10% miss, 25% dodge, 20% parry and enough block to fill rest of the table (45%) with block. That does NOT mean that when game sees he has dodged 24 times, blocked 45 times parried 20 times and been missed 10 times that next attack must and will be dodge. In fact server doesn't care about previous attacks at all when calculating result for current attack roll.

Each attack roll is completely intependent from all rolls that have already occured and all rolls that will occur and that results in avoidance (and crit and such) being only avarages over very long (well, theoretically infinite) span of time.

If WWS parses showing different avoidance rates than those suggested by character sheet (like for example avarage 18% parry when raid buffed that should be 17%) are not enough to convince you then I'll prove this with a very simple way: money. If server really did take previous rolls into account it would need to store that data somewhere and use some extra processor time to calculate result for every attack roll as it is more complicated to make random roll based on current and previous values than just current values. Now when we also consider the amount of characters there can be in combat at the same time and the amount of attack rolls per second that means I think it is fairly safe to assume Blizzard has choosen the less resource hungry way.
_________________
http://armorylite.com/eu/ravencrest/ezarioth
Frostbeard
Mon Dec 08, 2008 9:01 am
I think you are both talking about different cases.

If you are currently "hitable" is the +26 agility worth more than Mongoose?

I can see how Mongoose could be better if you were already unhitable, replacing a block with a dodge, but is getting .5% closer to unhitable all of the time worth more than Mongoose?
Candiru
Mon Dec 08, 2008 9:09 am
Easy way to test it, leave yourself 1% critable, then so fight supplicants and look at that stats. you will NOT have 1 crit every 100 attacks. You might go 200 or 300 attacks without being crit, then get crit twice in a row.

Random combat is random.

As for Sunwell tuning, you WOULD get randomly killed when you just didn't avoid anything for a string of attacks and you die.

You just have to keep trying until you didn't get "roflstomped".

Also consider that your avoidance can change in combat when you equip/unequip gear, gain buffs, procs etc. Attacker's level is also different, you would need a table for every mob in combat with every player, and recalculate them all every time a debuff/buff was applied.

It just rolls a dice every time, nice and simple.
Eanin
Mon Dec 08, 2008 9:12 am
Even if Obrimos is right, it's probably not a table with 100 elements, but with 10,000, since our defenses are all precise to a hundredth of a percentage point. Therefore, unless you're fighting a really, really long time, it may as well be random.

Except for the blockcapping thing, random is still random.

I ended up going with potency, but I'd definitely pick mongoose over +26 agility.
_________________
harlekin
Mon Dec 08, 2008 10:40 am
Randomly ordered tables would be an exceedingly inefficient way to handle combat with so much flux in combat. The combat table system that we used to work with crushing blows makes a great deal more sense. You have a state, a simple table is generated, a single dice roll is made. It's a pretty well understood system and it matches up quite nicely with all of the data that we have seen.

The calculation time for this is very small on a modern processor, far smaller than the network calls that go along with it. It would actually take a great deal more time to generate a random queue which would need to be modified for every proc of mongoose, every cast of holy shield, every time you got hit from behind, or every time a tank sat down to take a hard hit.

Blizz has a strange streaky random number generator to be sure. I assume they're using a really crappy pseudo-random generator because it's probably more efficient. WoW uses a lot of random numbers and good random numbers are hard to make.
_________________
Shadow Council - US - Horde
Xandreth (74) - Prot Paladin - MT (going ret until 75)
Tyrenn (80) - Frostfire Mage
Saege (70) - Resto Druid in training
Staub (63) - DK backup tank
harlekin
Mon Dec 08, 2008 11:01 am
If the table is randomly ordered, it is by default difficult to modify. An in-order table with a dice roll is far easier to deal with. All of the combat calculations need to be done server side. When the tank sits down to take a crit, it relays that to the server and the table is recalculated (all crit).

All true random number generators are referenced to natural processes, like thermal noise. Most computers use random number generators that create a hash using a seed number that comes from the system clock.
_________________
Shadow Council - US - Horde
Xandreth (74) - Prot Paladin - MT (going ret until 75)
Tyrenn (80) - Frostfire Mage
Saege (70) - Resto Druid in training
Staub (63) - DK backup tank
harlekin
Mon Dec 08, 2008 1:12 pm
How do you choose which hits on the random list to convert into dodges then? It seems like that would, in fact, take multiple calls to the random function.

[edit] We're kind of derailing the thread here, so we should probably just drop the issue. For the purpose of modeling things, I think everyone just assumes that random is random and sticks with the percentages. Trying to divine the mechanics that blizz is using behind the scenes can be counterproductive unless we find some of our models not matching up well.
_________________
Shadow Council - US - Horde
Xandreth (74) - Prot Paladin - MT (going ret until 75)
Tyrenn (80) - Frostfire Mage
Saege (70) - Resto Druid in training
Staub (63) - DK backup tank