The Ultimate Experience Calculator! Available for Expansion, Terror Zones and Classic

Pavke

Member
Nov 25, 2021
46
94
18
1735643177919.png

Reasoning behind this Calculator. I was not satisfied with the resources that I found Online. There is no perfectly precise, publicly available Exp Calculator that I could find. Experience Calcs that do exist are outdated, or they do not work for Terror Zones or Classic. There are lots of general tips like: “just do Tristram until level 15”, or “do Tombs and Baal runs”.Leveling to 99 is simplified down to “just do TZs”.. Wouldn't it be nice to have precise, math driven, answers? There is also no publicly available monster density data ( monster count per area). Have you ever wondered how many Cows there are in the Cow level? How many Ghosts are there in Arcane Sanctuary or in Chaos Sanctuary? My main goal was to answer these two questions.

What does this Calculator do?
It precisely calculates the Experience gain for any monster in the game, under any scenario. I meticulously went through everything related to in-game Experience and Monster population. No compromises were made here. It breaks down Monster population, gets the average monster number and monster types for each every area in the game. This Experience Calculator delivers precise numbers for any monster and a very accurate estimate of the Experience gain per area, under any set of conditions.

What doesn't this Calculator do?
Because of the nature of this game, the differences between classes, builds, levels, equipment and styles of play, it would be very hard to calculate “experience per hour”. There is a huge difference in area clear speed between fully geared Mosaic Assassin and half geared Necro Summoner. This Exp Calc doesn’t display the Experience gain per hour! It only shows Exp gain per area clear or in other words Exp gain “per run”. I believe this is a better way to compare the area efficiency when leveling. Experience per hour is dependent on the class, gear and many other factors.

The Ultimate Experience Calculator​

Attention! Make a copy of the Calculator to your Google Sheets. I can’t grant you Editors access.

https://docs.google.com/spreadsheets/d/1g17ISYmRWpgTENNd_CNq2HzyHi-8T-ZJwwREoqz0juU/edit?usp=sharing

Only tabs of interest are the Main tab and Experience tab.

On the Main tab you can find all the Settings on the left hand side. The border settings are only cells you should change! I highly suggest you do not touch anything else outside of bordered Settings! You have Player and Party settings, difficulty, Anni charm, Ondals and Shrine. Even the upcoming Nights of Terror event. Party level settings are also important for party play. In Advanced settings you can turn off monsters you want to ignore.

Main tab aggregates Experience from all the monsters in areas and sorts them by highest Exp per area.
Experience tab shows precise Experience you will earn for each Monster in the game.

If you have any questions, wishes or suggestions, please let me know.

Special Thanks to Mysterio, Grace, Necrolis, Aytos, sunbro and many others
 
Awesome work with the experience calculator, it's very thorough. All the underlying data and calculations are visible to see, which is great if I need to look up specific data. I remember having to do my own experience calculations years ago for my 99er, and that was without any party bonuses. Compared to what you have, it was a crude spreadsheet of CS, Baal, & Nihlathak runs.

I read your full post elsewhere, so I may be referencing to those specific details in my following questions/comments.

Experience Formula
I don't have a D2R ladder character to test party bonus exp, and non-ladder seems pretty dead, so I didn't verify it myself. Is the per party member bonus actually 89/256 and not 87/256? Amazon Basin notes that the bonus is 87/256 in 1.11 but was previously 89/256 in 1.10.

As for Integer overflow in the party bonus calculation, is this fully fixed in D2R?
Patch 2.5 notes: "Fixed an issue where the experience sharing calculation for an eight-player party would rarely overflow and award less experience than normal."
The most common example of this was with Baal wave 2 and a full party of 8 people. I remember on old Bnet where the lowest level in the party would be asked to unparty during wave 2 to avoid the integer overflow bug nullifying Unraveler exp.

Let's see if I still remember the old exp calculation process...
Those Unravelers provide 767925 after monster type bonus, then 3455662 after the 8 player count bonus.

During the party bonus calculation, 3455662*7*89 = 2152877426 is greater than 2147483648 (2^31).
This would overflow to -2142089870 for the final party bonus operation.
-2142089870/256 = -8367539, this negative bonus would be added to the 3455662 player count bonus, resulting in a negative total. The experience would be set to 1 according to AB. Running this value of 1 through the remaining exp calculations should return a final value of 0 to the character.

Interestingly enough, if 87 is used in the numerator of the party bonus instead of 89, the first part of the party bonus calculation will no longer overflow: 3455662*7*87 = 2104498158, just under 2147483648.
2104498158/256 = 8220695
Add this party bonus back to base:
8220695 + 3455662 = 11676357
Using a full party of level 95's, with no anni/ondal/shrine as the example.

11676357*95/760 = 1459544

Next is the exp ceiling check, and it is less than 8388607, so we proceed.

Monster level penalty, clvl-7 (95-88).
Exp is > 1048576, operation order is exp/256*159
1459544/256*159 = 906459

Player penalty for clvl 95.
Exp is < 2097152, operation order is exp*15/1024
906459*15/1024 = 13278
This agrees with what I see on Maxroll's exp calculator, so they are using 87 for the party bonus numerator.

I also checked a webarchive version of the old German exp calculator and the P8/P8 unraveler exp returns 0, so it might be accounting for integer overflow. The P8/P7 (1 unpartied) exp value is 13858 which agrees with Pavke's calculator, so it must be using 89 for the party bonus numerator. I'm not sure what version of D2LoD that calculator is based on.

It shouldn't be too hard to check this in a D2R online game if one can get 8 players to cooperate. I vaguely recall people still complaining about D2R wave 2 experience prior to patch 2.5, so I guess the game uses the 89 numerator.

Integer overflow would also affect bosses, especially Diablo and Baal with their massive base exp. Depending on the player and party sizes, it could overflow back to positive and still grant some experience. The patch notes only mention an "eight-player party", but the overflow for these bosses can happen at player counts lower than 8. So I wonder how exactly Blizzard implemented this fix in patch 2.5.

I haven't looked through the monster population section nor played with the calculator in depth yet, but I should have more time this weekend.
 
@Nano amazing feedback.
@Pavke love your work man, was just reading through your rof and a5 chest runs Reddit posts last night.

I do have some questions about the calculator. In particular I’m skeptical of the density data. How was that calcd? I’ve only seen saying it was calcd exactly but not how. But regardless ofc this would vary per map seed and as an example the total packs in AT seems a bit low.

Only other thing is that assuming full clears would make me think just tracking your own exp per hour would give better results, but your filtering by monster type helps with that a ton. Either way excellent work I love the sheet, and super cool to see which variables affect what.
 
  • Like
Reactions: Pavke
Thanks for the kinds words and feedback! Appreciate it

Experience Formula
I don't have a D2R ladder character to test party bonus exp, and non-ladder seems pretty dead, so I didn't verify it myself. Is the per party member bonus actually 89/256 and not 87/256? Amazon Basin notes that the bonus is 87/256 in 1.11 but was previously 89/256 in 1.10.
The Amazon Basin info is wrong in this instance. The correct constant is 89 in D2R and in D2 LOD 1.11+. The 87 constant was in 1.10. The formulas give the correct Exp numbers if 89 is used and wrong numbers if 87 is used. Tested it ingame.

As for Integer overflow in the party bonus calculation, is this fully fixed in D2R?
Patch 2.5 notes: "Fixed an issue where the experience sharing calculation for an eight-player party would rarely overflow and award less experience than normal."
The most common example of this was with Baal wave 2 and a full party of 8 people. I remember on old Bnet where the lowest level in the party would be asked to unparty during wave 2 to avoid the integer overflow bug nullifying Unraveler exp.

Let's see if I still remember the old exp calculation process...
Those Unravelers provide 767925 after monster type bonus, then 3455662 after the 8 player count bonus.

During the party bonus calculation, 3455662*7*89 = 2152877426 is greater than 2147483648 (2^31).
This would overflow to -2142089870 for the final party bonus operation.
-2142089870/256 = -8367539, this negative bonus would be added to the 3455662 player count bonus, resulting in a negative total. The experience would be set to 1 according to AB. Running this value of 1 through the remaining exp calculations should return a final value of 0 to the character.

Interestingly enough, if 87 is used in the numerator of the party bonus instead of 89, the first part of the party bonus calculation will no longer overflow: 3455662*7*87 = 2104498158, just under 2147483648.
2104498158/256 = 8220695
Add this party bonus back to base:
8220695 + 3455662 = 11676357
Using a full party of level 95's, with no anni/ondal/shrine as the example.

11676357*95/760 = 1459544

Next is the exp ceiling check, and it is less than 8388607, so we proceed.

Monster level penalty, clvl-7 (95-88).
Exp is > 1048576, operation order is exp/256*159
1459544/256*159 = 906459

Player penalty for clvl 95.
Exp is < 2097152, operation order is exp*15/1024
906459*15/1024 = 13278
This agrees with what I see on Maxroll's exp calculator, so they are using 87 for the party bonus numerator.
Yes, the Exp overflow bug is fixed in D2R. Tested in fully Party in Online game. Unfortunately, this part of Exp Calc won't be correct for D2 LOD where Exp overflow is still present.

I do have some questions about the calculator. In particular I’m skeptical of the density data. How was that calcd? I’ve only seen saying it was calcd exactly but not how. But regardless ofc this would vary per map seed and as an example the total packs in AT seems a bit low.

Huh... the density data was collected by... unconventional methods. Please correct me if I am breaking any rules by mentioning this: cough "automated assistant" cough was used. Each area was cleared around 5000 times, per each difficulty. So around 15k runs per area for data collection. Before each run, the seed was reset so we would have true random distribution.

As for Champion and Unique monsters. Their count numbers can be calculated using Markov chain model based on Min and Max Elite numbers (if we assume maps are random and you are not optimising for elite spawns like you can do in Tristram). These numbers ended up matching to empirical data to 2nd or 3rd digit. Here are some examples:

elites.png

@Pavke love your work man, was just reading through your rof and a5 chest runs Reddit posts last night.
Thanks! You can find more details about this there too
 
I do have some questions about the calculator. In particular I’m skeptical of the density data. How was that calcd? I’ve only seen saying it was calcd exactly but not how. But regardless ofc this would vary per map seed and as an example the total packs in AT seems a bit low.

Only other thing is that assuming full clears would make me think just tracking your own exp per hour would give better results, but your filtering by monster type helps with that a ton. Either way excellent work I love the sheet, and super cool to see which variables affect what.

I was also interested in the elite numbers in the monster population section. If AT elite numbers look low compared to what we see here in the SPF, it's probably because we run optimized maps, especially the part where we force the guaranteed unique monster at the chest to spawn at the end.

I think it's the same for Pit level 2 where the good maps will reach MonUMax before spawning in the guaranteed unique monster. I think those good Pit maps with 8.5 boss groups have level 1&2 split at around 5.5 & 3 bosses. Compared with Pavke's data, there's a larger discrepancy in level 2 numbers. Given how small Pit level 2 is and the guaranteed unique monster located in the back, I'm not sure why that is or how exactly the spawn mechanics work.

I think most D2 veterans should be able to judge exp rate themselves. Maybe newer players could mistakenly use the exp per run number when it is exp per hour they should be optimizing, but Pavke already has the disclaimer that the calculator can't provide exp per hour since that will depend on too many other variables. Agreed that the monster type filter is useful.


@Pavke Do you still have the raw data from those runs? I'm interested in knowing the standard deviation for Moo Moo Farm (Hell) in particular. For example, if the mean is 500 total cows across your random samples, what was the standard deviation in that sample? I'm not sure how useful this would be in assessing how good a certain cow map can be, especially considering that the total number of cows can vary from game to game, even within the same map seed.
 
  • Like
Reactions: Luhkoh
@Pavke Do you still have the raw data from those runs? I'm interested in knowing the standard deviation for Moo Moo Farm (Hell) in particular. For example, if the mean is 500 total cows across your random samples, what was the standard deviation in that sample? I'm not sure how useful this would be in assessing how good a certain cow map can be, especially considering that the total number of cows can vary from game to game, even within the same map seed.

I didn't spend much time getting all the statistics. For Moo Moo farm, depending on the map seed, you can get as few as 334 Cows up to 672 Cows per map.
I did look into Tal Rasha Tombs more closely so I could differentiate fake from real tombs:

tombs.jpg
I think it's the same for Pit level 2 where the good maps will reach MonUMax before spawning in the guaranteed unique monster. I think those good Pit maps with 8.5 boss groups have level 1&2 split at around 5.5 & 3 bosses. Compared with Pavke's data, there's a larger discrepancy in level 2 numbers. Given how small Pit level 2 is and the guaranteed unique monster located in the back, I'm not sure why that is or how exactly the spawn mechanics work.

In my data, for Pit1+Pit2, I got: (4.35+2.20) Uniques and (3.23+0.93) Champs. If you group my area and boss packs, its 5.43+2.51 boss groups for Pit1+Pit2. Pretty close to optimized 5.5 & 3 bosses.
 
  • Like
Reactions: Nano
PurePremium
Estimated market value
Low
High