Understanding Map Drops - a statistical Approach

Before I begin: I want to tell that I make this post because I do not like the way map drops work at the moment. So that is my perspective, and the analysis I've made is because of that (I found it more interesting than actually playing - which tells you something about both how much I think mapping is fun and how much I am a nerd). Everyone is welcome with their own perspectives on the topic, in fact, I invite you to!

But please, do me a favor - think before you post an answer to this thread. If you do not understand what I am writing about, read the spoilers. If it still is weird, feel free to ask. Also, there are a million ways you could attack this modeling, but before you do so, ask yourself if you can do any better.

This post (and thus, thread) is going to be long and pretty heavy on statistics for the average PoE player I assume - well, maybe not, maybe we are all nerds, who knows. There have recently been two interesting threads by ScrotieMcB:

Understanding map drop streaks
The Chisel Bubble

If you find those two threads hard to understand, this post will most likely give you headaches. Just a warning. I will use spoilers as much as possible to organise and provide additional explanation if needed.



1) Goal of this

The goal here is to build a model that approximately describes how map drops work in PoE, and analyse what the results are - what kind of maps you can run, how often and so on. Analysing this can potentially help understand why some people are deeply frustrated with map drops.



2) Some assumptions

2.1) Map drops are truly random
This means, there is no special thing about you, your character, your account. Party play doesn't increase drop chances, neither does IIQ on your gear. Seed? Of course the seed plays a role, but I assume GGG uses a good pseudo-random number generator and thus the results are "random enough" for all purposes they use them for.


2.2) Map drop chances stay constant over time
This is not true, but they might be over the course of a league, like Talisman. Not sure. Without this assumption, we can do pretty much nothing. Thus, I make it. If it is not true, the variance will be higher, the rest of my results should still be approx. true.


2.3) Effective IIQ is linear
This assumes that there are no diminishing returns for IIQ on maps, and none for pack size, such that the expected number of maps in a map with x% IIQ and y% pack size is (100%+x%)*(100%+y%) times that of a white map, except for the flat 20% boss map drop chance.


2.4) Statistics from past map runs can help us determine the relevant parameters for our model
Well, if not, we have a problem anyways. But I think they can get us pretty close, from there, we have to fiddle a bit to make the results match the observations


2.5) The model, while not perfect, will tell us something meaningful about map drops
We cannot produce a perfect model unless GGG tells us the relevant parameters. This is not going to happen. However, I think we can make a model that is good enough to describe some basic trends, and I think some of the trends the model shows are somewhat worrying, and could be improved upon


3) What this post is not
Spoiler
A blind rage. Too much reflection already done for that. Also, it is not a suggestion on what can be done better. I have ideas for that, but reserve them for a later post.




4) What the model does

What the model does is pretty simple: It starts with a map pool, for example a single T1 map. It then chooses the highest-tier map in the map pool, removes it from the pool, "crafts" it virtually, "runs" it virtually, determines the results, and adds the maps that "dropped" to the map pool. If the map pool is empty, it will run a T1 map (assuming here that there is an infinite supply of T1 maps).

Why the highest map? Isn't that a bad idea?
Yes and no. If you want to level to lvl 100, it probably is, because then you can do things more efficiently. However, running the highest tier map always will let you climb through the map tiers fastest, because maps you don't run are "dead capital", just rotting in your stash. Also, if you are trying to maintain a static pool of X maps per tier as a minimum, you are effectively doing the same as running always the highest tier, just with some dead capital lying around. If you want to get to T15 fast, it is the best strategy to run always the highest map. Also, it is the simplest strategy I could think of, so good for our statistics purposes.




5) Determining the parameters for the model

To virtually "run" a map, we need to know what drops a map generates. Fortunately, I can go back to the statistics I made during 2.0 on map drops. However, this might be boring for some of you who just want to to see the end results.

I am interested - How does it work?
From the statistics, we can determine an empirical drop function, which looks like this:



So IF a map dropped in a map, it had an about 18% chance to be the same level as the map I was currently in. It also had a 2% chance of being +2. The problem is, I did not note down what dropped the maps, so in fact, these are three distributions overlaid: The drops from normal monsters, the ones from magic/rare monsters and the drops from bosses. We have to disentangle them. Yeah, well.

So what I came up with is this idea: Drops are distributed like a Gaussian. The highest chance is for same-tier drops, and drops off the further you are away from same-tier. This can be seen in the -7 to 0 tier drops (I cut off the -8 and lower drops because I mostly ran T8 maps). Then, the magic/rare and boss drops follow the same distribution, with the difference that they can actually drop +1 and +2 maps.

Overlaying the three distributions and fiddling a bit with the parameters gives this:



Looks not too bad. If you are really interested, the parameters are:

Parameters
% global variance in map drops around own tier (larger means more
% spread, smaller means mostly same-tier maps drop)
sigma = 4.5;

% base drop chances per map from normal / magic mobs and boss (these
% will be influenced by map mods)
BaseDropsNorm = 0.5481;
BaseDropsMag = 0.3837;
BaseDropsBoss = 0.1123;

% Flat boss drop chance for a map (this is 20% and not influenced by
% map mods)
FixedBossDrop = 0.2;


From the total map drops and the number of maps ran I can also estimate the average number of drops per white map, which is assumed to be constant across all tiers. It is 0.5481+0.3837+0.1123+0.2 = 1.2441 maps. Pack size and IIQ increase this number. The boss drop flat 20% chance is not influenced by pack size or IIQ.

All this assumes that there is a global, underlying map drop function for all Tiers. I make this assumption because I have to start somewhere. It is probably not true, as I will discuss further down, but it is a good starting point. This means that no matter what Tier you run, the chances of getting a -1 as a drop are the same compared to a -2 drop (relatively, the absolute chances for a -1 in a T2 map are higher than for a -1 in a T13, just because there are fewer Tiers to choose from).



6) Running the model a bit and doing a sanity check

The model seems to generate what we expect of it.

Spoiler
OK, so time to run the model. Let's generate a few map runs and see what comes out.

1 ->
1 -> 1, 1, 2, 3
3 -> 2, 3
3 -> 3, 4
4 -> 2, 3
3 ->
3 -> 4, 1
4 -> 4, 5
5 -> 4, 1, 1
4 -> 1, 4

Looks not too bad. Let's look at some higher-tier drops:

9 -> 1, 6, 9, 4
9 -> 4, 5
9 -> 7
9 -> 10
10 -> 6
9 -> 7, 3, 11
11 -> 8, 10, 6, 12, 11
12 -> 8, 11, 10
11 -> 7, 9
11 -> 10, 11

Some really nice maps there, and some mediocre ones. Check that +2 drop from the T9 ;). This is already assuming some pack size / IIQ, as I will explain in a bit.




7) IIQ, pack size and running the model for a million runs...

OK, so we have the basic parameters, and we have seen that it somewhat works, and now, we can run the model. GGG supposedly simulates a million map runs, so why do anything less? Computer power is cheap these days. Takes a minute or two (because my code is really not optimised at all), but who cares?

I hope you know what a histogram is and how it works, if not, check Wikipedia for a complicated or this for a slightly less complicated explanation. I will use histograms here, because they are super useful to show what kind of maps get run. And that is probably the most important factor, at least for GGG to decide how to balance map drops.

7.1) White Maps
Starting from a map pool of T1s, let's just ignore everything, virtually run all maps white, and see what happens. We assume full clears and killing all bosses (yay at the Desert boss.... btw did it get nerfed recently?).



OK, so we cannot sustain T8s white. That is to be expected, it agrees with our experiences in-game, and it is good that way. Sustaining T8s white would be somewhat stupid. We cannot even sustain T2, but we do mostly run T2s. We still get our average 1.2441 maps per map run, and only use one, so we slowly start piling up maps. Since for the low tier maps there are decent chances to get a same map or an upgrade back, we spend most of our time in tiers higher than T1, only a bit less than 25% of our maps are T1 maps.

Interestingly, we even get to see some higher-tier maps. Some really high tier maps in fact. Within a million map runs, we get 2 T14s, 9 T13s, 28 T12s (all that is more than I have run so far of those tiers). So yeah, even with white maps, you will eventually see a T15 if you play long enough. It just takes like, forever. So don't try that at home.


7.2) Alch-and-go
OK so white maps don't get us anywhere. Instead, we will run our maps alch-and-go style now. Fortunately, ScrotieMcB was so nice to do some calculations in the other thread already, and it varies a bit with map tier, and probably his calculations are a bit off because the chances for the different mods are not exactly the same, but who cares. We will go for 83% EIIQ on average for an alched map (IIQ and pack size combined). We now get on average 2.2767 maps back (and we assume we do no up-vendoring). Again, 1 million simulated map runs:



Now, we sustain T6s. In fact, we almost sustain T7, but certainly not T8. T7 is the map we run the most. Not in line with your expectations / experiences? OK, there are two things here: First, you probably vendor up your T6 maps. Second, our statistics were determined from the beginning of 2.0, and map drops have been buffed since then. So, still, seems like all is kind of fine.


7.3) Somewhat realistic map running
Now here it comes to "rolling" maps. Virtually rolling maps. You could say that you just try to sustain the highest maps and just roll at least 30% pack size on your maps and 100% IIQ, for 160% EIIQ. Well, let's see...



I am not sure (since I don't roll my maps that high) if this is realistic, but I would tend to say no. Easily sustaining T12 and having actually too many T12? Probably not, especially since 160% EIIQ is not particularly high, and remember that our parameters were determined at the beginning of 2.0. So there are two possibilities here. Either the IIQ in maps has diminishing returns (I would not be surprised) or the map drop function is not universal (but either broader or more in favor of lower-tier maps for the highest tiers). Neither of these things would surprise me. It might be a mixture of both.

In the end it doesn't really matter that much. We just adjust our EIIQ a bit to match what we observe. Some statistical effects can still be very well seen. I just came up with the following formula: EIIQ = 30% + 7%*tier. This results in 100% EIIQ for T10 and 135% EIIQ for T15. It also is quite a bit of EIIQ for low-tier maps. This is what we get:



Looks pretty cool, no? Sustaining T11, and we get to play about 6% of T15. I personally cannot sustain T11, but remember two things: First, this is after a veeeeery long time, where RNG pretty much evens out completely. Second, this is supposed to be for someone who knows how to roll maps, and does so well. So let us be positive about things. The model seems to produce something useful. And it looks good, so we can have nice mapping... we will soon see that things are in fact, well, not that great.

Because while this looks really nice and like one could be happy about it, if you look closer, you find some pretty ugly facts...




8) Analysing our virtual map runs in more detail

OK, so this is what we have:



A histogram of a million map runs, starting from T1 and going to sustaining T11 and running T15 regularly. Probably what a lot of players want (even though it was just pointed out that leveling to 100 is faster with an ultra-fast clear speed build in T9-T11).

Now let us take a closer look:

8.1) Climbing through the map tiers
Keep in mind that this is all random, and if I re-ran the model, it would look different. But I do not think this is a particularly strange or extraordinary example.

These are the first 50 map runs:



Looks not too bad. A bit unlucky at the beginning, but then we go to T6 maps. Nice.

Now let's look at the first 1000 map runs:



Oh my. We are dropping back to T4 and dropping back to T4 all the time for like forever. It takes more than 700 runs, upon which we shoot up to T13, just to drop back to T6 after 1000 runs.

First 5000 map runs:



We run our last T10 after 3200 runs. After that, we actually never drop back. This is how long it takes us to stabilize our map pool. 3200 runs is a very long time. For an average player, including rolling, trading and stuff, it takes probably 10 minutes to run a map. That is 533 hours or more than 13 40-hour work weeks of pure mapping time.

My suggestion: Shorten this time by buying a map pool. It saves you a lot of headaches. And yes, you can shorten this time by alching every low map. The "power player" example (roll EVERY map to very high pack size and IIQ, even T1s) plays his last T9 after 140 maps or so. The alch-and-go player plays his last T5 after 500 maps. I will not analyse this here in too much detail because my statistics is for higher-tier maps and I am not too sure it is very valid for the climb through the tiers.

It doesn't, however, seem completely unrealistic now anymore though that players get "stuck" in T6 or T7 maps for a long time. You might just have to be unlucky, and not even extremely so. Which would be bad, because it is discouraging. Please stop telling such players that they should just learn to roll their maps properly, it's not helping.


8.2 Map streaks
I think this is a bit of a bummer. Climbing through the map tiers can be shortened by buying maps, and really, it is maybe not that much of a problem. But when doing high-level mapping, your streaks can be long, and discouraging. Now within a million map runs, all kinds of shit happen, so let us only look at a the last 10'000 map runs, and find the best and worst 100-map streak. This is the same as 100 players running their maps identically rolled and looking at the most lucky and the most unlucky guy. Within these 10'000 map runs, the most lucky and most unlucky streak are (remember that at this point, we have a practically infinite pool of T11 maps, so we never drop below T11):



So one of them sustains T13 and plays 21 T15s in this time, the other one plays 3 T14s (I also saw streaks where there was not a single T14, btw, but they had higher average) and mostly T11, with the same map rolling. The unlucky guy also burns through his pool of T11s quite fast, losing probably 20-30 T11s during these 100 runs (I did not check this, this is a guess). One of them probably feels really happy, while the other one is annoyed. This means 1% of the player base is happy, while another 1% one is badly annoyed.

Now, you could argue that the same happens with Exalt drops. Well, not quite. Let me explain.


We are playing a T15 about 6% of the time, right? That means that we are playing a T15 every 16.5 maps. Nice! Or not quite.

There is a nice distribution which describes rare events. Like, if you roll a 20-sided dice, how long do you have to wait for the next 20? This is handled by the so-called Geometric Distribution (Wikipedia). This means, that if something happens every 16.5 tries, your "wait time" between these events (in this case, T15 map runs) should be distributed like one, right? Wrong. This is what the geometric distribution looks like compared to the real "wait time" distribution (you could also do this for T14 or T13 maps):



What we see is that real map drops (or simulated map drops) are more streaky than pure random. We have more very short wait times (streaks of 4 T15s in a row, for example), few "medium" wait times, and more very long (100 map runs and more) wait times. Why? Because to get a T15, you must first run a T15 or a T14 (or a T13 and get real lucky). This is what everyone calls "layered RNG", and I think it is too much.

Let us assume you get annoyed if you do not get a T15 after 50 runs. You are annoyed until you find the next T15.

With a geometric distribution, you would be annoyed about 5.4% of the time. In our simulation, you would be annoyed 36.1% of the time! Even if you are tolerant and only get annoyed after 100 map runs without a T15, you are still annoyed 17.4% of the time (compared to 0.3% of the time with a Geometric distribution). Even though, on average, you play a T15 every 16.5 maps.

Long map streaks happen. And they suck. They are not good for the players morale. And also, they can lead to the impression that rolling maps good doesn't help. The player, I think, needs more feedback and rewards for doing things right. Averages over hundreds of map runs are just not what sticks in the head for the average player. The variance is very high, I think it is too high. And I think it can be softened without removing RNG, and I will post about this later (maybe next week, these things take time).

BTW I am aware that this can be "softened" by saving up high-tier maps.




9) Conclusions

No. 1:
Map drop streaks happen, and happen over hundreds of maps. They do even out, but only over VERY long periods (thousands to tens of thousands of maps). The longest "dry phase" between two T15 runs in my model was 1101 runs without a T15 dropping, even though on average a T15 dropped every 16.5 runs.

No. 2:
Climbing through the maps tiers can be painful, and probably you can in fact get stuck, even when rolling your maps "right".

No. 3:
Most likely, either diminishing returns are in place for map IIQ, or the map drop function is not constant over all levels.

No. 4:
T15 (or T14) maps drop VERY significantly different from e.g. Exalts or Shavs, so comparing them to them is kind of pointless. The reason for this is the layering of RNG that GGG has bestowed us with.



10) Things that I did not take into account

Spoiler
Things that I did not take into account are numerous. They include, most importantly, Vaal orbs, Zana missions, and Cartoboxes. However, Cartoboxes are anyways really rare. Zana dailies were also not considered, but they hardly matter anyways because Zana was nerfed so badly.

Also, I assume all maps are rolled identical. This is of course not true, but simulating that would just even further increase the variance that I am already criticising.

Up-vendoring and buying maps was also not taken into account. I might look at those at a later stage if people are interested.




One final comment:
If any GGG employee reads this, I would really be interested on how much I got right and where I went wrong :).
Remove Horticrafting station storage limit.
Last bumped on May 16, 2016, 5:30:04 PM
OK, up to part 2.

Disclaimer here: I am pretty sure my model is wrong by now. Why? Because it shows that climbing through the map pool is extremely tedious. I think by now that maps are easier to sustain for lower maps and harder to sustain for higher maps, possibly by shifting the general map drop function towards T8 or T9 maps a bit. I could implement that, but it would be pointless because I would just be making educated guesswork.

The general effects my model produces are present in the real map drops, but most likely less pronounced.

That being said, let us analyse some more


Does it make sense to build a map pool rather than run your highest map first?

Short answer: No. More detailed answer: In almost all cases, no, in some cases, maybe, but probably still: no.

In detail:

Spoiler
OK so this is the conservative approach: Wait for a pool of 10 maps to build up, then move to that map tier, run it until you run out or move up to the next tier. If you fall down (i.e. from T9 back to T8), build a new pool of at least 10 T9 maps before moving up. This is what a lot of people do.

Now I have simulated, starting from an infinite pool of T6 maps, 1000 times 1000 map runs. The average map ran after X runs looks like this (comparing the "build pool" approach with "always run highest":



The map pool building is just - not surprisingly - a lot slower than when you just always run the highest map. So are the maps you run. The reason is that you have "dead capital" in your stash. The only benefit from this is the psychological effect.

However, this does not save you at all from dropping back in level. Let us look at a perfectly normal, average run out of those 1000 runs:



As you can see, you always keep running a certain tier for at least 10 map runs. Things are more predictable, which is good. But you do drop back, from wherever you go. It doesn't help prevent that. Even though going up to T10 and building up pools, the player drops back to T6 in this case.

Spoiler
In reality, this might not happen that badly, as I said, my model is not perfect.


The reason is that you need the higher tier maps to sustain the lower tiers. You cannot sustain T8, if you do not run T9/T10/T11 maps. You can sustain T8+, but not T8 alone. That is a fact that has to, eventually, be recognised. I was not fully aware of that, but this shows it clearly.

Now, you might think "well at least I am going to save those T14/T15 maps for when I really need them". OK, wrong again. Let us look at what happens when you do that, and compare it to what we saw initially:



By not running T14/T15 maps, you are significantly reducing the average map level you run, because the T14/T15 maps help you sustain your T11s. You need to run them in order to sustain lower tiers. As said before, the effect is exaggerated in my model, but the effect is certainly there.



Map drop streaks: More about them

Short summary: Map drop streaks can be really bad, and they do not depend on how you roll your maps. And they can be long. So please, if someone has problems with maps, be helpful rather than telling them to learn to roll their maps. This is really not helpful. Ask them how they roll their maps, and if there are obvious problems with that, discuss those with them. But it might be that they are rolling their maps perfectly fine, and yet don't see any results.

In detail:

Spoiler
So above, I showed the average of the "run your highest map first" strategy. Out of the 1000 virtual people running 1000 virtual maps, here is what the luckiest and unluckiest person experienced:



Wow. That is pretty extreme. This is the exact same map drop distribution, the distribution that allows you to sustain T11, and starting from an infinite pool of T6 maps. The unluckiest person is falling back to T6 even after 1000 runs. The luckiest person shoots up to T15 and stays above T12 from there on. The fact that T11 is sustainable doesn't mean anything. It really doesn't. Not for that unlucky person.

Now, this is one of a thousand, so he is really extraordinarily unlucky. But still. It sucks. Hard. The only solution is to trade, but here comes the human factor: If you have been to T10 and seen that it returns nothing, are you willing to buy T10 maps for several chaos and try again? Probably not. It feels shitty, because it is shitty.

Spoiler
Again, probably not that bad in reality. However, I still feel that map drops until the design point of sustainability should be buffed. Essentially, if it was up to me, I would make sustaining anything up to T12 easier to sustain and the highest maps harder to sustain. That way, T15 still feels special, but is reachable for mere mortals and less-lucky people.


Now, for comparison, the "build pool" technique:



So what you are essentially doing is making it impossible to get really lucky, while still being able to be unlucky. Yeah well, not going for that again ;).




Conclusions:


1)
Building a pool makes sense almost never. It just makes your climb through the map tiers longer. It has a slight psychological effect, though.

2)
The fact that Tier X maps are sustainable doesn't mean anything if you are unlucky. You can be caught in significantly lower tiers and stay there for a very long time.

3)
Layered RNG is the reason for this, and it is not good IMHO.
Remove Horticrafting station storage limit.
Last edited by Char1983 on Feb 6, 2016, 12:13:47 PM
[reserved]
Remove Horticrafting station storage limit.
To be honest, I didn't read the entirety of the original post, but only because there's a lot there.

I've been playing around two and some change years now and I can tell you the best way to get map drops is to roll for magic and rare mobs on maps with at least 60%+ quantity.

Why?

Well... Because magic and rare monsters are guaranteed to drop a percentile amount of items on their death. So all you're doing is increasing the drop pool by default code standards and then surplussing that amount by the quantity amount.

Strongboxes are another nice pull. Even non-cartographer boxes.

Aim for + items, but don't spend more than 5-10 alternation orbs to achieve it. Maps drop variably and (most definitely) have a diminishing return of hierarchy.

EDIT: The rest is just random number generation. Or, well... The whole thing is, but it's essentially a die cast every time you kill something. I imagine it's like a slot machine for the drop pool where a number has to hit for T1 AND then another number has to hit for T2 and so on. So it's more of an exponential equation result.

I can't say that for sure, but it makes sense for all drop types that it has to achieve a numeral of "positive results" before the item tier or rarity is considered.
Last edited by PoofGoof on Jan 27, 2016, 12:21:59 AM
Here's my understanding the map system is fucking terrible.
Dys an sohm
Rohs an kyn
Sahl djahs afah
Mah morn narr
Wonder-full post Char1983

Will read tomorrow, but looks promising at a first glance.

Peace,

-Boem-
Freedom is not worth having if it does not include the freedom to make mistakes
"
Boem wrote:
Wonder-full post Char1983

Will read tomorrow, but looks promising at a first glance.

Peace,

-Boem-


Indeed.

@ OP: You'll have to forgive my prior "at a glance" post with my own opinion attached.

I'm a little *cough* tilt this evening and don't much expect that I'll digest the information presented in a fair method.
Of course there are better and worse strategies for rolling maps. The thing is, I think even within the current system, there would be better ways of dropping maps, that would neither remove RNG nor be just a straight buff to map drops.

Even though I think that the best way would be a more fundamental new approach to end-game and I also think map drops should be buffed.
Remove Horticrafting station storage limit.
I will say this, map drops don't need to be buffed once you get into t14 area.

Getting past t10, however, is a fucking nightmare.

It should be steady into t11-t12 and the t13+ area should be slightly more restricted.

Overall, a buff to the pool without hindering a sense of progression.
Wow this looks like a promising post. So rare in GD. I will read it's entirety this evening.

What I already noticed in point 5:

"So what I came up with is this idea: Drops are distributed like a Gaussian". When I look at the empirical distribution function, it doesn't really look like a Gaussian. Before you assign a mathematical distribution funtion to emperical data you need to do a Chi-Square test.

Can you explain technically (or mathematically) how your model "crafts" maps virtually, "runs" maps virtually, determines the results, and adds the maps that "dropped" to the map pool.

I am assuming you make use of a Poisson distribution with an average of 1.2441 to determine the amount of maps you get every map you run. Then a Gaussian distribution determines the tier of each found map.
Heart of Purity

Awarded 'Silverblade' to Talent Competition Winner 2020.
POE turned into a ratrace for the most div/hour.
https://www.youtube.com/watch?v=NDFO4E5OKSE
Last edited by Reinhart on Jan 28, 2016, 7:38:15 PM

Report Forum Post

Report Account:

Report Type

Additional Info