XaiJu
Never Sink
Never Sink

patreon


Gem Tiering - A preview

This post will give a sneakpeak into how gem tiering will work in the upcoming update!

Gems in POE are getting more and more complex. They drop with quality, level, corruption state, they come with alternative qualities, can be awakened, can have a vaal form. Some of them have 3 or 6 levels and I don't expect it to become simpler over time.

To start off I wanted to split the gem tiering in two parts:

1) tierlists - these are based on the current game economy (NEW)
2) regular rule - these are "old" rules, that highlig economy-non-noteworthy gem drops (EXISTING)

As seen above, the regular rules already exist in the filter, but they'll see some refinement as well. These are mostly meant for the GCP recipe, lower strictnesses, selffound etc.

This post will focus on the tierlists. These will be economy-based, updated every 4 hours in the economy based filters as the other tierlists. As usual I'll be relying on POE.ninja as my data source.

If you try looking at poe.ninja you'll see.... ~7500 different type/quality/level combinations, with corrupted states. Bruteforcing these is not an option. It'll bloat down the filter, will be inaccurate due to all the noise and is just disgusting from the coding perspective.

So we need a filtering strategy. 

I decided to first find all the gems that carry an inherent value, no matter their level and corruption state. Simply by checking if their price exceeds a certain chaos value.

Currently I've set the thresholds to be:
T1 = 25c + ~12% of the ex price.
T2 = 6c + ~4% of the ex price.

At an ex price of 100c, it'll highlight gems as T1 if they exceed 37c in value. I'm still tinkering with these and might set them higher. It's a good starting point though.

Then I made a grouping algorithm, that gathers the data over one gem TYPE (such as "Divergent Vaal Haste" or "Awakened Fire Penetration") in one group. That means each group carries data for 1/0, 20/20, 20/20c, 20/23c, 21/23c [...] combinations, their prices and the number of items indexed on the market for every permutation.

I iterated through this data, and if the cheapest group, exceeds the T1-price, we highlight it as such. Then we split the groups into 4 subgroups: Awakened, Divergent, Anomalous, Phantasmal. The result is already satisfying. We mark around 100 different gems (though around 30% are vaal alt-quality gems) as so expensive, that they have a T1+ value, no matter their quality and level.

After fixing some bugs, I headed further.

I designed a function that allows me to search every gem-cluster for gems with *at-most* a certain quality, level, corruption state and also get their indexed economy count and price.

With that I built a bunch of rules, such as

"Does the version with at most 20l/20q, non corrupted cost at least T1 and has at least 2 indexed gems on the market" - "if so, move it to the tier dedicated for that".

Here's how the notation works: 

T1-20-20z -  if any gemgroup of a gem, with at most lvl20, qual20 and no corruption (z), has at least the price of T1, put it into a group with the same filter rules.

If a gem makes it into a higher tier, it won't get into a lower group anymore. You can think of it that way. "if a 20/20 gem is worth at least an ex, a 21/20 gem will certainly will be worth more". That being said, any gem can be in a T1 and a T2 group (and technically also in a T2q group).

We also ignore all awakened and alt-quality combinations for this part.

After some tinkering, I reduced it to 13 tiers (subject to change):

1) T1-20-20z ("z" stands for zero-corruption state, as in non corrupted)
2) T1-21-00
3) T1-21-20
4) T1-21-23

5) T2-19-00z
6) T2-19-19z
7) T2-20-20z
8) T2-21-00
9) T2-21-20
10) T2-21-23

11) T2q-01-15z
12) T2q-01-20z
13) T2-01-23z

Afterwards I spent several hours debugging, adding exceptions for certain gems (see the attachment for filter memes) and finetuning all of that. Also protected this section from having items removed during the first days of a new league.

The result looks pretty neat. The algorithm takes a split second to run and distills the 7500 combinations down to a few hundred. You instantly see, if a dropped gem is expensive and have the option to hide anything else. It's also a good preparation for the next leagues, since I expect all of the alt-quality gems to start rarely dropping in other content types.

I haven't quite finished a version that is good enough to share for testing, but I hope I can deliver that soonish :)

By the way, this is a bit of a more technical post. I'd appreciate some feedback, on if this is readable or too much and if you'd like more insights like that.

In any case. Stay safe and once again thank you for your support!

Gem Tiering - A preview

More Creators