Jump to content
  • entries
    20
  • comments
    94
  • views
    5,183

Healing and status effects

freakytapir

246 views

Once again a slightly more philosophical article devoid of maths. Seeing as I am starting my masters thesis in a week, now is the time for this.

 

What purpose does healing serve in a traditional RPG?

 

Summarised to it's bare core, it is an attrition mechanic. The one stick by which all others are measured. Enemies deal damage, we deal spend MP to negate this damage, when this MP runs out, we die  or retreat out of the dungeon. The same counts for boss battles. The boss damages us, and if everything is going well, we spend 1 or 2 characters' MP and negate the boss' damage, thereby perpetuating a steady state where damage from the boss equals our healing output, and putting upon us on a deadline : defeat this boss before the healing MP runs out. 

 

Even in MMO's, the only measure for  "Will we defeat this boss" is : does the healer outpace or match the boss' damage output. Execution is a big part of it in these games ( Being a healer in WoW is not easy), but it is a case of execution , not of choice.

 

But then , what is introduced ? Healing items, a way to trade gold for health. The same games that are stingy on MP items are also the ones to shower you in healing items. But MP healing ? No, that is insanely expensive or non-purchasable. 

 

I despise this linearity. The solution I pose is a heavy usage of debuffs/status effects. Do I heal the poison or the HP damage done by the poison ? Is healing HP or dispelling the Defence debuff better ? Those are choices. Especially if there are follow-up attacks or combos ( Feeding frenzy deals extra damage to bleeding targets, Haste accelerates poison damage ...).

 

This does require that status effects are an equal and immediate danger as HP damage. In many RPGs this is not the case.

 

Poison that deals 10 % HP damage ? Boring. Now 25 % , that gets peoples attention. I really liked Persona 5 over this. Harsh statuses you could not ignore, but also where not a death sentence. Sure, Despair decimated your MP and killed you in 3 turns, but you could react to it.Bonus point for having them also open you up to bonus damage from nuclear or psychic damage if inflicted with a mental or physical or mental ailment. It generates play beyond "spam highest damage/cheapest spell " every turn. I really believe the 300 % damage boosts to this damage shouldn't have been locked to the ultra hard mode, but that's how it is.

 

First a look from the players' point of view. If I can cast fire and deal 50 damage, or poison that deals 10 hp/round, why even give me the choice of casting poison, especially if the poison only has an X % chance of hitting, and the fire is nearly a guarantee. Blindness ? Useless. SIlence ? Please.

 

The solution I pose: have all status debuffs also deal damage, while also having enemies deal a truckload of damage. If I have to choose between "Fire" that deals 50 damage, and poison that deals 30 HP and has a 75 ~100% chance of inflicting poison that will deal 20 hp/turn, that is a choice. Next on the list : move healing from attrition to the tactical space in even random encounters. Having 100 HP and an enemy dealing 5 damage leaves healing in the boring attrition realm. Now having 100 HP and having the enemy deal 40~60 damage per hit, now that actually moves healing into the tactical space, something usually reserved for boss battles. Can I kill these enemies before I die ? Let's see.

 

Now, boss battles. If I can just blind the boss, doesn't that take away most of the challenge ? Here I propose a different solution. Have a anti-boss version of each status effect. Blind on a trash mob gives 75 % miss chance, but on a boss, it gives 25 % miss chance. Still significant, but not an autowin. Preserve the utility of debuffers even during boss battles, they already get benched enough. Have the anti-boss version of silence give a 25 % failure chance to spells instead of a 100 % prevention of spellcasting. Shorten the duration from 3~5 to 1~2 rounds. Just make all skills inflict both, and have regular mobs be immune to the anti-boss version, and vice versa. Poison on bosses can be 2~5 % HP, confuse only works 20% of the time, and so on... 

 

This also pertains to boss attack patterns. Have your boss throw something around besides pure damage. Maybe he throws a defense debuff and a medium damaging move ( Small point : bosses should have multiple turns as standard, because he is stuck fighting a team that gets 4-5 actions/turn) the round before he sweeps the board. That generates play. Do we heal , remove the debuff or just guard with the entire team ? Can I ignore silence on my mage or not ? But don't have the boss just throw these around randomly.  Have them be part of his attack pattern.

 

That is the hard and fast rule: generate play, generate choices.

 

My long and winding point up to now is simple to summarise :

 

1. Make healing something more than Damage in vs healing out. Use status effects and debuffs. Even Bosses should throw antidotes sometimes.

2. Make enemy moves require counters, but offer multiple options on how to counter. No single item or skill should be the sole solution.

 

Check in next time for a numerical analysis.

 



7 Comments


Recommended Comments

Hmmm... Personally I am kinda of the opinion that the best way to do healing is to either make healing limited or give party members a small bit of hp regen so healing is only necessary in emergency situations. It depends if you want the challenge be more about managing your resources long term or more about short term tactical choices. It's even possible to do both at once, like the way the SaGa series uses both HP witch is restored after every battle and often regenerates, and LP which you basically can only recover at an inn if at all. Or some other system where party members can get more long term wounds which reduce their max hp as well as short term ones. As for status effects? Almost the same situation. You can have long term ones that are kind of annoying to get rid of or short term ones that are just momentarily inconvenient.

 

I think the problem is that healing and status effects are too often just kind of a distraction. A thing you have to think about but easily dealt with without much consequence. I think it would be better if you either had to work harder to deal with them or didn't have to think about them as much in most situations.

Edited by Kayzee

Share this comment


Link to comment

The biggest problems I have with long term status effects is the randomness of it all. You get hit with a long term status effects in the first fight ,or even half way  through the dungeon ? Sucks to be you. Better go back to town. It just creates a randomness factor with long lasting consequences, which I believe to be bad gameplay. If I get screwed, I want it to be because I did something wrong, not because enemy #1689 cast curse on me.

 

I do agree that healing seldom seems to matter, and if it matters it is during boss battles. I want to bring healing to even regular battles. I want to tune the medium to high level battles in my game to be close won fights, with as much decision points as possible. A victory should be the combination of your choices. That said , no enemy move should randomly screw you over. Play and Counterplay is the name of the game, and healing is an important tool in that balance.

Share this comment


Link to comment

I don't think long term status effects have to be that random. I am not thinking of something that random mook #1689 can just cast on you if you get unlucky, I am more thinking of consequences for how you play. For example, what if every time they get knocked out a party member might get injuries depending on how they got knocked out? Heck, the knocked out status it's self is a perfect example of what I am talking about. It's not untreatable, but you need special skills/resources to deal with it. There could be other examples too. What if hitting 0 MP caused a form of mana exhaustion?  There is even the idea of hunger and other survival elements you might need to worry about. Yeah it's not quite the same, but the point is to have something the player needs to deal with and having consequences for not dealing with it effectively. Having random mooks cast spells at them absolutely dosn't do that. Unless you count bringing the proper equipment/skills for immunity anyway. Fine to spice up a battle in the short term, but having them cast long term effects is just annoying.

 

Really I think the thing that bugs me about a lot of RPGs is that every battle is almost like it's own minigame with little or no interaction between them or the rest of the game, but at the same time that is not always necessarily a bad thing. Healing and status effects are probably the most important thing that effect this. Do you want each battle to be it's own fun challenge? Then why not just automatically heal to full after every battle? Do you want to focus more on the challenge of getting through a dungeon then each battle? Then each battle might not be as exciting, but that's not really the point now is it? And yes you can have it both ways if you are clever about it, but it's more tricky then you might think.

 

You know, one thing I realized about the project I am working on? The enemies are way too strong sometimes. It almost feels like an enemy taking more then one or two hits to be an ordeal to fight. But I have a roguelike battle system so the type of combat flow is very very different to a typical encounter based battle system. Still I had to tone a lot of enemies down to have the kind of challenge I want to provide, even if that makes them maybe a bit less interesting. I added some more rare unique enemies that can only show up once per floor, but even they are more annoying then hard. I mean, I like the idea of Etrian Odyssey's F.O.E.s (or maybe more like Etrian Mystery Dungeon's D.O.Es really) to provide a bit more of a challenge now and then, but they should be avoidable. On the other hand, in my project there is regenerating health so you can rest between fights.

Share this comment


Link to comment

Actually, that is the plan in my game, heal HP to full after each battle. MP regenerates at about 10-20 % per turn, so a combat you mishandled and had to spend more MP than usual on will have consequences for the next 2-3 battles (at 3 round/battle). MP remains low, and the big spells are a big chunk out of that.

 

That said, a character will always be able to do its basic function.

The basic single target cure spell is 0 mp, the base elemental attack spell is 0 mp. A mage will never have to wack people upside the head with a staff, because that is not part of the class fantasy.

 

I want to build my game for the medium term consequence. Each battle should influence the next 2-3, but a couple of mistakes or bad beats shouldn't ruin an entire dungeon.

Share this comment


Link to comment

Only problem I can see with that is I think it's easy to make dungeons kinda boring doing that. But then dungeons can be made more interesting in other ways like puzzles so...

 

Hehe, I think whacking stuff with a staff now and again is perfectly in tune with my idea of 'wizard' or 'cleric', though I see your point. One thing I have experimented with is having different weapons use different skills/formulas for basic attacks. No reason for every weapon to do the same thing after all. Some of them might even be better doing healing instead of damage. I prefer doing that over having 0mp skills, but it's practically the same thing.

Share this comment


Link to comment
21 hours ago, Kayzee said:

 One thing I have experimented with is having different weapons use different skills/formulas for basic attacks. No reason for every weapon to do the same thing after all. Some of them might even be better doing healing instead of damage. I prefer doing that over having 0mp skills, but it's practically the same thing.

 

I really need to agree with you on this. As I previously wrote on my blog, each and every weapon has a different damage formula for the basic attack. Bludgeoning weapons deal more to enemies on low HP, slashing weapons deal more of your HP is high, piercing weapons ignore parts of the enemies defence, axes deal more damage against debuffed opponents, swords generate more tp, twohanders deal cleave damage .... This combines in fun ways, for example, the longsword is a Medium Slashing and Piercing Sword, so it can be wielded with a shield or small weapon in the off hand, it deals more damage if the user is at high hp, generates more TP, ignores part of the targets defence and allows the users to use Slashing and Piercing Skills. The Quarterstaff on the other hand ( different from a mage's staff) is a Large Bludgeoning Peasant weapon. So it deals Bludgeoning damage, deals more damage if the target's hp is low, raises the users attack when buffed with something, deals damage to multiple enemies when attacking and allows the use of Bludgeoning skills. As a special ability, it raises the users block, and counts as a shield.

The mages staff deals damage according to the users magical attack vs physical defense...

Most of this is realized by using Yanfly's Weapon Unleash system, to give every weapon a unique attack skill, instead of filling up the formula bar with 200 if-statements.

Share this comment


Link to comment

Hehe, yeah I am using my own script to do the same thing. Though if I ever need a formula with a lot of if statements, I often make a new method in Game_Battler and just call it in the formula rather then load the formula bar up with tons of stuff. Also helpful for calculating generic damage. Actually my whole script I use for weapon attacks isn't very long (though I am using another script to load notes), take a look!

 

Spoiler

class Game_Battler < Game_BattlerBase
  
  def weapon_attack(target, attack = 1, defence = 1)
    get_weapon_attack(target) * attack - get_weapon_defence(target) * defence
  end
  
  def get_weapon_attack(target)
    self.atk * 4
  end
  
  def get_weapon_defence(target)
    target.def * 2
  end
  
  def magic_attack(target, attack = 1, defence = 1)
    self.mat * 4 * attack - target.mat * 2 * defence
  end
    
end

class Game_Enemy < Game_Battler
  
  def get_weapon_attack(target)
    return super unless f = note_field[:weapon_attack]
    a = self
    b = target
    v = $game_variables
    Kernel.eval(f)
  end
  
  def get_weapon_defence(target)
    return super unless f = note_field[:weapon_defence]
    a = self
    b = target
    v = $game_variables
    Kernel.eval(f)
  end
  
end

class Game_Actor < Game_Battler
    
  def get_weapon_attack(target)
    return super unless f = weapons[0].note_field[:attack_formula]
    puts f
    a = self
    b = target
    v = $game_variables
    Kernel.eval(f)
  end
  
  def get_weapon_defence(target)
    return super unless f = weapons[0].note_field[:defence_formula]
    puts f
    a = self
    b = target
    v = $game_variables
    Kernel.eval(f)
  end
  
  def attack_skill_id
    weapons[0].note_field[:attack_skill] || super
  end
  
end

 

 

So now I can just have a staff have a notetag like :attack_formula => "a.atk * 2 + a.mat * 2" and it will work. Also: I can have different skills have different attack/defense multipliers which is very handy for other skills I want to be based on a weapon's attack. That's I don't know how the yanfly script works though.

 

Edit: You know, I am only checking the first weapon. It might need to be recoded if I ever use dual wield stuff. But I always found dual wielding kinda awkward in ace anyway, since it seems it just adds the stats together and makes two animations play rather then counting each as a different attack like I would like.

Edited by Kayzee

Share this comment


Link to comment
×