Jump to content
  • Advertisement
Sign in to follow this  
Ey-Lord

How to balance "proc" in RPGs ?

This topic is 652 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everyone !

I'm working on an RPG project and I'm currently trying to design & balance "procs" (properties that grant an effect based on a percentage of occurance during a specific action).

Let's talk about the most common ones: proc on hit. They can trigger when a unit is attacking another one. For simplicity sake, let's say that most offensive skills can trigger procs.

I'd like to find a design that allow procs to contribute to the character's customization depth. I'm having trouble dealing with the fact that skills in my game can have very different cast time (from 0 turns to a couple of hundreds at the extreme, with most of them in the 10-100 range). My goal is to make proc useful (to some extent) for most units and have a balanced and nuanced design of slow/fst weapons & skills.

I've already balanced slow/fast weapons & skills to have an influence on the speed to mana effiency and the speed to damage effiency. Then comes procs... ready to mess everythings up and make fast things overpowered in a heartbeat :/

In my game, all procs will have a fixed percentage of proc that will depends on the stats (items, talents, buffs...) of the unit. The effect of the proc (damage, heal or (de)buff length) may vary if we find it necessary.

In my game, there are mainly three paramters that can influence a skill's cast time:

  • The skill's base cast time
  • The unit's weapon attack speed
  • Item/Talents/Buffs that can improve these two things

Option 1: Proc have a fixed effect

If regardless of what kind of skill is used to proc it the proc always has the same effet, it heavily favors units have to cast fast. So low base cast-time skills and fast attacking weapon will have an order of magnitude (easily) more procs than a unit using a slow weapon and a long base cast-time skill. We can balance it properly by assuming it should be efficient only at fast (or very fast) skill cast so it's a perk. The biggest downside is that it will be useless (or close to) for all builds base either on long cast-time skills or builds using a slow weapon :/

Option 2: Proc effect normalization

We can also make proc effect to scale with the skill's final cast time (the result of the 3 parameters detailed earlier). This is a simple normalization process that will, over time, make it so every unit using the same proc will have the same cumulated proc power over a large period of time. Balacing it may be a bit more problematic since we will have the weakest proc be around 10 times less power full than the biggest ones possible. It has the quality of letting every kind of build use procs as efficiently as each other. The biggest flaws is that it is, I think, counter-intuitve for players whose primary reasoning when seeing a proc stat will be "If I attack faster, it will proc more" (note: proc more in our game means proccing with more power as the proc rate per attack is fixed). That is a fantasy about proc that Ideally i'd like to keep.

Option 3: Proc partial scaling on skill's cast time

This is what I'm leaning tower to at the moment. The idea is to keep the design goal of having proc beeing better with fast units but still make them viable for slow units. I was thinking of using a scaling between the final skill's cast time and the proc effect but not a proprotinal 1:1 as in option 2. Something like this:

  • Skills with 5 cast time (already very fast) - proc coefficient of 0.25
  • Skills with 40 cast time (the average base cast time) - proc coef of 1
  • Skill withh 400 cast time (extremely high) - proc coef of 3

In this setting, proc would be balanced against a medium cast-time skill.

Slow units would still be able to use procs but at a (400/40) / 3 = 33% efficiency comapared to units who use 40 cast-time skills. Fast units will have be able to use procs at a 200% efficiency compared to units who use 40 turns skills. (numbers are just here to illustrate my points, there are not very good yet).

This options would have the small drawback of beeing a bit hard to explain to players since the scaling is neither null nor pureply proportional to attack speed but likely logarithmic.

What do you guys think ? How would you attack the issue?  Do you a preferred option? The secret option 4 maybe? I'm open to any question or criticsm :)

Edited by Ey-Lord

Share this post


Link to post
Share on other sites
Advertisement

You don't seem to consider the option of not using the same actual proc effect for attacks with wildly different speeds or other properties.

 

By this I mean you have two different "set the target on fire" effects, one with a short duration and one with a long duration; you use the short duration one on weapons with high attack speed and the long duration one on weapons with low attack speed. For example.

 

This achieves approximately the same goal as trying to normalize the value of the effects by scaling them based on attack speed, but is potentially easier to tweak since you aren't playing with curves applied to many attacks just to try to balance one attack that's a bit out of the power scope. It also lets you make very targeted tweaks to individual skills, and it can presented to the player as the effect ("set on fire"); they don't need to know it's actually two different effects in content.

 

The downside is that it requires you to build and manage more content, so there's extra complexity there. But personally I think that's an easier problem to tackle than trying to find good scalability curves across so many factors. Is there a reason you don't want to take this approach?

 

Regardless, I'd suggest you build some kind of spreadsheet or similar mechanism that can give you an overview of the concrete data that goes into balancing this sort of thing. For example, something that applies your calculations on all skills over a certain number of attempts and gives you a concrete "percentage the proc occurred" value and information about damage and damage modification et cetera so you can experiment with various approaches and see how they impact the overall landscape. 

 

I also think it's important to keep in mind that "balancing" something by making all possible choices equivalent in power isn't always the best; it reduces the impact of each choice to essentially a decision about whether or not you like red particles (fire) or blue particles (ice). 

Share this post


Link to post
Share on other sites

Thank you for your answer Josh. I cannot really change the proc type based on the cast-time of the skill for a few pratical reasons. You are proposing something very binary (big proc, small proc) which will not work with my game. First, it promotes some wierd min-maxing weapon choice where you can find find the best value of proc per second and proc strength and choose the weapon accordingly.

 

Furthermore, as skill's base cast time and various buffs/items/talents can heavily modify a skill's casting time, it is easy in my game to end up with a unit using a slow weapon but using lots of "speed bonus" and fast base cast-time skills in order to end-up with relatively fast skills... possibly even faster than a unit who would use a fast weapon with slow skills and no speed bonus. In this scenario, you could have big/small proc on respectively fast/slow casted skills which is counterintuitive and probably not very good balance-wise.

 

Ultimately, aside from some clarity on the player's side, I do not see any benefit to the approach you descirbed compared to a normalization one (full or partial). Am I missing something here?

 

 

Regardless, I'd suggest you build some kind of spreadsheet or similar mechanism that can give you an overview of the concrete data that goes into balancing this sort of thing. For example, something that applies your calculations on all skills over a certain number of attempts and gives you a concrete "percentage the proc occurred" value and information about damage and damage modification et cetera so you can experiment with various approaches and see how they impact the overall landscape.

I will probably end-up doing a few sreadsheet down the road but i'd like to have a clear design philosophyof the proc system first. For example: Even tought I'd prefer to give procs some usability to all types of units/builds, maybe it is not a good idea and it is better to let fast weapon take adavantage of proc and give slow weapon something else to compensate?

 

I also think it's important to keep in mind that "balancing" something by making all possible choices equivalent in power isn't always the best; it reduces the impact of each choice to essentially a decision about whether or not you like red particles (fire) or blue particles (ice).

 

I completely agree. But at the same time having an entire system (that I planned on expanding quite a lot to give lots of customization options) "locked" to fast attackers is also not a perfect design. That is why I like my option 3, where I try to get the best of both world.

Share this post


Link to post
Share on other sites

My personal instinct is that the player should have to assign (equip?) the proc effect to one ability, because it would be boring and confusing if different attacks could cause the same proc.  It would be different if i were something where the player was controlling a whole army of units, but if this is the player controlling 3 or fewer characters then procs should not be character-wide.  Then, you can adjust the proc effect when assigning it.

Edited by sunandshadow

Share this post


Link to post
Share on other sites

My personal instinct is that the player should have to assign (equip?) the proc effect to one ability, because it would be boring and confusing if different attacks could cause the same proc.  It would be different if i were something where the player was controlling a whole army of units, but if this is the player controlling 3 or fewer characters then procs should not be character-wide.  Then, you can adjust the proc effect when assigning it.

 

Let's assume I go that way. It would solve the issue of procs scaling differently based on the "base cast-time" of each skill but it does not prevent items/talents/buffs and slow/fast weapon to make the proc scale too nicely with things that improve cast speed.

Share this post


Link to post
Share on other sites

If youre wanting procs such as like a DoT for burning, a fairly decent implementation is either putting a limit on the amount of stacks that the effect can have, meaning if it procs more than that it has no effect which stops things from just getting huge stacks from a fast weapon. (each stack having its own timer) or you can make the effect stack additive on duration.

for effects like a lightning strike or something that proc you can work the same sort of mechanic to have a "only x amount can happen within x time" system

 

another system is to do something along the lines of Proc % chance * ( time since last proc / scaling factor)

so you could have lets say 5% proc chance per hit and you want it to be back at that after 2 seconds your scaling factor is 2 if you use the timer on a seconds basis .. means faster attacks can proc more, though the % chance is heavily reduced below a certain time factor

Share this post


Link to post
Share on other sites

Generally speaking, I think a fast attacker should be slightly weaker in aggregate than a slower attacker. If the fast attacker gets better benefit from proc's, this would mean the slow attacker needs substantially higher core damage per turn or health to make up for this additional drawback. I think option 3 would actually start locking characters into roles, where the fast attacker needs to maximize proc output to keep up.

The reason the fast attacker will tend to be weaker is that they have more opportunities to switch strategies. A slow caster has to commit to an action 100 turns from now when the situation may have changed. A fast attacker can swig a potion or start retreating or use a different skill at much shorter notice. So we expect them to get better situational benefits, which needs to be balanced by something else.

Stack limits seem like a natural way to provide variety: The slow proc is stronger, so the slow attacker has an edge one-on-one (offsetting their strategic limitation). However, the fast attacker has more aggregate proc output assuming they can spread it around. So in a crowd situation the fast attacker has the edge in proc power. However, in keeping with his role that requires smart situational awareness: maximizing proc output needs to be balanced against the benefit of defeating opponents one at a time to reduce aggregate damage output. The slow attacker is less flexible but is optimized for the obvious case of "take them down one at a time". The fast attacker can achieve better raw output, but needs to balance that against basic tactics.

Share this post


Link to post
Share on other sites

If youre wanting procs such as like a DoT for burning, a fairly decent implementation is either putting a limit on the amount of stacks that the effect can have, meaning if it procs more than that it has no effect which stops things from just getting huge stacks from a fast weapon. (each stack having its own timer) or you can make the effect stack additive on duration.

for effects like a lightning strike or something that proc you can work the same sort of mechanic to have a "only x amount can happen within x time" system

 

another system is to do something along the lines of Proc % chance * ( time since last proc / scaling factor)

so you could have lets say 5% proc chance per hit and you want it to be back at that after 2 seconds your scaling factor is 2 if you use the timer on a seconds basis .. means faster attacks can proc more, though the % chance is heavily reduced below a certain time factor

 

It seems like the PPM system from World of Warcraft for example who sets a proc rate per minute that takes into account attack speed in order to normalize it so that there is the same number of proc for slow/fast weapon.

Imposing a stack limit on debuff has a similar effect with the downside of not working for all kind of procs. For example, direct damage proc or CC proc would not work under such a stack-limiting system.

 

 

Generally speaking, I think a fast attacker should be slightly weaker in aggregate than a slower attacker. If the fast attacker gets better benefit from proc's, this would mean the slow attacker needs substantially higher core damage per turn or health to make up for this additional drawback. I think option 3 would actually start locking characters into roles, where the fast attacker needs to maximize proc output to keep up.

 

This is interesting :) If I understand correctly the first part of your sentance, you do not refer to proc here but to the relationship between fast/slow weapon. I agree that this is a core question that needs to be answered at the same time. In my current design, fast weapon have more DPS while slow weapon have more DPM (damage per mana). The difference is not huge and not meant to compartimentalize builds but rather to offer some customization options to players.

 

I'm curious about the part where you think my option 3 (moderate scaling with skill's speed) will "force" players into using faster and faster attack to maximize his procs. Yes, faster attacks will lead to more procs but reacher faster attack speed values will be less effective than for example, gearing to improve the unit's damage or even the proc's output. Since I'm proposing a scaling a procs compared to attack speed that is inferior to a 1:1 ratio, I'm hoping it will prevent that going crazy for attack speed is the only way to use procs efficienctly.

 

 

The reason the fast attacker will tend to be weaker is that they have more opportunities to switch strategies. A slow caster has to commit to an action 100 turns from now when the situation may have changed. A fast attacker can swig a potion or start retreating or use a different skill at much shorter notice. So we expect them to get better situational benefits, which needs to be balanced by something else.

 

I've taken care of the advantage of using a fast weapon (easier to react to rapid changes) in the general damage/speed ratio of weapons. Having procs be flat out better with fast weapon would have to be factored in my initial weapon balancing. This is completely feasable. It may however make slow weapon only good for damage and fast weapon bad of dealing damage since procs can be very powerful on very fast builds and thus the damage output of fast weapon would need to be really low. :/

 

 

Stack limits seem like a natural way to provide variety: The slow proc is stronger, so the slow attacker has an edge one-on-one (offsetting their strategic limitation). However, the fast attacker has more aggregate proc output assuming they can spread it around. So in a crowd situation the fast attacker has the edge in proc power. However, in keeping with his role that requires smart situational awareness: maximizing proc output needs to be balanced against the benefit of defeating opponents one at a time to reduce aggregate damage output. The slow attacker is less flexible but is optimized for the obvious case of "take them down one at a time". The fast attacker can achieve better raw output, but needs to balance that against basic tactics.

 

This seems to refer to a full normalization of proc power (option 2). If I understand your reasoning, you are saying that this is a good option because it is balanced against the different battle set-up when slow attackers will be better than fast one depending on what kind of enemies / formation of enemies they encounter? This is a good call in theory and something that would likely help achieve a smoother balance of the proc system :) Sadly in my game, there is no such thing as fights are more like a Final Fantasy 7 battle where situational awareness, positioning & reflexes are not factored in battle.

 

A friend of mine suggested to make procs based on the skill's final damage. This is how most procs works in the game Path of Exile for example. In this game, a "Stun proc" does stun the unit according to how much damage you did to her. s damaging proc is also there a function of the base skill's damage. As skill's damage and its relation to cast-speed and weapon attack speed is already balanced, it means procs are also balanced as well. This however forces units that would like to enjoy proc to focus on damage heavily. I'm not a fan of their proc design to be honest. It kills most non-damage builds that would like to proc things. I want a design where a player can build a purely supportive character that procs things even if he deals no damage at all initially. I also want proc to work on defensive skills, for example a proc when casting a healing spell on a target. Or a proc when casting a simple buff on a friendly unit, ect...

Share this post


Link to post
Share on other sites

Sometimes you will not know a "proc" is broken until players get to interact with it and combo it will a few things you had never thought of. Think of WoW and "Proc" from "Procs" :)

Share this post


Link to post
Share on other sites

Sometimes you will not know a "proc" is broken until players get to interact with it and combo it will a few things you had never thought of. Think of WoW and "Proc" from "Procs" :)

 

Oh yeah, I expect plenty of these :) I'm designing my character customization process to be very open and let player do crazy stats / items / skills associtation. I like a game where players can create uninteded strategies by pushing the game to its limits. The paradox is that to properly support all that crazyness, I need an initial design of every stats & mechanisms in my game that is well balanced & polished. Otherwise, everything will hit the fan way too quickly and will just require me to re-balance things left and right.

 

UPDATE:

On the three parameters that can influence the cast of a skill, I've been able to rule one out. There is no need for me to take into account every stat/buff/item/talent bonus that would increase cast speed when balacing procs. The reason is simple but somehow eluded me before. Every bonus in that category come with an associated cost already. If you use an item that grants +100% cast speed for example. It comes at the expensce of not using an item with +100% damage or + 100% to proc X strength (procs are scalable roughly by the same stats as damage in my game). So if I compare a unit with +100% cast speed or one with +100% damage (which apply to his proc), they both end-up with the game ratio of proc's power per unit of time in the end. So it's ok and balanced if unit are using these stats to push there attack speed to insane values.

 

This does not solve the general proc issue at all but it still reduce the scope of the problem. There is only the base cast time of a skill and the weapon speed that I need to worry about. This also reduce the difference between the mininum and the maximum efficiency of a proc based on the skill's final cast speed by an order of magnitude, which can only help me achieve a better proc balance (even with one of the options I already described).

 

Edit: My weapons will have a maximum speed difference factor of 2 between the slowest and the fastest. The factor is about 10 for skill's base cast time in most cases. So w/o any scaling, I'm looking at a *20 difference between fastest / slowest cast time for a skill in the end. As a reminder:

  • Option 1 keeps the factor 20 of difference between fast/slow unit and makes procs really bad for losw units
  • Option 2 make that factor 0 since procs's efficiency no longer depend on attack speed at all
  • Option 3 aims at reducing that factor 20 to something like 5 or 10.

 

Thank you for your input everyone ! I'm very gratefull of every post so far, it is really giving me new ideas and making me rethink the problem on new angles :) Keep it up !

Edited by Ey-Lord

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!