Harvesting Pull: Design

Discussions of the design and development of in-game content.

Moderator: Team Members

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Harvesting Pull: Design

Post by Eradani » Thu Jun 10, 2010 5:26 pm

SCOPE OF THIS POST

This post is concerned only with what happens when you harvest a node. Spawning and despawning is covered somewhere else. I am concurrently developing these algorithms in javascript where you can simulate a number of pulls on a certain node type and tier to help decide how much the numbers need tweeking. Finally, I will translate this into SQL and C++, dependant on my understand of their syntax and our database structure.

THE HARVESTING PROCESS

- Each node has 3 pulls associated with it. These are tied to the node and not the harvester - meaning you can harvest 1 pull, go away and someone else can get the other 2 pulls.
- What you get from a node is determined when you harvest it. It is entirely dependant on your skills and the RNG.
- Nodes despawn every x seconds and respawn [somewhere else] in y seconds.
- You can only get a chance at a fail if your harvesting skills are not maxed out.
- You can only get a skillup if you are harvesting a node that isn't trivialized and your harvesting skills aren't maxed out.
- You get a chance for a roll in the bonus table if your skill is maxed out based on how far over the x8 lvl your skills are.
- To harvest a node, your skill must be high enough.

OVERVIEW OF HARVESTING STEPS

1) can we even harvest this node? do we get a skillup or fail on the pull?
2) choosing the pull table (base or bonus)
3) the pull type based on the node type and pull table (1 common, 3 common, 5 common, imbue, rare, 10+rare)
4) the actual item(s) returned

HARVESTING SKILL

- your Unmodified Maximum Skill for harvesting is the max of your (adventure lvl and tradeskill lvl) * 5
- given skills of y/x: y is your Current Skill, and x is your Max Skill
- your skills are said to be maxed when y==x
- your Modified Skill includes any buffs from harvesting tools and other items
- your Modified Skill is used in the following calculations unless I specifically say Unmodified
- to harvest a node, your Current Skill must be >= the node's Base Skill
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Thu Jun 10, 2010 5:27 pm

NODE ATTRIBUTES

- Tier: 1..9
- Base Skill: minimum skill needed for this tier. Except for T1 (0), T2 (20), the x8 skill of the previous tier
- Bonus Skill: skill needed for chance at bonus table. Except for T1, the x8 skill of this tier.
- Trivial Skill: what skill lvl the node trivializes at - ie) won't give a skillup. Except for T1 (45), the x1 skill of the next tier. This breaks down in T7 (or possibly T6, but I can't remember as it's been 3 yrs since I did skillups for T6). I believe this breakdown is due to xpac caps and buffs from harvesting tools.
- Pulls Left: starts at 3

A Note about Skillups: I know for a fact that you can get up to 400 harvesting skill in TT or BS. I never capped out in RoK, but I got more than 405. And I have gotten over 500 in SF. T6 may follow the formula as I'm fairly sure there were no items with harvesting buffs in the original game and I'm going to leave it at 305. I'm going to do what Domino probably did and just guess at 450 and 550 for T8/T9 to allow for skill buffs. Note that T9 is further over the formula cap as there were way more buff items introduced since RoK and people may have had problems maxing their skills.

If we were using formulas for these values, they'd be as follows and riddled with exceptions:
- node.tier; /* 1..9 */
- node.base = node.tier==1 ? 0 : node.tier==2 ? 20 : ((node.tier -1)*10 -2) * 5;
- node.bonus = base(node.tier +1) -1;
- node.trivial = node.tier==1 ? 45 : (node.tier +1)*10 +1) * 5;

But they, and we, aren't using formulas except as a basis from which to modify the values.

Code: Select all

            T1   T2   T3   T4   T5   T6   T7   T8   T9
x9skill = [ 45,  95, 145, 195, 245, 295, 345, 395, 445];
base    = [  0,  20,  90, 140, 190, 240, 290, 340, 390];
bonus   = [ 19,  89, 139, 189, 239, 289, 339, 389, 439];
trivial = [ 45, 105, 155, 205, 255, 305, 400, 450, 550];
                 cl   ts   el  feer  ss   tt  rok   sf
The following link illustrates the chance at getting a pull from the bonus table. The first table is based on node.base as defined above. Notice how high this chance is for T1 and how low it is for T2. The second table is based on T2 base being 40 and T1 bonus being 39. The chance at the bonus table is still higher for T1, but that's working as intended. Overall, the chance at the bonus tble is more even. Note that this is not the rare drop rate, it's the chance to get a pull from the bonus table which has a slightly greater chance for a rare.

bonus table.html
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Thu Jun 10, 2010 5:27 pm

PULL TABLES

In an example of how the bonus tables work, Domino said:
The "base" table might tell you that you have a 70% chance of getting 1 root, a 20% chance of getting 3 roots, an 8% chance of getting 5 roots, a 1% chance of getting an imbue, a 0.7% chance of getting a rare root, and a 0.3% chance of getting a rare root + 10 common ones.
and
The "bonus" table might tell you that you have a 60% chance of getting 1 root, a 25% chance of getting 3 roots, an 10% chance of getting 5 roots, a 0.5% chance of getting an imbue, a 0.8% chance of getting a rare root, and a 0.7% chance of getting a rare root + 10 common ones. (Yes, the numbers probably don't add up to 100%, I just invented them on the spot.)
Since the base numbers do add up to 100%, I'm inclined to believe that this might actually be true. I've looked and looked and can't find really any information or even theories on rare drop rates other than Zexis saying "It is also widely regarded that the percentage chance to pull a rare on the base table is in fact .3%" in this post. However, that's 3/1000 and I don't buy it. I do buy the 0.7% for a rare and 0.3% for 10 and a rare (which might be what Zexis meant). For this example, I'll just go with the numbers Domino gave for the base table.

Since the numbers given for the bonus table only add up to 97%, I'll have to make something up for now.


PULL TYPE

The pull type is one of 1 common, 3 common, 5 common, an imbue material, a rare, or 10 commons + 1 rare.

We need to take into consideration the node type when designing the pull type. One might assume that each node type has the same chance at each pull type, however, fish nodes have no rares and ore (not T9) and rock have 2 rares. Domino has stated the rare drop rate for nodes with 2 rares will be twice that of other nodes so you have an equal chance at getting any type of rare.
a greater chance of loam/ore, and metal/gem rares. Previously, those 2-rare nodes were giving 1 rare per X amount of time, like other nodes. This actually means that compared to a 1-rare node like roots, you had only half as much chance of getting a particular rare from a 2-rare node. The node was dropping rares at the same rate, but since your chances were divided between two different rares, they were less common. So, the rate of rares from 2-rare nodes was bumped up a bit to compensate for this.
fewer rares in T2+ -- so overall, a slightly higher rate of rares in T2-T6 than we had before GU37 (by no more than 0.22% at most - that in T2 and T3 - less than 0.1% difference everywhere else)
Note: GU37 was the rare drop rate fiasco when people were getting (almost) more rares than commons for a month till it got fixed.

What this last quote says to me is that they have both base and bonus pull tables for each tier and maybe each node type also. That would be 2 table type * 7 node types * 9 tiers = 126 pull tables. Put another way, that would be one table with 126 entries - which sounds a little easier to take but still lots of mucking about that doesn't really seem necessary.

I'm starting with the assumption that the rare drop rate is common across all node types and tiers, with allowances for number of rares.

Columns:
a) 1 common
b) 3 common
c) 5 common
d) 1 imbue
e) 1 rare
f) 10 common + 1 rare

Code: Select all

Node Type  Tier  Table    a    b      c    d    e    f
ore          9   base   70.0  20.0   8.0  1.0  0.7  0.3
ore          9   bonus  54.9  30.0  12.0  1.5  1.1  0.5
fish       255   base   70.7  20.2   8.1  1.0  0.0  0.0
fish       255   bonus  56.1  30.3  12.1  1.5  0.0  0.0
ore        255   base   69.0  20.0   8.0  1.0  1.4  0.6
ore        255   bonus  53.5  30.0  12.0  1.5  2.1  0.9
rock       255   base   69.0  20.0   8.0  1.0  1.4  0.6
rock       255   bonus  53.5  30.0  12.0  1.5  2.1  0.9
255        255   base   70.0  20.0   8.0  1.0  0.7  0.3
255        255   bonus  54.9  30.0  12.0  1.5  1.1  0.5
To see how I derived numbers for bonus tables, and for the exceptions with 0 or 2 rares for a node type:

pull type chance.html

Now we know that T1 has a much better chance for rares and that the rare drop rate is supposed to decrease in higher tiers, so idk wtf to do with this. Maybe back to thinking about 126 table rows :(
-------------------------
edit: already I've remember that T1 has no imbues, so I've got to add:
fish t1 base and bonus
ore t1 base and bonus
rock t1 base and bonus
default t1 base and bonus
for 8 more rows, so may as well just make a table with 126 rows.
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Thu Jun 10, 2010 5:27 pm

ITEMS HARVESTED

Note: I haven't gotten "far" with this part yet, but far enough you can see where I'm going (I think).

At this point, we know the node type, it's tier, the number and rarity of the item(s) to be returned. Now we decide items we've harvested based on the node type. Imbues are the same for each tier. What concerns us now is deciding which common to return and, in the case of ore and rocks, which of the 2 rares.

Code: Select all

      tier  rare        common(s)
Fish   7    ----        fish1
Fish        ----        fish1, fish2
Bush        root        fruit, vegetable, tea, coffee
Root        root        root
Wood        wood        wood
Den   8     pelt        pelt
Den   9     pelt        pelt
Den         pelt        pelt, meat1, meat2
Ore   9     ore         ore
Ore         ore, loam   ore, loam
Rock        gem, metal  gem, metal
Note that there are no T9 loams. Also, I read that they're going to start dropping meat from T8 and T9 dens so that will change, but for now, we're not concerned with T8 or T9 and their 4 or more types of meats.
if you get a single item harvest from a trapping node, you have twice the chance of it being a pelt than a meat. For 3 and 5 item harvests they're equal chances (which means more meats overall). This was intended to give pelts a small but not overwhelming boost in drop rate.
and later
yet more pelts than meats (in 100 harvests, look for about 66 pelts and 33 meats)
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Thu Jun 10, 2010 5:28 pm

reserved
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Thu Jun 10, 2010 5:28 pm

reserved
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Thu Jun 10, 2010 5:28 pm

reserved
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Scatman
Retired
Posts: 1688
Joined: Wed Apr 16, 2008 5:44 am
EQ2Emu Server: Scatman's Word
Characters: Scatman
Location: New Jersey

Re: Harvesting Pull: Design

Post by Scatman » Thu Jun 10, 2010 5:58 pm

Wow excellent info. This is exactly what we needed!

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Fri Jun 11, 2010 6:16 am

Edited 1st post to put in some links.

Edited Pull Tables:
edit: already I've remember that T1 has no imbues, so I've got to add:
fish t1 base and bonus
ore t1 base and bonus
rock t1 base and bonus
default t1 base and bonus
for 8 more rows, so may as well just make a table with 126 rows.
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Sun Jun 13, 2010 9:41 am

More Assumptions:

- if your harvesting skill isn't maxed, you can fail even if the node is trivial

Any idea if this is true?
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
ZexisStryfe
Posts: 1026
Joined: Thu Jul 26, 2007 6:39 am
EQ2Emu Server: Sytherian Legends
Location: Connecticut
Contact:

Re: Harvesting Pull: Design

Post by ZexisStryfe » Mon Jun 14, 2010 5:49 pm

Very nice work.
~ EQ2 Emulator Project Manager

Image
Image
Image
"Zexis, from this day forth, you shall be known as... '3 of 6'" - John Adams

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Mon Jun 14, 2010 6:33 pm

thx = )

i'm getting there, but been really tired all weekend due to forest fires somewhere on the planet.

i've the choice of 1 common, 3 common, etc done and in the process of making (yet again) more tables for converting 1 common into a choice of 4 food types.

of course, all the % chances are based on that one line of example data domino gave for T4 root nodes base table, which may not even be right.
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
ZexisStryfe
Posts: 1026
Joined: Thu Jul 26, 2007 6:39 am
EQ2Emu Server: Sytherian Legends
Location: Connecticut
Contact:

Re: Harvesting Pull: Design

Post by ZexisStryfe » Tue Jun 15, 2010 7:32 am

Eradani wrote:More Assumptions:

- if your harvesting skill isn't maxed, you can fail even if the node is trivial

Any idea if this is true?
No matter what, you always have a chance to fail, even if maxed out.
~ EQ2 Emulator Project Manager

Image
Image
Image
"Zexis, from this day forth, you shall be known as... '3 of 6'" - John Adams

User avatar
Eradani
Posts: 192
Joined: Wed May 05, 2010 6:25 am
Location: Saskatchewan

Re: Harvesting Pull: Design

Post by Eradani » Tue Jun 15, 2010 6:08 pm

ZexisStryfe wrote:No matter what, you always have a chance to fail, even if maxed out.
If you do get a chance at fail when your skills are maxed, it must be 1/1000000000000000000 cause I've never seen one.
my client version: 12682L, 2016/06/06
last one that will run on XP cause i'm just a stick-in-the-mud

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Harvesting Pull: Design

Post by John Adams » Wed Jun 16, 2010 8:28 am

You have harvested 1000000000000000000 times? Jeepers, you must love to harvest!

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests