Sorcery and armor interference

The harnessing and manipulation of nether.
Post Reply
Acarin
Posts: 202
Joined: Fri Sep 04, 2020 10:49 pm

Sorcery and armor interference

Post by Acarin »

Currently, I have light vambraces, cuirass, greaves, boots and gloves on. Nothing on head or neck. I also have 100 ranks of armor use and 100 ranks of sorcery. Sometimes it takes me about 3-5 tries before I can keep a channel up long enough (through rt) to cast shadow cloak.

I am not sure if sorcery or armor use will improve this? As a nightblade (meant to use sorcery on occasion and also potentially be lightly armored), this seems like it will create a huge problem if sorcery channels are ever needed for combat abilities (besides just an occasional cast). Or does this mean that holding a channel up will never actually be required for nightblade abilities?

Can this penalty be trained off with more armor use? Should I just plan to drop armor entirely if I plan to use sorcery? I'm just trying to understand the intent here so that I can build my training goals appropriately. Currently, it seems like I have to make the choice of either sorcery or armor since channels are so incredibly unreliable at any armor level 1.
You reach toward ((DEV Rias)) ... Pull(d225([1]x)):214 vs Mark(d1100):714 = -500 (-222%)
You notice ((DEV Rias)) glance your way, causing you to quickly withdraw your hand from his wool
drawstring pouch (open).
Roundtime: 5 seconds.
User avatar
Rias
DEV
Posts: 2024
Joined: Sun Sep 03, 2017 4:06 pm
Location: Wandering Temicotli

Re: Sorcery and armor interference

Post by Rias »

Good post. First, some info on how channel encumbrance works (which I will hopefully remember to add to the wiki after making this post):

- Druidry and sorcery both experience this at the same rates. Just so it's clear this isn't exclusive to sorcery.
- The channel drop rate is a simple hard-coded check based on the totalled channel encumbrance value of all one's armor pieces. Neither armor skill nor occult skill (sorcery or druidry) reduce affect the drop rate. No skill does - it's just a hard check everyone has to make.
- Medium armor pieces have a 1.5x channel encumbrance multiplier. Heavy armor has 2x.
- Torso armor causes 4x channel encumbrance. Arm, leg, neck, and head armor cause 2x. Everything else is 1x.

I forgot to revisit the drop rates last time I said I would. Sorry! I'll look at them after posting this, because it does sound like they're too high. With only light armor, channel droppage shouldn't be a big deal. I do want Nightblades and Rangers to feel like they can effectively utilize their channelling while decked out in full light armor, and not feel like they have to shun armor completely to do so.

One idea I'm mulling over is having a sort of grace period based on one's overall armor level. So with armor level 1 (Light) you'd be guaranteed not to drop for the first X number of seconds, armor level 2 (Medium) a lesser Y number of seconds, and armor level 3 (Heavy) just has to deal with it as it is now.
<Rias> PUT ON PANTS
<Fellborn> NO
User avatar
nobody
Posts: 501
Joined: Wed Jun 17, 2020 7:43 am
Contact:

Re: Sorcery and armor interference

Post by nobody »

I was really delighted by the detailed information about drop chance calculation. I've been meaning to throw out some tables as thanks, and I've now got them together. I've assumed based on the description that each armor piece has all multipliers applied to the base rate, then all armor piece rates are summed, and then the check is made against the totaled penalty. I've generalized as "ticks", but I assume that the drop chance is each second. My results probabilities are very rounded. Here is how the probabilities line up:

Base drop chance = 1%
Light chest armor only (4% drop chance per tick): 1 tick with no drops 96%, 10 ticks with no drops 66%, 30 ticks with no drops 29%, 60 ticks with no drops 9%, 120 ticks with no drops 1%
Medium chest armor only (6% drop chance per tick): 1 tick with no drops 94%, 10 ticks 54%, 30 ticks 16%, 60 ticks 2%, 120 ticks 0%
Heavy chest armor only OR light vitals only (8% drop chance per tick): 1 tick with no drops 92%, 10 ticks 43%, 30 ticks 8%, 60 ticks 1%, 120 ticks 0%
Medium vitals only (12% drop chance per tick): 1 tick with no drops 88%, 10 ticks 28%, 30 ticks 2%, 60 ticks 0%, 120 ticks 0%
Full light armor (14% drop chance per tick): 1 tick with no drops 86%, 10 ticks 22%, 30 ticks 1%, 60 ticks 0%, 120 ticks 0%
Heavy vitals only (16% drop chance per tick): 1 tick with no drops 84%, 10 ticks 17%, 30 ticks 1%, 60 ticks 0%, 120 ticks 0%
Full medium armor (21% drop chance per tick): 1 tick with no drops 79%, 10 ticks 9%, 30 ticks 0%, 60 ticks 0%, 120 ticks 0%
Full heavy armor (28% drop chance per tick): 1 tick with no drops 72%, 10 ticks 4%, 30 ticks 0%, 60 ticks 0%, 120 ticks 0%

Base drop chance = 2%
Light chest armor only (8% drop chance per tick): 1 tick with no drops 92%, 10 ticks 43%, 30 ticks 8%, 60 ticks 1%, 120 ticks 0%
Medium chest armor only (12% drop chance per tick): 1 tick with no drops 88%, 10 ticks 28%, 30 ticks 2%, 60 ticks+ 0%
Heavy chest armor OR light vitals only (16% drop chance per tick): 1 tick with no drops 84%, 10 ticks 17%, 30 ticks 1%, 60 ticks+ 0%
Medium vitals only (24% drop chance per tick): 1 tick with no drops 76%, 10 ticks 6%, 30 ticks+ 0%
Full light armor (28% drop chance per tick): 1 tick with no drops 72%, 10 ticks 4%, 30 ticks+ 0%
Heavy vitals only (32% drop chance per tick): 1 tick with no drops 68%, 10 ticks 2%, 30 ticks+ 0%
Full medium armor (42% drop chance per tick): 1 tick with no drops 58%, 10 ticks 0%, 30 ticks+ 0%
Full heavy armor (56% drop chance per tick): 1 tick with no drops 44%, 10 ticks 0%, 30 ticks+ 0%

Base drop chance = 5%
Light chest armor only (20% drop chance per tick): 1 tick with no drops 80%, 10 ticks 11%, 30 ticks+ 0%
Medium chest armor only (30% drop chance per tick): 1 tick with no drops 70%, 10 ticks 3%, 30 ticks+ 0%
Heavy chest armor or light vitals only (40% drop chance per tick): 1 tick with no drops 60%, 10 ticks 1%, 30 ticks+ 0%
Medium vitals only (60% drop chance per tick): 1 tick with no drops 40%, 10 ticks+ 0%
Full light armor (70% drop chance per tick): 1 tick with no drops 30%, 10 ticks+ 0%
Heavy vitals only (80% drop chance per tick): 1 tick with no drops 20%, 10 ticks+ 0%
Full medium or heavy armor (100% drop chance per tick): always drops immediately

Base drop chance = 10%
Light chest armor only (40% drop chance per tick): 1 tick with no drops 60%, 10 ticks 1%, 30 ticks+ 0%
Medium chest armor only (60% drop chance per tick): 1 tick with no drops 40%, 10 ticks+ 0%
Heavy chest armor or light vitals only (80% drop chance per tick): 1 tick with no drops 20%, 10 ticks+ 0%
Any heavier arrangement always drops immediately

The build in question is between light vitals and medium vitals, so I'm guessing that the base drop chance is maybe around 3%?

In addition to all of the levers identified in the prior post (location multipliers, weight multipliers, base rate), the other lever I can easily see that can be used is changing how frequently checks are made (don't know if that's easy or not, but 3-5 seconds seems like a good check duration based on how long it takes to open a channel and how long it takes to attack without aiming).

less VI friendly tables are below:

Code: Select all

1%
       1  10  30  60  120
L C O 96% 66% 29%  9%   1%
M C O 94% 54% 16%  2%   0%
H C O 92% 43%  8%  1%   0%
L V O 92% 43%  8%  1%   0%
M V O 88% 28%  2%  0%   0%
F L   86% 22%  1%  0%   0%
H V O 84% 17%  1%  0%   0%
F M   79%  9%  0%  0%   0%
F H   72%  4%  0%  0%   0%

2%
       1  10  30  60  120
L C O 92% 43%  8%  1%   0%
M C O 88% 28%  2%  0%   0%
H C O 84% 17%  1%  0%   0%
L V O 84% 17%  1%  0%   0%
M V O 76%  6%  0%  0%   0%
F L   72%  4%  0%  0%   0%
H V O 68%  2%  0%  0%   0%
F M   58%  0%  0%  0%   0%
F H   44%  0%  0%  0%   0%

5%
       1  10  30  60  120
L C O 80% 11%  0%  0%   0%
M C O 70%  3%  0%  0%   0%
H C O 60%  1%  0%  0%   0%
L V O 60%  1%  0%  0%   0%
M V O 40%  0%  0%  0%   0%
F L   30%  0%  0%  0%   0%
H V O 20%  0%  0%  0%   0%
F M    0%  0%  0%  0%   0%
F H    0%  0%  0%  0%   0%

10%
       1  10  30  60  120
L C O 60%  1%  0%  0%   0%
M C O 40%  0%  0%  0%   0%
H C O 20%  0%  0%  0%   0%
L V O 20%  0%  0%  0%   0%
M V O  0%  0%  0%  0%   0%
F L    0%  0%  0%  0%   0%
H V O  0%  0%  0%  0%   0%
F M    0%  0%  0%  0%   0%
F H    0%  0%  0%  0%   0%
User avatar
nobody
Posts: 501
Joined: Wed Jun 17, 2020 7:43 am
Contact:

Re: Sorcery and armor interference

Post by nobody »

Ephemeralis made a very good point that I hadn't considered and that is the impact of willpower as a primary attribute. Willpower giving an extra reroll effectively squares the channel drop probability (4% becomes 0.16%, 10% becomes 1%, etc.). Below are tables with will as the primary attribute:

Code: Select all

1%
        1   10   30   60  120
L C O 100%  98%  95%  91%  83%
M C O 100%  96%  90%  81%  65%
H C O  99%  94%  82%  68%  46%
L V O  99%  94%  82%  68%  46%
M V O  99%  86%  65%  42%  18%
F L    98%  82%  55%  30%   9%
H V O  97%  77%  46%  21%   4%
F M    96%  64%  26%   7%   0%
F H    92%  44%   9%   1%   0%

2%
       1   10   30   60  120
L C O 99%  94%  82%  68%  46%
M C O 99%  86%  65%  42%  18%
H C O 97%  77%  46%  21%   4%
L V O 97%  77%  46%  21%   4%
M V O 94%  55%  17%   3%   0%
F L   92%  44%   9%   1%   0%
H V O 90%  34%   4%   0%   0%
F M   82%  14%   0%   0%   0%
F H   69%   2%   0%   0%   0%

5%
       1   10   30   60  120
L C O 96%  66%  29%   9%   1%
M C O 91%  39%   6%   0%   0%
H C O 84%  17%   1%   0%   0%
L V O 84%  17%   1%   0%   0%
M V O 64%   1%   0%   0%   0%
F L   51%   0%   0%   0%   0%
H V O 36%   0%   0%   0%   0%
F M   0%    0%   0%   0%   0%
F H   0%    0%   0%   0%   0%

10%
       1   10   30   60  120
L C O 84%  17%   1%   0%   0%
M C O 64%   1%   0%   0%   0%
H C O 36%   0%   0%   0%   0%
L V O 36%   0%   0%   0%   0%
My prior numbers assume that no rerolls are given by default (positive or negative). Please let me know if that isn't the case. Rerolls are another potential lever to pull at.
Acarin
Posts: 202
Joined: Fri Sep 04, 2020 10:49 pm

Re: Sorcery and armor interference

Post by Acarin »

Why not just have this based on category of armor... light, medium, and heavy as it is now...It seems crazy that someone would have an armor level of 3 (heavy) and have the same drop rate as someone in light leather because they're wearing a couple less pieces.
You reach toward ((DEV Rias)) ... Pull(d225([1]x)):214 vs Mark(d1100):714 = -500 (-222%)
You notice ((DEV Rias)) glance your way, causing you to quickly withdraw your hand from his wool
drawstring pouch (open).
Roundtime: 5 seconds.
User avatar
nobody
Posts: 501
Joined: Wed Jun 17, 2020 7:43 am
Contact:

Re: Sorcery and armor interference

Post by nobody »

The current system provides incentive to wear less armor. If all the armor pieces just got lumped together there would be no reason to wear just chest or just vitals armor when your channel drop rate is the same as wearing a full suit. I like that the current system holds to the theme of making tough choices.
Acarin
Posts: 202
Joined: Fri Sep 04, 2020 10:49 pm

Re: Sorcery and armor interference

Post by Acarin »

nobody wrote: Mon Jan 04, 2021 4:37 pm The current system provides incentive to wear less armor. If all the armor pieces just got lumped together there would be no reason to wear just chest or just vitals armor when your channel drop rate is the same as wearing a full suit. I like that the current system holds to the theme of making tough choices.
Encumbrance and armor check already take care of this and create penalties. I'm just saying that full light leather probably shouldn't be the equivalent to wearing heavy vitals. Medium and heavy (any parts) should drop quickly. Full light should still be feasible to keep a channel... or at least full vitals.
You reach toward ((DEV Rias)) ... Pull(d225([1]x)):214 vs Mark(d1100):714 = -500 (-222%)
You notice ((DEV Rias)) glance your way, causing you to quickly withdraw your hand from his wool
drawstring pouch (open).
Roundtime: 5 seconds.
jerc
Posts: 80
Joined: Sun Feb 13, 2022 3:26 pm

Re: Sorcery and armor interference

Post by jerc »

With the advent of Fortourgy channels, I'm reviving this old dead thread!

I've embarked on a mission to gather hard data on channel drop rates in various configurations of armor and attributes.

Data gathering routine
  1. Open a channel, note the start time as START
  2. Wait till the channel drops due to interference, record NOW - START as a new entry
  3. Let energy regenerate
  4. Repeat
This takes several hours to get enough data to really see things take shape. I shoot for 100+ entries.

Analysis Approach

Whatever hindrances and rerolls are in place, it should still work out to a simple probability per tick (5 seconds) that a channel is dropped. Building on the ideas from the tables already in this thread, we can calculate the probability that a channel is still held by a given number of ticks as

Code: Select all

P = (1-Pb)^T
Where
  Pb is the per-tick probability that a channel drops
  T is the number of ticks
  P is the probability that the channel is still held after T ticks
So if there's a 14% chance for a channel to drop per tick, the probability that it's been dropped after 10 ticks is

Code: Select all

P = (1-0.14)^10
P = 0.86^10
P = 0.22
Which matches the tables from earlier. All of this is nothing new - just showing the process by which it was all derived. You can apply this to any number of ticks at whatever resolution you want. Because I like pretty curves, I went ahead and generated the percentages for 1-400, at which point you'll be dropping the channel due to exhaustion anyway.

The next step after generating our theoretical curve from some Pb is to take our input data and massage into a similar looking model. I'm falling back to SQL-like expressions since that's the easiest way to express this process:

Code: Select all

P = (COUNT(D) WHERE D > 5*T) / Dt
Where
  D is a data point expressed as channel duration in seconds
  Dt is the total number of data points
  T is the number of ticks
  P is the proportion of channels that have outlived T ticks
Again, you can apply this to any number of ticks at any resolution you want, so I went with the same range and resolution as the calculated curve. More input data will make the data-derived curve smoother and more accurate.

So now we have an ideal curve for some base drop chance, and a few curves generated from data. The next step is to try to make them match up. The first problem we see is that our curves from data are offset from 0 - nothing drops before 45s or so. We can adjust our data-massaging function to be:

Code: Select all

P = (COUNT(D) WHERE D > (5*(T+G))) / Dt
Where
  G is the "grace" period in ticks
This shifts our data curves to the left so that they line up with the calculated curve. We can then fiddle with our hypothetical Pb used to generate the calculated curve to see if we can make things line up sufficiently. Alternatively, we can try to be clever about it.

If we take the proportion of still-living channels from our data at a given tick, we can take the function used to create our calculated curve, and solve it for Pb for each T:

Code: Select all

P = (1-Pb)^T
P^(1/T) = 1 - Pb
Pb = 1-P^(1/T)
This gives us a drop probability that would produce the proportion of channels that were still alive at a given T. Since we're working backwards from data that's beholden to RNG, we'll probably see some variation in this when applied to every T. But it should still be close-ish for at least some of the data, and we can average it to hand-wave the areas that it doesn't quite match. This is some sort of nonlinear regression method that I've entirely made up myself, and there could very well be a better way to go about it. Also, it should probably weight the center of the curve more heavily since there's more data there, and the high and low extremes are probably more influenced by RNG. YMMV.

Update: As it turns out, excel (well, Google Sheets. Do people still use actual MS Office anymore?) has this nifty LOGEST function. You give it a range of output "Y" values (probabilities) and a range of input "X" values (ticks), and it figures out an equation in the form Y = b * m ^ X for you. It can give you both b and m, or just m where b = 1. Hearken back to how we calculated the hypothetical curve (P = (1-Pb)^T), and you should see some obvious similarities between it and the form that LOGEST tries to fit. So we can use it instead of my hamfisted attempt at regression analysis. The results weren't that different, but I figure the real way to do it is better than the naive approach, so I've removed the later from my analysis spreadsheet in favor of the LOGEST output. I'm leaving the description of my old approach for posterity just in case it's of interest to anyone.

Conclusions

If you've stayed with me so far, congratulations! You're a nerd too :ugeek:

If you just skipped to this point, that's OK too - I'm probably going about some of the analysis wrong/inefficiently anyway.

You can find my data so far and analysis results here.

In general, it looks like the points at which the drop check occurs are independent of when your channel is opened, and instead occur on a global timer. So if the check occurs at the top of the minute, 5s in, 10s in, etc., and you open a channel at 4.9s, there's a chance that it would only be open for 0.1s without a grace period. This isn't something that you can reasonably plan around, so it's mostly just a curiosity. It does have some implications for the grace period, however. The changelog states that there's a 10s grace period when wearing light armor, a 5s grace period with medium, and none with heavy. This was before the 1s -> 5s check interval. Since the grace periods look like 20s and 45s from the data, we can conclude that the grace period is actually expressed in terms of checks rather than literal seconds. The new grace periods should be 25s and 50s, but since you can open a channel right up against the first check, the grace period is effectively reduced by one check.

Sorcery + Will + Padded, Sorcery + Will + Scale, Arcana + Int + Padded all look very similar. I had a comparison between SWS and AIP here before, but after adding SWP into the mix, I'm thinking that any differences I was seeing were just due to RNG variation. So I'm calling them equivalent. If there's any actual difference, it's negligible and probably not worth thinking about.

Sorcery + Will + Splint, however, looks very different. It has 1. a shorter grace period and 2. a much steeper dropoff due to the higher drop probability, resulting in 3. a much lower average duration.

Arcana + Int + Ridgeleather is terribad. There's no grace period and close to a 40% chance that it'll drop each check. You'd be lucky to get two spells cast before your channel drops, and there's a decent chance that it'll be dropped before you can even cast one. Just don't.

I'll be adding more data as I test different scenarios, so stay tuned!
jerc
Posts: 80
Joined: Sun Feb 13, 2022 3:26 pm

Re: Sorcery and armor interference

Post by jerc »

Added more data to the spreadsheet and updated my analysis of it.

I actually went back and read the changelog and found the entries regarding the grace period and change from a 1s check interval to 5s. Formulas have all been updated accordingly. It doesn't change the conclusions at all though - the percent chance that a channel drops just gets multiplied by 5, and the curves look a bit smoother.

I also switched to the LOGEST function rather than my janky homebrewed regression to find the drop chance for each dataset. Might not change the accuracy much since the sets are still relatively small, but it's at least a little more legit.
jerc
Posts: 80
Joined: Sun Feb 13, 2022 3:26 pm

Re: Sorcery and armor interference

Post by jerc »

Moar updates! I moved the calculated curve out of the main sheet and into its own sheet. It was getting noisy and hard to see since I also added more data.

The most interesting thing that I learned: I don't think we're getting the reroll from our primary attribute choice. The Sorcery + Agility curve looks almost identical to the Sorcery + Will and Arcana + Int curves, but they should look significantly different.

If you look at the new separate "Calculated" sheet, it has three curves - one generic "Drop Chance," one "With Reroll," and one "Without Reroll." The "Without Reroll" curve operates under the assumption that there was a reroll occurring in the base roll, and reverses the probability math. They operate under the assumption that if you've got some chance of failing a roll, getting a reroll, i.e. another chance to succeed, will square that chance. For example, if you had a 30% chance of failure before a reroll, you'd have a 9% chance with one. Plugging in one of our estimated drop chances into the generic "Drop Chance" field shows us two other curves that we should be seeing from the other datasets that have a difference in rerolls.

But we aren't. The curves for Sorcery + Agility and Sorcery + Willpower are extremely close. We should either see Agility look worse than Sorcery + WIll in medium armor, or we should see Sorcery + Will basically never drop.

Edit: Realized that the drop chance that we observe might already have some rerolls at baseline, so one extra one might not make as drastic of a difference as I originally thought. I've updated the Calculated sheet to have a Base Rerolls field that can be fiddled with to see the kind of spread you would see from either scenario. You have to take it up to 10+ before the with/without curves start looking like they might match the data if you account for RNG variance.
Post Reply