Koding Konversation: Health and Damage Scaling

This conversation was posted to the Project Spark forum and is recovered using The Wayback Machine
Date: April 4 2016

Original Post

vKILLZONEv: I was wondering what methods some of you guys use to scale the attack damage/health. My system is pretty basic and really too linear.

Responses

Brasten: System mechanics! Now these are always an interesting discussions, and Health/Damage goes well beyond video games. It has, in fact, been an issue as long as table-top role-playing games have been around (1970s). There are many schools of thought on how to manage the tri-problem of character progression, character/enemy health, and character/enemy damage. One could likely write a decently sized research paper on the topic.

One of the core aspects to think on is what the numbers mean, in the end. Why are numbers important and what do they represent? Can what they represent be conveyed another way, through a different mechanic?

It’s kinda hard to work in the abstract since each system depends on what you intended to do/mean. If you are thinking of the now “generic” form of “character level”, one should really take the time and go back to the roots of where that style of system began.

If you are trying to think of ways to just keep the numbers from getting ever larger, there are a few ways to do so. A big one is to look at alternate defense systems beyond just pure health. I have two favorites that I personally look to among modern games.

====

The first is the Rock/Paper/Scissors defenses of Mass Effect 2 (not 1 or 3, specifically 2). In ME2 enemies can have 1 to 3 “health” pools. Shields, Armor, Health. Health is what you’d expect, a static number scaled based on relative “level” of difficulty and enemy type. Armor was also a set pool of health before you got to Health. While in Armor attacks suffered a Damage Reduction (DR) penalty. In Mass Effect 2 this was a flat numerical value (again based on difficulty level), sometimes going as high as 50 or 75 damage taken off your attack (to minimum value of 1). Once you depleted the Armor you were “past it” and no longer had to deal with the DR. Shields were a regenerating health pool, that would come back if an enemy was left alone for a set period of time. Shields also blocked all the damage from the last attack that depleted the Shield pool. If you to a Super Big Cannon hit, it would just take out your shields but not spill over into your health or armor.

This created a 3 layer system for weapons to work with. Any weapon worked fine against Health. Low to mid range damage weapons were penalized heavily against Armor. And high damage slow firing weapons were penalized against Shields. This also allowed the designers room to create a variety of enemies with more differentiation than just “more HP”.

You could make an enemy with a small amount of quickly regenerating shields that made it functionally immune to rocket launchers. Or a highly armored enemy that would function like a classic “bullet sponge”.

I don’t like ME3’s adjustments to this system because they combined Armor and Health into one layer, and Armor never got removed.

====

This leads me to my second favorite and far more complex system. The MMO dark space opera EVE-Online.

EVE also uses a 3 layer health pool for its ships. Shields, Armor, and Structure. EVE adds “damage types” and resistances, Kinetic, Energy, Heat, and Explosion.

The different health pools could, and often did, have different resistances. Resistances were a form of percentage based damage reduction (as opposed to ME’s flat values). As you broke through each layer of defense you would need to switch “ammo” types to begin working better against that layer’s resistances. The way EVE handles the “progression” of those resistances is actually very intelligent and creates a scaling you normally don’t see, and I’ll get to that.

EVE also adds in space ship speed, and “angle” as a form of defense. Smaller faster ships were harder for big slow ship guns to hit, they just didn’t turn fast enough. But that’s another part of this topic.

====

These two systems show the value of multi-layer health pools, and varying “damage types” as ways to diversify your game “horizontally” rather than “vertically” (pure number value increase).

If you want another example, think about the elemental typing in Poke’mon. If you’ve never seriously looked into how it works, and how competitive players work around it, you really should.

====

Going back to EVE, and how they handle number scaling. EVE uses a system of diminishing returns. Most RPG/Progression systems either use a linear progression or more dangerous an exponential one.

Both linear and exponential systems suffer from number inflation. The more “levels” you give something, the better its numbers get. If there is no cap to enemy progression you end up in a situation where players simply can’t keep up with the AI enemies numbers. You see this in Endless Horde Shooters (Call of Duty Zombies, Killing Floor, Warframe, Borderlands). You also see this system rooted in Dungeons and Dragons (1974 – present) method of Character Levels and Monster Hit Dice. The system can be scaled upward forever, however play doesn’t necessarily change. The numbers just get bigger. Same play, bigger numbers. D&D and some other games that use linear or exponential growth systems combat this by putting a hard Cap on growth. This could be a hard “level” limit (20 for D&D, 100 or 255 with Poke’mon, 110 in World of Warcraft) where numbers just stop, or it could be a soft limit (Dark Souls and other FromSoftware games in that line) where the gains/benfit drop off sharply.

In EVE, they use a system of multiplicative* fractional bonuses. Every bonus you gain toward a resistance is multiplied by all the other bonuses, and stacking penalties. Something like Base + (((100 – Base) * (Hardener1 / 100) * (1 + 0.05 * skill)) * stacking penalty 1) + (((100 – Base) * (Hardener2 / 100) * (1 + 0.05 * skill)) * stacking penalty 2) + … . It’s mathematically more complex than what most RPG systems use**, but allows EVE to create a system of diminishing returns and “soft cap” various game elements, regardless of how much more they add in the future.

====

If you don’t want to go to the extreme of creating a mathematical formula of fractional multiplier bonuses, you can go with linear or exponential. You just need to pick a Hard Cap on both player and enemy level. Figure out what your Max values should be on both sides. Generally easier to look at what you want player damage to max out at. From there you work backwards and fill out the progression of your other systems to meet that per-determined max.

* Multiplicative vs Additive, Additive bonuses are simply added or subtracted together to arrive a total. Multiplicative bonuses are multiplied together and then applied to the value they are modifying.

** Which is because EVE is taking advantage of computer systems to do what table-top games just can’t do. Since so many computer RPGs (CRPGs) just ape table-top games, they inherent some of the mathematical restrictions unnecessarily. It gets even worse when CRPGs ape other CRPGs without understanding why they use the systems they do.

vKILLZONEv: Thank you for your response! A lot of what you said really inspired me to create a fully fleshed-out combat system. My current project is divided into three “stages”. Each stage has you following an adventurer as he gains renown and increases his skill. In the first stage the “adventurer” has just set out on his quest to vanquish evil yattayattayatta. The primary foe will be goblins who are threatening the safety of a small mountain village. Each quest will have you venture further up the mountain until you defeat the final boss, ridding the area of the goblins.

My plan is to end the game after defeating the final boss, at which point you will be lvl 9. My predicament as it stands now is that I’m not really sure how much the stats should increase upon level up. Right now the goblins are pretty simple. Heavily armored goblins health = level x 8 , damage = level x 4. The mage goblins are the exact inverse. So, health = level x 4 , damage = level x 8. Not very in-depth I know. Which is why I am here.

The player’s attack and damage are a bit more involved however. Currently the system I am using is this: health = 12 + (lvl x 8) Again, nothing too fancy. However, the damage system is a little better: 2 + (lvl x (lvl / 1.5) + killstreak / 4) + combo Where combo is number of consecutive hits and killstreak is number of consecutive kills. As you can see, my scaling system is incredibly rudimentary, and I am having a hard time coming up with an elegant solution. I also want to add in elements such as random attacks missing (which I have a “beta” system already implemented) and critical hits. I already have the beginnings of a resistances system, however it is only a flat damage reduction across all incoming attacks.

Any insights you, or anyone else, could provide would be greatly appreciated!

Kohldar: Nice work Brasten! I don’t think I have much to add, though per the OPs request I’ll chime in. The scaling of HP/Dmg as I’m sure by this point you realize is totally based on the sum of its parts. Sometimes at first it’s difficult to select a system without seeing how it actually behaves in your game. For instance, take into account Super Mario RPG’s level up system (if you haven’t played this GO PLAY IT!!! It is a must play!)

However, if you have played it, you know that the level up system works on a base, flat upgrade system, built on with Weapons, Armor, and Accessories. When your character leveled up, you chose one of 3 stats. I don’t recall there being a hard level cap for this game, though I know after a certain point it was super time consuming to even gain a level (somewhere on or after level 25 if memory serves me). What I’m trying to get at is that as Brasten pointed out, there generally becomes a point when the returns on doing something simply don’t pan out (diminishing returns). These systems are built on exponential curves. The solution is likely in the math, but I guess the point that I’m trying to get across is this:

Get a spreadsheet, punch in your equations for calculating stats, and run the numbers. Using this, you can figure out a “base curve” for all stats, even if it’s a different curve for each stat. Once you have the base figured out, you can control the damage and scaling based on a few factors within the game, such as XP returns on killing enemies (like WoW’s system of killing “grey” enemies versus “green”, which is your level minus 2-3 levels, “yellows” – 2,3 levels above, orange 4-9 levels, or skulls, greater than 9. You can use gear availability to throttle a player’s defense/attack. Another interesting system is Skyrim’s and Diablo 3’s “All enemies are the same level as you”, and based on their level, they can have different stats.

Closing thought, if you can figure out your minimum’s and maximum ranges you want (like level caps (ex. 30, 99) or stat caps (Ex. 255)) it might even be easier to scale the game to that system. If you know the beginning and the end, then the middle should be your playground for messing with these values, not only as the creator but as the player.

ZuluBeatle44270: Well I would like to help you … but unfortunalety I have no idea what you actual want to achieve. You seem to know how to connect damage/health etc to an level and/or difficulty, so I will not add to this area.

Also I have no idea what kind of attacks your hero and his enemies have – Magic which can bypass armor? Conditions? Healing? Buffing?

So to get an proper solution please ask an well defined question first.

Nevertheless, to not be complete useless to you, I would suggest an armor/resistence system to spice up your combat.

In code it would like something like this:

[Goblin Brain]

When: Do: [ARMOR(number)][equals][something]
When: Do: [MAGIC RESIST(number)][equals][something]

[Player brain]

When:[ATTACK ONE(boolean)] Do: [shoot][something][at][MY ENEMY(object)][with damage][(][PLAYER DAMAGE(number)][minus][MY ENEMY][ARMOR(number)][)]
When:[ATTACK TWO(boolean)] Do: [shoot][something][at][MY ENEMY(object)][with damage][(][PLAYER DAMAGE(number)][minus][MY ENEMY][MAGIC RESIST(number)][)]

and so on.

Tiles in capital letters represent local variabels you have to define first. The brackets behind it say which kind of variables they are. ATTACK ONE and TWO are booleans which you can substitude with controls like [A][is pressed] or something similiar. But as I mentioned I have no idea how your system is working. Hopefully the basic idea is clear. The advantage of this system is that you can create different attack which different effects. Like for example an electric strike which is good against armored enemies but not against mages. Or Poison, which ignores any kind of protection. And of course you can also let your enemies use that attack. But in this case be aware that the tile [player] seems to be a little buggy from time to time. I have the feeling it is not a true object variable but acts more like an pointer. In my experience it is better to define a global variable [PLAYER(object)] for yourself.

LucidStew: On the subject of armor, I’ve never played a game where this was handled satisfactorily. Some armor should absorb all of a certain type of damage. Spillover should cause damage. (i.e. damage 8 meets armor 8, damage = 0. damage 9 meets armor 8, damage = 1) You could have damage taken to armor decrease it’s effectiveness, but I don’t think it should act directly as a damage filter(like damage 10, armor 8, damage taken = (10/(8/2)) or whatever), nor as a second layer of health. It should attack as armor. I thought it might also be fun to have reactive armor add-ons, where it deflects or dissipates damage, but is destroyed upon use, kind of like ammo for weapons.

Kohldar: Totally agree with you Lucid. Personally, I liked the systems that used “ratings” that were simply turned in a % modifier for damage reduction. For instance:

Max armor rating is 255
Current Player armor rating is 125
125/255 = .49 = 49% reduction

Now lets say that after 50% damage reduction we start to impose diminishing returns
Current Player armor rating is 150
150/255 = ~.59 = 59% reduction, but this is too high so we need to decrease the value of the overage

50% damage reduction is technically 127.5, but since 128 is over 50%, we’ll use 127. Soooo,
Current Player armor rating is 150
Max Armor before diminishing returns is 127
127/255 = ~.498 = 50%

The remaining armor rating is 23, so lets impose a 50% reduction per point over 127
(My math may be incorrect, but the results is what I would want/expect)

23^.5 = 4.79 = rounded down to 4 or up to 5

So total damage reduction would be

131 or 132/ 255 = ~51% or ~52% damage reduction. Now we can figure out our max damage reduction!

128^.5 = 11.31

Current Player armor rating = 255
255 minus diminished returns over 127 = 128
Armor rating before diminished returns = 127/255 = %50
Remaining armor rating with diminished returns = 128^.5 = ~11
Total armor rating = 127 + 11 = 138/255 = 54%

Max damage reduction is then found to be 54%.

And this is just one way this could be done. Not saying its the best, but its an option and what I thought of on the fly, keeping in mind other games I’ve played.

Brasten: 

Originally Posted by: Lucid Stew 

On the subject of armor, I’ve never played a game where this was handled satisfactorily. Some armor should absorb all of a certain type of damage. Spilloverhich should cause damage. (i.e. damage 8 meets armor 8, damage = 0. damage 9 meets armor 8, damage = 1) You could have damage taken to armor decrease it’s effectiveness, but I don’t think it should act directly as a damage filter(like damage 10, armor 8, damage taken = (10/(8/2)) or whatever), nor as a second layer of health. It should attack as armor. I thought it might also be fun to have reactive armor add-ons, where it deflects or dissipates damage, but is destroyed upon use, kind of like ammo for weapons.

This would not be far from an Item Durability system, that you find in some action RPGs like Dark Souls or maybe Diablo. Also I think survival sims like DayZ do this as well. Where taking hits slowly reduces the durability value of the “armor”. For Dark Souls that would be a change from a %Resisance to flat values.

Had a Warrior in Diablo 1 that got stuck in the catacomb zone with all the goatmen. He was body blocked in a corner, and couldn’t attack because of the stacked attacks incoming against him. He got stuck in repeat blocking animations. I ended up saving and exiting before the shield got close to breaking, was young at the time, but I really should have just let it run to see how long it took for the shield to break.

Which opens up other mechanical systems that aren’t directly about health/damage. Blocking, dodging (damage immunity frames), parrying. Actually a lot of things that are not derived from the legacy of turn based RPG defense systems.

ZuluBeatle44270: Well you could change the damage calculation formula so that armor (and vice versa magic resist) becomes an %-Damage-Reducer. And you can of course add even more … formulas to the calculation. The only question that comes to mind is:

Why?

I get the point of the %-calculation as it prevents you from getting 0 damage if you have enough armor, but what exactly is the advantage of this diminishing return system or other addons to the basic formulas?

Keep in mind that the player most likely want to know (at least in a basic form) what his armor actually does. And if he need an extra wiki just to understand the page long calculation system …. .

Things get also even more complicated if you add something like skills, which highens or penetrates the armor.

Therefore my suggestion would be to keep the basics simple and instead distribute more advanced calculations to additional effects like armor penetration etc.
For the %-Damage Reduction I would use a similiar formula like the one which is used in league of legends.

When I remeber correctly it should be a damage multiplicator with 100/(100+armor).

Braston: I’ma put this first:

There is nothing wrong with simple, linear progression system. As long as it isn’t infinite, you understand what maximum values are, you support every play style, and know which ones hardcore players will be drawn to as “optimal”.

====

Originally Posted by: ZuluBeatle44270 

I get the point of the %-calculation as it prevents you from getting 0 damage if you have enough armor, but what exactly is the advantage of this diminishing return system or other addons to the basic formulas?

The primary point of diminishing returns to help avoid “power creep”. Taking EVE (math) as the main example. Damage reductions usually cap out at about 80 to 95%, if you have maxed out skills, and every possible support item. Without diminishing returns and the way EVE handles the bonus stacking/multiplication, you’d hit and maybe pass 100% resistance. Definitely without the diminishing returns, you’ll hit that 99.99% DR (damage reduction) faster, and with fewer “items”. For EVE, they can keep adding new items/skills/etc to the game without having to worry about breaking their game. By design the diminishing returns create a functional hard cap, without having to code a “level limit” or something equally oddly arbitrary, like a max number of “resistance plates”.

Here’s an example of a system that doesn’t use diminishing returns in Warframe’s Armor system, for enemies. For enemies this becomes a very noticeable problem as you start reaching values like, 3.45% damage at level 108. This is compounded by level based scaling on the health pool the armor covers, and without a way to bypass the armor makes the enemy functionally invulnerable. This gets contrasted with theoretical maximum (hard cap) on Player damage output. Warframe weapons and abilities can only be pushed to do so much damage, as player options are not infinitely scalable. Player damage will only be as good as: the most damaging weapon or power released + a very standard array of “mods” that increase damage output. Enemy health and armor will continuously scale to infinity, or until the player runs out of ammo consumables.

Borderlands 2, like Warframe is also infinitely scaling as you get into Ultimate Vault Hunter Mode. However Borderlands wasn’t really designed to handle infinite scaling and many “builds” become unplayable because they don’t use various weaknesses in systems to overcome imbalances that scaled to far and broke. Axton/Commando is generally considered almost unplayable in UVHM. Granted UVHM is really about playing Borderlands at that busted extreme level, and is not a “general consumption” mode.

Originally Posted by: ZuluBeatle44270 

Keep in mind that the player most likely want to know (at least in a basic form) what his armor actually does. And if he need an extra wiki just to understand the page long calculation system ….

Actually most players don’t care, as long as the game seems fair, and they can make progress.

Do you know how Poke’mon, a “kids” game actually calculates Accuracy and move’s % chance to hit? How a 100 Acc move can still miss… its not what those kids would call a simple calculation. Division of fractions. And Poken’mon doesn’t show this calculation to the “player”. It only shows the results, as either a Hit or Miss of the attack. How about STAB, EVs, IVs, the list of back-end Poke’Math can take you down a Buneary hole. Most of which are either not exampled in-game or are described in generalized terms. And certainly not in Gen 1.

EVE-Online by contrast shows the results of the calculation as you put resistance modules on, and warns players that bonuses of the same type of items have a stacking penalty (undisclosed in the UI).

You can very much build a complex mathematical system and show its various output in the player accessible UI, in ways that a player who doesn’t care about the math can grasp. It’s then up to players who are really dedicated to play, to look up or derive the formulations themselves.

Dark Souls is another example where the math is hidden from the player, but the results are shown in the UI. Weapon and Armor stat scaling given in Alphabetical Ranks. And in the UI it shows the Stat/Scaling adjusted stats of the weapon you are looking at. A general Dark Souls player doesn’t need to understand the math of how those numbers are obtained, they just need to know the resulting numbers. A hardcore (diehard, uber geek) player can go an extra step beyond what they need to know (the numbers shown in the UI) to play the game, and dive into what they want to know (how to manipulate and maximize those numbers).

====

There is nothing wrong with looking up additional information on external services like community Wikis.

The problem becomes when basic play information is not include in-game, and can only be found on those external services.

In short your game needs to have at minimum the basic information about how to play the game inside it. Warframe and EVE are actually two examples that are fairly bad about that. (I think EVE has gotten slightly better, at least they’ve redone the tutorials a few times). And yes, both communities have constantly brought up the lack of god basic play information to both sets of developers. Poke’mon is okay at it, it just gives you a general senses that having a high accuracy move, with buffed accuracy, and debuffed enemy evasion means you’re more likely to hit (without details of the math or exactly how likely). Dark Souls is much the same way, everything you need to know to play the game is right in front of you in the UI… it just doesn’t give you the secretes to Min/Maxing all nicely gift wrapped.

The back-end math of your game systems is not basic play information. If you did your job right as a designer, most of your general players should never know or have to care about the math (Poke’mon). A game designer is under no obligation to “hardcore” players to divulge how their systems work (with IMO the exception of anything involving random “packs” and real world money). However, doing so through game external systems like community forums or wikis is perfectly acceptable. Talking about the math of game systems is a “Meta” discussion, and one best done outside the game itself. Especially if you aren’t an arrogant git, who is willing to accept criticism of your formulations.

Lucid Stew: 

Originally Posted by: Brasten 

This would not be far from an Item Durability system, that you find in some action RPGs like Dark Souls or maybe Diablo. Also I think survival sims like DayZ do this as well. Where taking hits slowly reduces the durability value of the “armor”. For Dark Souls that would be a change from a %Resisance to flat values.

Had a Warrior in Diablo 1 that got stuck in the catacomb zone with all the goatmen. He was body blocked in a corner, and couldn’t attack because of the stacked attacks incoming against him. He got stuck in repeat blocking animations. I ended up saving and exiting before the shield got close to breaking, was young at the time, but I really should have just let it run to see how long it took for the shield to break.

Which opens up other mechanical systems that aren’t directly about health/damage. Blocking, dodging (damage immunity frames), parrying. Actually a lot of things that are not derived from the legacy of turn based RPG defense systems.

I have mixed feelings about the concept of durability. It has its place, but it doesn’t belong everywhere. It’s fairly analogous to the inventory carry limit dilemma. Yes, it’s more realistic that a player can only carry 80 lbs. of loot, but gameplay-wise it’s annoying to constantly manage inventory, make multiple trips to haul stuff, to have to drop something you want to keep in order to pick up a loot drop, not be able to pick up an entire loot drop, etc.

The reason I mention it in combination with the idea of absolute armor is that without durability, in that circumstance, all you would have to do is max your armor and then walk around and watch blows bounce off harmlessly. Situationally this could be very enjoyable in small doses, but if it were persistent, it would make for a very boring game. Much like it’s fun to occasionally be able to one-shot an enemy, but one-shoting all enemies is not, for very long.

Reading what I’ve written so far, I guess I’m advocating making the taking of damage more equivalent to dealing damage in concept. It should be more engaging than watching the progress of a bar.

Kohldar: 

Originally Posted by: Lucid Stew 

[Reading what I’ve written so far, I guess I’m advocating making the taking of damage more equivalent to dealing damage in concept. It should be more engaging than watching the progress of a bar.

This and lots more like this! I agree, that the durability system is not always a recommendation. Personally, I feel like it fits in a Survival type game, like Minecraft. I found it really annoying in Diablo 3 and World of Warcraft. I just wanted to play the game. I didn’t want to worry about not having enough gold to repair my equipment or risk it breaking while in a Rift or Raid. I agree it does add another layer of depth to WoW but D3 I feel didn’t necessarily need it.

In terms of relationships of dealing damage versus taking damage, I think they should be regarded as ying and yang. You can’t have one without the other, and they should be opposites (Ex. a weapon has Critical Strike Chance, Armor has Critcal Strike chance reduction). If a player has a 30% chance to crit on an enemy with a 30% chance to not be critted, a system that may work would be like

1. Random roll to check for critical strike (1 – 100) + % chance to crit (30)
2. Random roll to check if able to be crit (1 – 100) – % chance to crit (30)

1. Roll = 50 + 30 = 80% chance to crit (the random roll could be weighted to, meaning a roll of 50 could only increase the chance by 5% for ex)
2. Roll = 40 – 30 = 10% chance to be crit

1. Random roll between 1-100, where there’s a 70% chance to crit on this attack

I left it more vague as there are way better, more robust, RNG systems out there, but to wrap it all up, the equations on both sides should be designed in a way that it is a tug of war between who will win in a single event, the attacker or attackee.

Lucid Stew:

Originally Posted by: Kohldar 

In terms of relationships of dealing damage versus taking damage, I think they should be regarded as ying and yang. You can’t have one without the other, and they should be opposites (Ex. a weapon has Critical Strike Chance, Armor has Critcal Strike chance reduction). If a player has a 30% chance to crit on an enemy with a 30% chance to not be critted, a system that may work would be like

I appreciate the need for randomness to keep events fresh. I use it myself, but I would rather see things like critical strikes be more weighted to player skill. Like if you strike when an enemy is unable to block, that should be a critical strike. Make it more like real combat. If someone tries to hack you with a sword, and you don’t block it at exactly the right time with your sword, there are consequences. You may hurt your arm, or it might sting your hands. You might drop your sword, or partial damage may get through.

On the flip side, with health, proper timing with a block should deflect all or some of the blow before it even reaches armor. In actual combat various armors have real consequences and there are real balancing issues. It’s not just a set of numbers and rolls of dice. I think one reason combat gets boring is because it loses its impetus through overemphasis of math mechanics. What SHOULD be emphasized is a skill based mechanic that the player can interact with directly. The classic dilemma there is how do you deal with someone simply holding block? Answer = holding block has dire consequences. Maybe one blow is blocked, but proceeding blows gets through completely. Damage to or shattering of the block weapon or shield. Getting into durability again, but what if durability was only an issue if you used your weapon or shield the WRONG way? Or perhaps a fatigue mechanic. How long can you hold up a heavy shield with one arm? Now, fatigue has it’s own set of problems, but if recovery were quick enough, it could act as an effective slap on the wrist rather than ruining combat entirely.

My apologies btw, since I’ve branched off of health into about 15 different topics. 😀

Brasten: That really sounds very much like the *Souls games (Demon, Dark, Bloodborn). Say what you will about the difficulty, its actually got a good number of well designed systems. That FromSoft is iterating on fairly well (although hit-boxes remain an issue at times).

If you take a look at the Dark Souls defense system from the player side:

  • Health
  • Stamina
  • Multiple Armor Resistances
  • Item Durability
  • Item Weight
  • Dodge
  • Parry
  • Poise

You can add to that list limited health regeneration for Dark Souls 1 and Bloodborn. (The DS1 team learned from Grass in Demon Souls, but the different DS2 team didn’t).

All of these combine to create a very diverse and complex system, that when mastered can be very engaging just to fiddle with. For a general user, they don’t have to worry about the mathematical details, just focus on a few key elements.

  • Weight Category, which impacts Dodge Rolls type.
  • Listed armor values (bigger numbers = better).
  • Stamina management.

The item durability plays directly into the defense system in protracted combat. It prevents players from putting the most damage reducing armor, getting lots of health regeneration (grass/life-gems), and just ‘armor tanking’ everything. Eventually their armor will break and they’ll lose those that damage reduction.

Dark Souls 1 and Bloodborn are fairly well designed active RPG systems and can be learned from. One doesn’t need to create as ‘difficult’ a game or as punishing systems however. You can take the DS systems and use them in far less punishing RPGs.

====

On Durability. The critical point is its use in combat as a balancing mechanic against prolonged heavy armor tanking. Even Dark Souls eventually lets you get an Armor and Weapon Repair kit. Dark Souls 2 repairs unbroken items when you “rest” at bonfire reset point. The difference is DS assumes that you are “in combat” from the moment you step away from the bonfire. A less punishing game could allow a regeneration of armor durability whenever they are not near an Enemy, in an active combat encounter.

Brasten: This is what I was looking for, The History of Computer Role-Playing Games parts 12, and 3. Over 30 years of development to rifle through for systems and formulas. And these articles don’t even take into account the last 10 years or so from 2008 to 2016.

Kohldar: 

Originally Posted by: Lucid Stew 

What SHOULD be emphasized is a skill based mechanic that the player can interact with directly.

Lucid, I got really excited when you mentioned this as it reminded me again of Super Mario RPG’s mechanics. As I’m sure you familiar with the title, you were able to time your attacks/blocks and were rewarded for timing the attack correctly with a double strike (not sure if it was actually double damage or not, but either way). This was also true of blocking, resulting in less to 0 damage. I think this system is very close to what you’re referring too, though I feel that your ideal system is drilled further down in precision.

I feel a lot of fighting games use something similar as well. Like in Killer Instinct, there are 3 different blocks (hi, med, low) and there’s the rock paper scissor game of hi/med/low block versus a hi, med, low attack and every deviation of special attacks/mechanics in between.

Lucid Stew: Exactly, more like a fighting game. One thing lacking in fighting games is a mechanic like fatigue to discourage button mashing. In reality if you punched and kicked constantly for a period of time, you’d become exhausted. Of course, we don’t want reality, but I don’t think we want completely unrealistic either.

Brasten: Usually button mashing is discouraged through highly technically play. While a button masher may get a single round win over a skilled player, just by pure chaos, generally button mashing is just going to leave the masher in a punishable position.

In an active real-time system, attack animations are as much of a component of the “system” as anything else. In fighting games, I look at the Soulcaliburs, you can get a counter balance of fast short attacks and long slow sweeping strikes. The difference in physical range and attack speed greatly change the defensive steps one has to take against different foes. Also applies to Action RPGs like Darksouls.

Working with Project Spark attack animations is probably one of the harder things you’ll try to do, even if you have a Kinect. Spark just doesn’t have the animation tools to build a highly technical fighters. You can either try hijack the existing weapon animations, try to mo-cap custom Kinect animations, or the laborious task of hand Koding your own animation rigs made up of Non-Character objects.

Lucid Stew: This is a problem I have with fighters. Generally button mashing is successful enough that most players don’t progress beyond it. While the superior player will likely win, the systems don’t disincentivize sucking enough to encourage getting better.

Kohldar: This! I have this similar debate with friends over Super Smash Bros when they want to turn items on, instead of getting better at fighting. IMHO, turning items on in SSB is the equivalent of button mashing in a fighting game 😛

Comments are closed.

Website Powered by WordPress.com.

Up ↑

%d bloggers like this: