My guildmates and I have been discussing the ins and outs of verious stats, and we're stumped as to the value of various amounts of of different kinds of combat ratings (+crit or hit with spells and melee, for example, not like int and stam).
Does the noninteger (the portion after the decimal) part of the stat matter? For example, are 33.10 and 33.90 percent chance to crit the same effectively because the game rolls out of 100 possible integers? Or:
Does the game round? Meaning that 34.51 and 35.49 percent are the same, as well as all numbers in between?
Perhaps the game rolls out of 100.00 possible numbers, which seems like it would be a /random 10000 divided by 100, or some similar mathematic.
Or another possibility?
Do you have any particular reason to assume it only uses integers? Given that it displays decimals, the baseline assumption would be that it uses them.
If I remember correctly, the game code ceils down.
And looking at the current hit rating discussion, where they are trying to find out the cap for hit rating, I do believe that the portion after the decimal does count.
Of course proving such a small amount of % is very difficult.
But if you miss at let's say 24.55% and don't miss anymore at 24.61% (1 hit rating matche around 0.06% hit), I'd say this portion matters.
Any portion after these 2 values are ceiled down in my opinion (could be totally wrong of course).
Aside from the weirdness being discussed in another thread regarding mob crit rates, mobs your level have 5% chance to crit, +0.2% per level (Bosses = 5.6%) and defense/resilience ratings on tanks need to reach that value, to the decimal to be uncrittable.
Or am I misunderstanding the context of this thread?
I think the crux of the topic is whether or not you have to stow your gear in the bank until it adds a full percentage point to the stat in question or if incremental upgrades will still give full benefit.
Before 2.0, Arcane Shot used to do exactly 183 damage. When it hit with Ranged Weapon Spec and Humanoid Slaying, it did 198 damage. When it crit with Humanoid Slaying and Mortal Shots, it did 470-471 damage.
183 * 1.05 * 1.03 = 197.9145
197.9145 * 1.03 * 2.309 = 470.69
There was a real world bias towards getting 471 damage on crits than 470, so one can only surmise that the game does not floor decimals, since you didn't get 470 damage all the time on every crit.
My guildmates and I have been discussing the ins and outs of verious stats, and we're stumped as to the value of various amounts of of different kinds of combat ratings (+crit or hit with spells and melee, for example, not like int and stam).
Does the noninteger (the portion after the decimal) part of the stat matter? For example, are 33.10 and 33.90 percent chance to crit the same effectively because the game rolls out of 100 possible integers? Or:
Does the game round? Meaning that 34.51 and 35.49 percent are the same, as well as all numbers in between?
Perhaps the game rolls out of 100.00 possible numbers, which seems like it would be a /random 10000 divided by 100, or some similar mathematic.
Or another possibility?
Anyone have any thoughts on this?
Crit of 34.51%
Game rolls 0-1
<= .3451 crit
> .3451 not a crit
That is the way I would do it.
Originally Posted by From spell mechanics blue post
...
The game will roll a number between 0 and 1, and if it’s less than 0.445, the frost bolt will hit for full damage. Otherwise, a resist message will appear. ...
Another possibly useful point is that reputation gains modified by the human racial sometimes cause gains to shuffle back and forth between two numbers.. ie sometimes you get 17 and sometimes you get 18 for a mob... this would lead me to believe that there is a hidden tally for how much of a decimal you have saved up and when said tally > 1 it adds a rep to the next gain. This at least shows that decimals are used in SOME of the game... and if some, then why not most?
Last edited by Cel : 04/08/07 at 8:06 PM.
"There is much pleasure to be gained from useless knowledge." - Bertrand Russell
Highest rank of blessing of wisdom is 41 mp5 unimproved. Improved, 20%, makes it 49.5 mp5. What this means in game is you get 49 and 50 mana ticks every other tick.
Highest rank of blessing of wisdom is 41 mp5 unimproved. Improved, 20%, makes it 49.5 mp5. What this means in game is you get 49 and 50 mana ticks every other tick.
Hah, I like you selectively recalled the data so as to support your comment.
It's 49.2%. And you do, in fact, see more 49's than 50's.
The question isn't does Blizzard keep track of non-integer amounts. It is clear they do. How many significant digits does Blizzard keep?
Maybe it is better to ask how does Blizzard keep their data. If they look only at the decimal, there is a finite amount of significant digits (still could be very large) they would have to use.
(I'm going to do this with level 60 amounts, because I know that the combat ratings were converted using exact numbers. And I'm using spell not melee figures.)
1% Crit = 14 rating
1% hit = 8 rating
Now, let's say you keep every other stat the same and you gain two critical rating. Does Blizzard look at that as a gain of 1/7% , or 0.142857...(finite rounded end)%.
A gain of 1/7% would seem to be easier to store and recall for computers.
If you gain 2 hit rating, do you gain 1/4% or 0.25% hit? It doesn't really matter because both are precisely equal.
This might be easier to store and recall as 0.25%, not needing to calculate out the amount every time the RNG needs to access it.
It is easier to store all your data in a similar method, so there would be only one way of storing both of these statistics.
So, I'm assuming that they store all the data in a fractional type of mode (something that will be able to be written as x/y). Basically when they figure out the 'hit/crit/miss' chance they compute the data in a precise method. But even then how many digits does the RNG give to their system.
It clearly must be enough for an easy comparison. Easy comparisons come from a different precise fractional type of data (it can still be random), or a finite amount of data.
If it is fractional type of data comparisons are made easily through multiplication of the denominator of one number to the opposing numerator, and comparing both products.
All RNGs are based on quasi-random (predictable only once given an input i.e from one to two you can't say it will increase by five without using the input) equations, and are not truly random.
My guess is that Blizzard uses a RNG that is able to give fractional data, and that they store their ratings as fractional data.
My guess is that Blizzard uses a RNG that is able to give fractional data, and that they store their ratings as fractional data.
I think it's much more likely that their RNG gives binary data :-)
The interesting question is how many bits there are in the the random number for (say) the hit table, the loot tables, etc.
An 8-bit (1 byte) random number allows them to work with a granularity of ~0.4%
A 10-bit random number gives them a granularity of ~0.1%
A 14-bit random number gives them a granularity of ~0.01%
It's not clear to me that they have to take the same depth of random number in all cases. It may be that the hit table uses 10-bit numbers, while loot tables could use anything from 4 or 5 bits to 50 bits. When a mob has two loot tables, do they request two numbers, or just one high-precision number, and use the first 10 bits for one item, and the next 10 bits for the next item? And so on.
Certainly there's enough evidence out there to suggest that the combat table works with a precision of at least 10 bits. I'd suspect that means it's a two-byte roll, which gives a precision of ~0.0015%
I think it's much more likely that their RNG gives binary data :-)
The interesting question is how many bits there are in the the random number for (say) the hit table, the loot tables, etc.
An 8-bit (1 byte) random number allows them to work with a granularity of ~0.4%
A 10-bit random number gives them a granularity of ~0.1%
A 14-bit random number gives them a granularity of ~0.01%
It's not clear to me that they have to take the same depth of random number in all cases. It may be that the hit table uses 10-bit numbers, while loot tables could use anything from 4 or 5 bits to 50 bits. When a mob has two loot tables, do they request two numbers, or just one high-precision number, and use the first 10 bits for one item, and the next 10 bits for the next item? And so on.
Certainly there's enough evidence out there to suggest that the combat table works with a precision of at least 10 bits. I'd suspect that means it's a two-byte roll, which gives a precision of ~0.0015%
I don't disagree, but I'd like to point out that binary data could be called fractional.
1 byte = gives 1/256, 2/256, 3/256... 256/256.
I would think that when the mob has two loot tables they would do two number requests.
Otherwise, you would see more items being linked (i.e. If Tank Shield drops from Gruul, you would see the Mage/Lock/Hunter pants piece drop more likely than the Warrior/Priest/Druid piece). Of course, while this data isn't always visible, we could use old DKP records (from many, many sources) to see if there is any links between what helms drop off of Ony and what else does.
The other reason is if you do one number request, for mobs like Nef, you would only have one number request for 2 loot tables that are called on twice.
I would think that when the mob has two loot tables they would do two number requests.
Otherwise, you would see more items being linked
Why? If I ask for a 20-bit random number, there's no reason for the contents of the first 10 bits to have any effect on the contents of the next 10 bits. It should be exactly the same as requesting two 10-bit numbers in succession.
Depending on what algorithm they're using to generate their random numbers, it'll come in "lumps" of a given size (number of bits) - I wouldn't be at all surprised if that got re-divided behind the scenes. Maybe you get a 4-byte (32-bit) random number, which then gets used for the next two hit rolls (10 bits each) and a loot roll (12 bits). Or whatever. I'm not a coder!
I have a kiddie-level mental image of it: the random number generator fills up a buffer with random stuff, and then the WoW process takes lower- or higher-precision numbers from the buffer as it needs them. Any coders care to say if that sounds plausible? Or would you just go direct to the random number generator each time, get a number at maximum precision, and just throw away the bits you don't need? It would seem awfully wasteful to get a 32-bit random number purely in order to choose which of 3 tokens to drop at the Curator, for example.
WoW uses IBAA, apparently (I have no idea what the source for that is, it's just something I remember seeing way back when in reference to loot generation).
IBAA is a stream randomness generator, so you just request the number of bits you need; that said, if they went for efficient access to the buffer, they probably access in wordlength chunks, most likely 16 or 32 bits at a time.
Melador> Incidentally, these last few pages are why people hate lawyers.
Viator> I really don't want to go all Kalman here.
Bury> Just imagine what the world would be like if you used your powers for good.
WoW uses IBAA, apparently (I have no idea what the source for that is, it's just something I remember seeing way back when in reference to loot generation).
I remember the same, and I'm pretty sure it was from a blue post.
- WoW currently uses the IBAA pseudo-random number generation algorithm. We have a library of generators and can switch at any time if the need were to arise.
"- WoW currently uses the IBAA pseudo-random number generation algorithm. We have a library of generators and can switch at any time if the need were to arise."
Melador> Incidentally, these last few pages are why people hate lawyers.
Viator> I really don't want to go all Kalman here.
Bury> Just imagine what the world would be like if you used your powers for good.