Page 1 of 1

Reducing damage spikes

PostPosted: Wednesday, 21st May 2014, 21:27
by tasonir
Right now, most things roll 1dX, where X is their max damage. Many spells roll 3dX instead, and there are some cases (cerebov hitting you with firestorm) where it goes up to 9dX instead.

1dX is probably the worst of these, although that's debatable. This has huge damage variance, and I'd prefer to reduce the variance and make best and worst case closer to the middle: 1d40 becomes 1d20 + 10.

Generally something like ndX becomes ndX/2 + nX/4. This would happen before your AC check, GDR(if it applies), resists, etc. The same effect could be applied to player damage, but that is optional; it's a much bigger problem on enemy damage than your own.

mutliple dice example:
3d40 -> 3d20 + 30. I believe dice in crawl roll 0 to n-1 instead of 1 to n; if so, this changes from 0 to 117 damage to 30- 87 damage. Basically it just chops off the top and bottom and leaves the average right where it was.

This should reduce the number of sudden 1-2 shot deaths and make the combat feel more steady, which I believe are positive changes. There is still a large random component, but it isn't as large.

Re: Reducing damage spikes

PostPosted: Wednesday, 21st May 2014, 23:46
by Igxfl
It's worth pointing out that AC actually makes the variance even wider, despite reducing the damage.

For example:
Dam 1d30 (avg ~15) vs. AC 16 (avg ~8)

Average damage is around 7.
Max damage is near 30.

Ouch! That really hurt!

I wouldn't mind AC being split into two dice itself, maybe as a replacement for the opaque and unimpressive GDR stat.

Re: Reducing damage spikes

PostPosted: Thursday, 22nd May 2014, 00:15
by tasonir
AC getting two dice or 3 would be another way to tackle this problem, certainly. If that's prefered, that's fine by me. I would however argue that GDR is not unimpressive and is in fact quite helpful for the attacks that it applies to. It would be great if it applied to all attacks, but at least for melee hits it does reduce variance quite a bit.

Re: Reducing damage spikes

PostPosted: Friday, 30th May 2014, 22:19
by WalrusMcFishSr
Maybe this is crazy, but I was thinking this might be cool as a Zin passive ability. Zin, hating randomness as he does, narrows the variance of dice rolls in combat to a degree based on piety. Could be flavorful, useful, and interesting.

Re: Reducing damage spikes

PostPosted: Saturday, 31st May 2014, 09:43
by nagdon
I support this idea, the variance of damage is too big and makes planning hard and the relation between good tactics and survival too fuzzy. Now there are too much situations where you have a small but significant chance of death, and the optimal decision is to run away and heal, but if you make the bad decision you still have for example 75..90% chance of survival. Completely eliminating these situations is impossible (technically possible, but would allow prediction of the future from spoilers); but reducing their frequency is a good idea and would be relatively simple.

I don't think that this should be just a divine ability of some god as it is about replacing a "bad" game mechanism with a better one, not a working one with an equal alternative. (The situation is similar to weight/item destruction removal -- it isn't only for the followers of some god.) Although implementing it as a divine ability would help testing it, but I hope that it will eventually become available for everyone.

Re: Reducing damage spikes

PostPosted: Saturday, 31st May 2014, 13:25
by Bloax
If you want to test a mechanic like that in the game then there's no point testing it for one special nonexistent god - you test it in the actual game, since then you not only have a broader view of its effect on the game - but also how it works in conjunction with say, Finesse or Cheidefenses. (And this you can't do if you have to worship some Ynxgiaou the Dicecrusher to even see this change.)

Re: Reducing damage spikes

PostPosted: Saturday, 31st May 2014, 15:04
by nagdon
I think reduced damage variance for everyone is better than reduced damage variance for followers of one god, but reduced damage variance for followers of one god is better than nothing, because it increases the chance of reducing damage variance for everyone somewhen later.

Re: Reducing damage spikes

PostPosted: Saturday, 31st May 2014, 23:50
by Patashu
If damage spikes are reduced, it will be harder to reason from experience about the maximum amount of damage X can do. After all, it's only the hit that kills you that matters.

Re: Reducing damage spikes

PostPosted: Sunday, 1st June 2014, 00:30
by sgrunt
Bloax wrote:Ynxgiaou the Dicecrusher
FR, but only with a name starting with a letter not already used. (Uoaigxny?)

Re: Reducing damage spikes

PostPosted: Sunday, 1st June 2014, 21:19
by Igxfl
Patashu wrote:If damage spikes are reduced, it will be harder to reason from experience about the maximum amount of damage X can do. After all, it's only the hit that kills you that matters.


Good point. Good point. Let's replace 1dX with (X/3)+1d(X/3) or something. Same average, lower maximum, less spiky.

Re: Reducing damage spikes

PostPosted: Sunday, 1st June 2014, 21:36
by crate
I'm not sure why it's desirable to reduce randomness. Personally I think the variance in outcomes in crawl combat is a plus, not a minus, though I don't want to argue in support of this position right now.

Re: Reducing damage spikes

PostPosted: Sunday, 1st June 2014, 23:16
by Patashu
crate wrote:I'm not sure why it's desirable to reduce randomness. Personally I think the variance in outcomes in crawl combat is a plus, not a minus, though I don't want to argue in support of this position right now.

I feel the same way. I like it spiky, but it's hard to spell out why. Maybe it's something like: If combat was less variable and more mechanical/deterministic/predictable, you could calculate/number out how safe/how long to do something for in advance and know exactly when you'll retreat.
Alternatively, if you make it less variable yet still have the same high spikes as before, you can try to do it but actually there's still a small chance (= almost certain to happen with how much Crawl you play) that you'll get extremely unlucky, so you need to play just as cautiously as before the change except it's harder to train your brain for it because max unluckiness is rarer now.

Re: Reducing damage spikes

PostPosted: Monday, 2nd June 2014, 01:57
by Siegurt
  Code:
int random2(int max)
{
    if(max <= 0)
        return 0;
    return div_rand_round(max,2);
}

voila! Less spikey game in all respects!

Re: Reducing damage spikes

PostPosted: Monday, 2nd June 2014, 02:12
by Patashu
Siegurt wrote:
  Code:
int random2(int max)
{
    if(max <= 0)
        return 0;
    return div_rand_round(max,2);
}

voila! Less spikey game in all respects!

Code it and ship it as Angel of Mediocre Carnage

Re: Reducing damage spikes

PostPosted: Monday, 2nd June 2014, 03:02
by Brannock
crate wrote:I'm not sure why it's desirable to reduce randomness. Personally I think the variance in outcomes in crawl combat is a plus, not a minus, though I don't want to argue in support of this position right now.


Less randomness makes Crawl more of a solved game, which is not healthy for its lifespan expectations.

I suppose people could argue that arbitrary randomness is not a healthy approach to warding off the inevitability of solution.

Re: Reducing damage spikes

PostPosted: Monday, 2nd June 2014, 07:31
by Igxfl
Brannock wrote:I suppose people could argue that arbitrary randomness is not a healthy approach to warding off the inevitability of solution.


This. Adding occasional random death to a solved game does not make it less solved, it just makes the optimal solution less likely to work.

Re: Reducing damage spikes

PostPosted: Monday, 2nd June 2014, 07:40
by Mankeli
Point about the damage PC is inflicted upon: Even though damage values in Crawl are quite random they are still predictable in a sense that if you don't walk around with rF- or something, then that Xtahua won't (most likely) one-shot your character. Knowing that instakills are very rare after the early game makes the damage induced threat to PC more predictable than simply just looking at the formula would suggest.

I think this an important point, but feel free to disagree.

Re: Reducing damage spikes

PostPosted: Monday, 2nd June 2014, 10:06
by nagdon
Making damage completely deterministic is probably a bad idea, as it means that against a monster always dealing for example 10 damage, having 11 and 20 HP is equivalent (ignoring regeneration), and you always know how many hits can you survive. Keeping the current minimum and maximum damage but making them rarer also has drawbacks -- it makes learning to avoid damage spikes harder without eliminating the problem.

I think the 1d(X) => X/3 + 1d(X/3) change is the best solution, as it is simple, it significantly reduces maximum damage, doesn't leave small chances for sudden death and is continous and varied enough to avoid precalculations and discrete steps in HP value usefulness.