Framework Sneak Peek

Discuss the sequel to Planet Stronghold here
Post Reply
User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Framework Sneak Peek

Post by Anima_ »

Most of you probably already know that I'm working on a new (and hopefully improved) framework for our upcoming RPGs.
So I'll try to give a bit of insight into the inner workings of the system while it's still in development.

We'll start with the calculations at the core of the combat system:

Hit and damage calculations
The first step is to get a DeltaHit from the characters attributes and a random value.
This time the random value is distributed along a bell curve and at the moment goes from -58 to 59. (If you wonder why such an odd number we pretty much throw 3 40 sided dice and subtract the average from the sum.)
Hit calculation wrote:DeltaHit = Attacker.accuracy + random - target.evasion
The DeltaHit is then used to look up the effectiveness in a table. In contrast to Loren it's a discrete function this time. There are five possible outcomes.
Effectiveness wrote: Critical Hit: DeltaHit >= 45 : 1.5 x effectiveness
Direct Hit: DeltaHit >= 15 : 1.2 x effectiveness
Clean Hit: DeltaHit >= -10 : 1.0 x effectiveness
Hit: DeltaHit >= -25 : 0.5 x effectiveness
Miss: DeltaHit < -25 : 0.0 x effectiveness
Again the table is subject to change during the development.

Finally knowing this we can calculate the damage outcome.
Damage wrote:Damage = Attacker.damage * Effectiveness - target.reduction
This is actually done for pretty much any action, not only attacks. At least any action where having an effectiveness multiplier is useful.

That's it for that topic. If you are interested in something specific please ask. I'll probably update this thread irregularly from time to time otherwise.
Last edited by Anima_ on Mon Jan 14, 2013 2:28 pm, edited 1 time in total.
User avatar
Lonestar51
Elder Druid
Posts: 504
Joined: Wed Sep 05, 2012 6:12 pm

Re: Framework Sneak Peek

Post by Lonestar51 »

Interesting Read, but...
This time the random value is distributed along a bell curve and at the moment goes from -58 to 59. (If you wonder why such an odd number we pretty much throw 3 twenty sided dice and subtract the average from the sum.)
Sure about that? Either the outcome it would be -28 to 29, or you would need 3D40.
Clean Hit: DeltaHit >= -10 : 1.0 x effectiveness
Hit: DeltaHit >= -25 : 0.5 x effectiveness
So this means, even if the attacker is much weaker, there is still a good chance to get a hit? Or taken the other way round, it is very hard to really protect your heroes.

What will be the range for the values Attacker.accuracy and target.evasion?
Damage = Attacker.damage * Effectiveness - target.reduction
Hmm ... OK, damage reduction also plays a role. As the values are now, it seems as if a player would better invest in damage reduction instead of evasion.

Anyway, thanks for the insights. I am very interested how the system mutates during playtesting.
User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Re: Framework Sneak Peek

Post by Anima_ »

Lonestar51 wrote: Sure about that? Either the outcome it would be -28 to 29, or you would need 3D40.
You're right it's 3d40. Probably a mistake from my Pen & Paper days were we had no 40 sided dices.
So this means, even if the attacker is much weaker, there is still a good chance to get a hit? Or taken the other way round, it is very hard to really protect your heroes.
Even on hit you will greatly reduce the damage taken since it's applied before reduction. In the playtests so far, evasion was the most powerful attribute.
The system tries to avoid outright misses, since they were such a frustration in PS1.
What will be the range for the values Attacker.accuracy and target.evasion?
Jack didn't make a decision about that yet. Our probability script calculates for accuracy/evasion differences of +/- 30 points, so it will probably end with two or low three digit values.
Hmm ... OK, damage reduction also plays a role. As the values are now, it seems as if a player would better invest in damage reduction instead of evasion.
That is of course a danger in having two different defensive attributes. One of the main differences will be how the attributes work with multi shot abilities. Reduction 10 against four shots with 15 damage each is really impressive. Reduction 10 against a single shot with 60 damage much less so.
But even so balancing the attributes will definitely be one of our major headaches.
Anyway, thanks for the insights. I am very interested how the system mutates during playtesting.
So am I and I'm looking forward to work with you all again on making it better in the open playtests. And with a bit of luck, even before this time around.
User avatar
jack1974
Pack leader
Posts: 15470
Joined: Thu Jun 16, 2005 4:43 pm

Re: Framework Sneak Peek

Post by jack1974 »

I only want to add that I don't understand much of all this :lol: I mostly experiment changing values while testing :mrgreen:
User avatar
Lonestar51
Elder Druid
Posts: 504
Joined: Wed Sep 05, 2012 6:12 pm

Re: Framework Sneak Peek

Post by Lonestar51 »

What will be the range for the values Attacker.accuracy and target.evasion?
Jack didn't make a decision about that yet. Our probability script calculates for accuracy/evasion differences of +/- 30 points, so it will probably end with two or low three digit values.
Hmm ... makes sense. Say attacking an enemy with 100 evasion ... you need 75 (accuracity+random) to hit at all ... so with 60 accuracity you have a bit of a chance to hit, and with 50 the chance is down to very seldom (sorry, too tired to plug in the numbers ;-) ) On the other side, to get a critical hit, you need 145 (accuracity+random) -> with 160 accuracity you will very seldom miss at all. (The attacker with 60 accuracity would nearly always hit a slug with 0 evasion .) Yes, this feels like it could work. That is, playtesting will have to check it out anyway.
That is of course a danger in having two different defensive attributes. One of the main differences will be how the attributes work with multi shot abilities. Reduction 10 against four shots with 15 damage each is really impressive. Reduction 10 against a single shot with 60 damage much less so.
In PS1 the Guardian really did shine in the late game due to exactly this effect: Number of shoots per round mattered less than overcoming the damage reduction. (even less than the raw damage before reduction)

So this means, there should be some high level enemies with thick armor (= high damage reduction), and some without damage reduction but with an incredible amount of hitpoints.
I only want to add that I don't understand much of all this :lol: I mostly experiment changing values while testing :mrgreen:
That way works too. ;-)
Seloun
Young scout
Posts: 43
Joined: Sat Jan 19, 2013 9:37 pm

Re: Framework Sneak Peek

Post by Seloun »

The system seems to be quite workable, though the main thing I would note is that it seems very scale-sensitive, and the value of accuracy/evasion/damage/reduction interact in odd ways depending on where on the scale you are. One of the big questions is how scalable the system needs to be.

Based on the description of the attack roll calculation, it seems like accuracy/evasion are to be balanced by absolute delta (since the relative advantage of 100 accuracy to 80 evasion is equivalent to 20 accuracy to 0 evasion). This means in order to keep things roughly analogous at high level versus low level, the modifiers to accuracy/evasion probably should be a fixed value relative to class rather than level based. 3rd edition D&D is sort of a counterexample; their hit roll is basically the same system except with class-based level dependent scaling on the hit roll, which means the nature of the hit roll changes dramatically as level increases (at low levels, wizards can potentially contribute in combat with weapons; at high levels it becomes pointless since the absolute difference becomes so great). This also means if you want to keep the nature of the hit roll similar as level increases/game progresses, you would want relatively tight control on the variance of accuracy and evasion.

Note though that there's nothing inherently wrong with having the nature of the hit roll change throughout the game, though for balance purposes those who lose out in the longer run should get something else to compensate for it. In effect, having the hit roll be scaled with level/game progression should result in characters becoming more specialized in tasks besides the hit roll (e.g. spell progression in the D&D analogy).

The second part of the mechanic seems to value reduction somewhat highly. The way hit/clean hit are valued seems to imply that in general, reduction values are going to be much smaller than the damage value (or the existence of the regular 'hit' won't mean much). This means in absolute terms reductions are going to have to scale slower than damage as you probably want net damage to scale roughly with health values (not doing so is perfectly reasonable, too, but it means again the early game has a different feel than the late game). The value of reduction also increases as you have more of it, making it tough to assign a value to (a la Armor Pen from old WoW). This formulation is inherently unstable; this is not necessarily a bad thing, it just means you have different regimes and you can't necessarily assign a single value to a statistic (finding corner cases where something becomes suddenly far more valuable than expected is part of the fun of playing non-generic systems for mechanics monkeys, after all).

If you want reductions to scale more closely with damage (hardly a requirement, but may be a design goal), you probably want to make the effectiveness parameters tighter, depending on where you want to balance with respect to reduction. 0.5 - 1.5 doesn't really work well unless reduction is smaller than 0.5 of damage, and it can easily result in crits that are many times the amount of a regular hit (maybe this is a feature). 1.0 - 1.2ish would probably work better if you wanted to put damage and reduction on a more even footing. Moving crits out of the hit roll is also another option (more parameters generally means more options for exact tuning, though also more ways for things to break). Another possibility is to have the hit roll modulate the reduction rather than the damage; this can make damage reduction scaling more manageable.
User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Re: Framework Sneak Peek

Post by Anima_ »

Based on the description of the attack roll calculation, it seems like accuracy/evasion are to be balanced by absolute delta (since the relative advantage of 100 accuracy to 80 evasion is equivalent to 20 accuracy to 0 evasion). This means in order to keep things roughly analogous at high level versus low level, the modifiers to accuracy/evasion probably should be a fixed value relative to class rather than level based. 3rd edition D&D is sort of a counterexample; their hit roll is basically the same system except with class-based level dependent scaling on the hit roll, which means the nature of the hit roll changes dramatically as level increases (at low levels, wizards can potentially contribute in combat with weapons; at high levels it becomes pointless since the absolute difference becomes so great). This also means if you want to keep the nature of the hit roll similar as level increases/game progresses, you would want relatively tight control on the variance of accuracy and evasion.
Yes, the plan is to balance it by absolute delta. Actually the problem in D&D3.5 is more that attack bonus grows far faster than AC. So a high AC becomes pretty meaningless. That's why character optimization usually goes for things like damage reduction or miss chance.
Note though that there's nothing inherently wrong with having the nature of the hit roll change throughout the game, though for balance purposes those who lose out in the longer run should get something else to compensate for it. In effect, having the hit roll be scaled with level/game progression should result in characters becoming more specialized in tasks besides the hit roll (e.g. spell progression in the D&D analogy).
Well there is the way D&D4 did it, with simply adding half the level to the hit roll. Of course for the most part that was equivalent to simply not increasing to hit and defences per level. A system using raises, like TDE or L5R do, would change that of course. Since the higher accuracy would allow more room for raises in the first place.

I agree with you that a constant class specific accuracy value, only modified by actions, weapons and effects/situation, would make a lot of sense. If we want to keep the dynamic the same that is. Of course that would mean loosing the advancement aspect that is so inherent in RPGs for this element. Which could be remedied by a level dependent modifier to both accuracy and evasion.
Of course that would also depend on the nature of the character advancement system we decide on. At this point I'm not sure myself what would be the best course of action and will probably change my mind during later playtests anyway. Some things look unfortunately only good on paper.
The second part of the mechanic seems to value reduction somewhat highly. The way hit/clean hit are valued seems to imply that in general, reduction values are going to be much smaller than the damage value (or the existence of the regular 'hit' won't mean much). This means in absolute terms reductions are going to have to scale slower than damage as you probably want net damage to scale roughly with health values (not doing so is perfectly reasonable, too, but it means again the early game has a different feel than the late game). The value of reduction also increases as you have more of it, making it tough to assign a value to (a la Armor Pen from old WoW). This formulation is inherently unstable; this is not necessarily a bad thing, it just means you have different regimes and you can't necessarily assign a single value to a statistic (finding corner cases where something becomes suddenly far more valuable than expected is part of the fun of playing non-generic systems for mechanics monkeys, after all).
Yes, reduction values should scale slower then damage values. A reduction of 0.5 average damage would indicate a really armoured foe. One of the design requirements I was given was "elemental" strength and weaknesses, so the reduction value will also be different for specific attacks. That way higher reduction values will also be possible. The next post will be about the way attributes work, where I wanted to explain some more about the system.
If you want reductions to scale more closely with damage (hardly a requirement, but may be a design goal), you probably want to make the effectiveness parameters tighter, depending on where you want to balance with respect to reduction. 0.5 - 1.5 doesn't really work well unless reduction is smaller than 0.5 of damage, and it can easily result in crits that are many times the amount of a regular hit (maybe this is a feature). 1.0 - 1.2ish would probably work better if you wanted to put damage and reduction on a more even footing. Moving crits out of the hit roll is also another option (more parameters generally means more options for exact tuning, though also more ways for things to break). Another possibility is to have the hit roll modulate the reduction rather than the damage; this can make damage reduction scaling more manageable.
Actually if we scale reduction to a maximum of 0.5 damage a critical hit will at most deal two times the damage a clean hit would. Which makes me wonder if "Hit" was the proper descriptor for that level, it might cause problems.
If the scale would be 1.0 - 1.2 we would have the problem again that the only choice for a bad hit roll would be an outright miss and a critical hit with only 20% damage increase would be a bit underwhelming. (Probably welcome if you end up on the receiving end.) Making critical hits a separate check would of course also be an option, it wouldn't change the dynamic we currently have though. And you could end with a mere "Hit" being a critical. The main idea was the accuracy wouldn't be just a binary choice, either you hit or you don't. In the first design accuracy had a direct effect on damage (basically we simply added the delta to the damage), but that simply made raising accuracy better then raising damage. Since the expected damage increased by one point for every point of accuracy plus the fact that you wouldn't risk a miss. Having two attributes that do the same thing doesn't make that much sense.

Moving the hit modifier to the reduction side of the equation is an interesting idea. It obviously breaks down for 0 reduction. Still it would create a very different dynamic, I'll definitely think a bit more about it.
Of course when we talk about average damage we should always keep in mind that there will be actions/weapons with a higher base damage but a lower expected damage. For example a heavy weapon that has 150% base damage, but takes twice as long to fire. Usually that weapon wouldn't be used, but against high reduction enemies it becomes a great option.
User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Re: Framework Sneak Peek

Post by Anima_ »

Here is also a rough diagram for the hit level distribution we have right now:
Image
Violet is a Critical Hit, Red is a Miss. So Cyan is a Direct Hit, Green a Clean Hit and Orange a Hit.
The numbers are the accuracy/evasion difference.
Seloun
Young scout
Posts: 43
Joined: Sat Jan 19, 2013 9:37 pm

Re: Framework Sneak Peek

Post by Seloun »

Anima_ wrote:
If you want reductions to scale more closely with damage (hardly a requirement, but may be a design goal), you probably want to make the effectiveness parameters tighter, depending on where you want to balance with respect to reduction. 0.5 - 1.5 doesn't really work well unless reduction is smaller than 0.5 of damage, and it can easily result in crits that are many times the amount of a regular hit (maybe this is a feature). 1.0 - 1.2ish would probably work better if you wanted to put damage and reduction on a more even footing. Moving crits out of the hit roll is also another option (more parameters generally means more options for exact tuning, though also more ways for things to break). Another possibility is to have the hit roll modulate the reduction rather than the damage; this can make damage reduction scaling more manageable.
Actually if we scale reduction to a maximum of 0.5 damage a critical hit will at most deal two times the damage a clean hit would. Which makes me wonder if "Hit" was the proper descriptor for that level, it might cause problems.
If the scale would be 1.0 - 1.2 we would have the problem again that the only choice for a bad hit roll would be an outright miss and a critical hit with only 20% damage increase would be a bit underwhelming. (Probably welcome if you end up on the receiving end.) Making critical hits a separate check would of course also be an option, it wouldn't change the dynamic we currently have though. And you could end with a mere "Hit" being a critical. The main idea was the accuracy wouldn't be just a binary choice, either you hit or you don't. In the first design accuracy had a direct effect on damage (basically we simply added the delta to the damage), but that simply made raising accuracy better then raising damage. Since the expected damage increased by one point for every point of accuracy plus the fact that you wouldn't risk a miss. Having two attributes that do the same thing doesn't make that much sense.

Moving the hit modifier to the reduction side of the equation is an interesting idea. It obviously breaks down for 0 reduction. Still it would create a very different dynamic, I'll definitely think a bit more about it.
Of course when we talk about average damage we should always keep in mind that there will be actions/weapons with a higher base damage but a lower expected damage. For example a heavy weapon that has 150% base damage, but takes twice as long to fire. Usually that weapon wouldn't be used, but against high reduction enemies it becomes a great option.
Regarding the multipliers, the main observation is that as it is now, the rate of gain of reduction has to be always be significantly smaller than the gain in damage (so in item valuation, +1 reduction is always much more valuable than +1 damage). This isn't necessarily a problem, but it makes reduction somewhat harder to balance. By moving the scale to 1.0-1.2 (e.g. 1.0, 1.1, 1.15, 1.2 instead of 0.5, 1.0, 1.2, 1.5) and letting reduction vary more comparably to damage (in this case, the 0.5 very heavily armored target is a 1.0 reduction target) you should end up with similar results, except that now the reduction scale has been 'expanded' such that +1 reduction is a lot closer to +1 damage in valuation in more places. This also makes the accuracy bonus less overwhelming against softer targets (who are taking more damage anyway on average). Whether or not these are desirable features are dependent on the requirements, of course.

In the end the choice for the parameters really depends on the scale you'd want to be working on (including the 3D40, which would have identical properties if e.g. the expected attack/evasion delta was increased by 10x and the roll became 3D400 - really you'd want to define what a 'good' delta was and retrofit the multiplier from there. Note you can get this effect explicitly simply by having a scaling constant: DeltaHit = (magic constant)*(accuracy - evasion) + random and keep a single table). However, one of the reasons why you might want damage/reduction/expected to scale together is due to the fact that the accuracy part is being handled as a delta. If damage isn't handled in a similar way, there will always be a point where accuracy ends up being more valuable than damage (at least up to maximum result of accuracy) since accuracy is a multiplier on damage (so if the damage range increases, the value of accuracy does too - while vice versa is true, the balancing of accuracy/evasion as a fixed delta means your relative accuracy remains roughly the same throughout the game); this means it might be hard to balance accuracy bonuses since +1 accuracy early is a lot less useful than +1 accuracy late compared to +1 damage. Of course, if you know the scale you'll be operating on, you can probably tweak things so that the cross-over point is unrealistically high, but it's another thing to keep an eye on.

Moving the table result to the reduction part still keeps the general function of the table (accuracy helps damage) while making it more clear how accuracy helps damage - accuracy is more beneficial if the target has more armor, while damage is better against softer targets. Applying the modifier to the damage part does this too, just in an indirect way. Moving it to reduction makes crits less painful for soft targets (I think you'd probably want this to narrow the gap between squishy and non-squishy somewhat, but whether or not this is desirable is out of scope from mechanics analysis). Mainly it separates the design/balance space of damage and accuracy a bit more (also probably works nicer with a continuous function should that be desirable).

The distribution table looks perfectly workable, though as you mentioned the naming is probably misleading; 'hit' probably makes sense for the most probable result in general (so the current 'clean hit') while the reduced damage hit should probably be something like 'glancing hit'. The other possible suggestion would be to scale the default so that the expected ranges are against more 'even' values (if the table represents the expected range, maybe ~3D132 instead to scale against -100 to 100)

WRT absolute delta, level scaling, 4th ed: While it's true that 4th ed's system is (in practice) very close to not having any scaling at all, it does account for different levelled opponents, which is really an orthogonal design axis. That's really another thing that should probably come out of the requirements (should a beginning party have any chance against an endgame opponent? what is the acceptable range of opponents for a midgame party?). The other point is that while generally levels can easily scale forever, gear usually doesn't (something I found in Loren was that levelling was often a disadvantage due to enemy scaling; even if your characters' inherent stats scaled better, your gear didn't scale past a certain point, making your advantage relatively smaller; also the value of talent points decreased dramatically with levels); 4th ed practically makes gear part of scaled statistics to avoid that issue.
User avatar
Lonestar51
Elder Druid
Posts: 504
Joined: Wed Sep 05, 2012 6:12 pm

Re: Framework Sneak Peek

Post by Lonestar51 »

Seloun wrote:Regarding the multipliers, the main observation is that as it is now, the rate of gain of reduction has to be always be significantly smaller than the gain in damage (so in item valuation, +1 reduction is always much more valuable than +1 damage). This isn't necessarily a problem, but it makes reduction somewhat harder to balance. By moving the scale to 1.0-1.2 (e.g. 1.0, 1.1, 1.15, 1.2 instead of 0.5, 1.0, 1.2, 1.5) and letting reduction vary more comparably to damage (in this case, the 0.5 very heavily armored target is a 1.0 reduction target) you should end up with similar results, except that now the reduction scale has been 'expanded' such that +1 reduction is a lot closer to +1 damage in valuation in more places.
The problem with upping the damage reduction to 1.0 is that it favours guardians too much. Basically, heavy weapons (few shots with high damage) will work better than pistols (which get out lots of rounds of low damage) against targets with high damage reduction.

Example: (taken multipliers from Aleema)
Guardian Tom has blaster of 10 damage, 2 shots per turn
Soldier Michelle has Pistol, 5 damage, 5 shots per turn
If the target has a damage reduction of ...
1 - Michelle will damage with every hit, as does Tom - If multiplier 1.0: damage 20 to 18
3 - Michelle needs a clean hit for damage - Tom scores with every hit - If multiplier 1.0: damage 10 to 14
5 - Michelle needs direct hit - Tom needs clean hit - If multiplier 1.0: damage 0 to 10
7 - Michelle needs critical hit (for half a point of applied damage) - Tom needs clean hit - If multiplier 1.0: damage 0 to 6

From this example we can draw two conclusions:
1) Targets of high damage reduction require heavy weapons
2) Targets of low damage reduction favour weapons of high raw damage

If the multiplier spread wuld be reduced from 0.5 to 1.5 towards a more narrow version, the advantage of heavy weapons would be even more pronounced.
Post Reply