Design Damage vs Defense design choice

Simon Gust

Member
Hello fellow game designers

I have been thinking about how I could implement my Damage and Defense mechanic in one of my games.
That game being a Terraria clone, you might've seen of it:
basically a 2D random generated world with a lot of weapons, armor and different enemies.

In Terraria it's very simple, the player has 100 hp, he does about 12 damage,
has 6 defense (3 damage reduction) and enemies also do about 14 damage to the player in the early game.
The progression is very well thought out and balanced.

old mechanics:
I kinda want to try something new:
I want to make the player only have 10 hp at the start, 1 attack power and 0 defense.
While enemies also only have like 5 hp, 1 damage and no defense.
The numbers are more like a paper mario style game.

The problem arises when you look at the variety of gear in Terraria.
There are like 8 main armor sets in pre-hardmode.
When you look at their stats you can see and feel the progression (before 1.2 at least) in them.
copper armor: 6 defense
iron armor: 9 defense
silver armor: 13 defense
gold armor 16 defense
shadow armor: 19 defense
jungle / meteor / necro armor: 16-17 defense
molten armor: 25 defense
What I want to do is making use of smaller numbers like said before.

Now, if I have ~4 to 5 armor sets that all give 1 defense, it's pretty much pointless.
Why would you ever make one armor over the other?

A solution would be to give different bonuses for armor,
but even then it may be very obnoxious for the player.

The solution I wanted to try is "decimal defense is chance".
Armor now gives a decimal amount of defense:
Helmet: 0.10
Chest: 0.25
Extremes: 0.15
Total: 0.50
And instead of reducing damage by 0.5 (which doesn't make sense),
I make the fraction of the total defense the chance to increase damage reduced by 1.

Copper armor would have no defense but a 60% chance to have 1 defense.
While better armor may have a guarantee to reduce damage by 1.
And if I still get into a "armor with similar defense" I can apply the set bonus.

Whether this will work out I don't know.
Until then, I want you to judge the system, call out flaws and logic errors,
so I can make it better.

Here's my current armor table
upload_2018-8-21_16-21-54.png

EDIT: decimal armor is no longer a chance to increase defense by one but instead a build-up.
Example:
With 50%, every second hit would grant additional defense against it.
With 33%, every third hit and so on.

EDIT: The armor build-up mechanic is now semi-random.
There is always the base chance to increase defense by one but if you miss that chance it adds to it the next time. It resets if you do get the defense proc though.
 
Last edited:

YanBG

Member
Sounds interesting but it's still not a big difference when i look at the table. It's better than all having 1 but the random factor can make them work the same at times. In my rpg i plan to add both parry and block chance(e.g. the % value), maybe evasion etc. But armor would have set defence stats.

Would there be more armor properties, like durability or i see there will be bonuses? These will make the armors feel different, the heavy metal ones can reduce speed a bit but be more durable and vice versa. There can be fatigue too so archers can't use the heavy armor.
 

Simon Gust

Member
Sounds interesting but it's still not a big difference when i look at the table. It's better than all having 1 but the random factor can make them work the same at times. In my rpg i plan to add both parry and block chance(e.g. the % value), maybe evasion etc. But armor would have set defence stats.

Would there be more armor properties, like durability or i see there will be bonuses? These will make the armors feel different, the heavy metal ones can reduce speed a bit but be more durable and vice versa. There can be fatigue too so archers can't use the heavy armor.
Like in Terraria where at some point you have to specialize in a class, you can't just use heavy tank armor as ranger because it gives you melee bonuses instead of ranged bonuses. Yes you won't die very fast but your damage output is very limited.
I have no numbers for the bonuses yet but I chose them based on armor with similar defense to make it worthwhile to get the armor.
Working with small numbers, every single point counts.

I did not plan for durability or fatigue. Still early in dev.
Appreciate the thoughts.
 
B

brogolem35

Guest
You can make it pseudo-random instead of making it fully random damage reduction. If I use an example I can explain it more easily.

Copper Armor:
Hit 1: %60(No damage reduction)
Hit 2: %120(1 damage reduction, damage reduction percentage goes down to 20)
Hit 3: %80(No reduction)
Hit 4: %140(1 damage reduction, damage reduction percentage goes down to 40)
Sorry for grammar errors.
 

Simon Gust

Member
You can make it pseudo-random instead of making it fully random damage reduction. If I use an example I can explain it more easily.

Copper Armor:
Hit 1: %60(No damage reduction)
Hit 2: %120(1 damage reduction, damage reduction percentage goes down to 20)
Hit 3: %80(No reduction)
Hit 4: %140(1 damage reduction, damage reduction percentage goes down to 40)
Sorry for grammar errors.
I was just thinking about that. And I really like the thought, since all the numbers are so small and every single point counts.
Health is a resource afterall and the more control the player has over it, the better.
 

Simon Gust

Member
I thought about it again and I made some adjustements. The armor build-up mechanic is now semi-random.
There is always the base chance to increase defense by one but if you miss that chance it adds to it the next time.
It resets if you do get the defense proc though.

With this I want to avoid the feeling of let-down for armor with higher than 50% chances.

I rebalanced the armor sets a bit.
upload_2018-8-23_10-16-0.png
My goal is to make the player be motivated to try out all armor sets and feel comfortable on straight upgrades.
Example:
Even though copper armor protects the player the same almost all of the time as the brass armor, it does not give
the SP bonus (SP being like mana for special and generally powerful attacks).

Basically, I don't want the player to skip all of the early game (like they do in Terraria).

I added some weapon ideas too
upload_2018-8-23_10-16-8.png

Enemies should also have stats but they do not feature the build-up / chance mechanic.
 

Simon Gust

Member
Time to necro-bumb this thread.
I updated my WIP thread but I will also partially post it here, so the discussion won't spam my wip section so much.


notice: The genre in question is open-world games

There are a lot of systems that introduce useless variables that just cancel each other out for complexity
For example:
GML:
var damage_done = damage - max(0, defense - penetration);
It's almost the same as this
GML:
var damage_done = max(0, damage + penetration - defense);
This is a pointless system. Why introduce penetration if you could just increase damage?
If you have 2 stats for a weapon you might have more to do overall, but in the end, because the two perform so similar in the calculation, what happens is that
- players are annoyed (or rather I am) to which stat to get an upgrade to
- It makes weapon balancing a waste of time

Then you have the cat and mouse version
GML:
var damage_done = max(0, damage - defense) + penetration;
It's usually paired with enemies that high defense.
You'll turn your game into a puzzle game with this: "You can do damage to this enemy only with a certain weapon".
I have nothing against "bonus vs " or "damage types vs armor types" mechanics, I like them, but don't make them the requirement to actually perform the minimum.

There are also systems that are hard to predict, these usually involve multiplication or division
GML:
var damage_done = damage / (1 + defense * 0.10);
aka every point of defense reduces damage done by 10%
It's an ok system, but it performs based more on damage than on defense.
There is almost no situtation where high damage becomes low damage. Unless you have like 90% defense, which sounds like endgame to me.
And you will still take chip-damage from low level enemies.

It doesn't scale well with progression...
For example: In Terraria you get gold armor (8 damage reduction) which turns skeletons that did 21 damage into zombies that do 13 (14) damage.
If you have 100 hp, you could take 4 hits before dying without the armor. With it, you can take 7.
It deranks the enemy to a completely lower level. This is how progression is done.
If you had for example an early game armor that reduced damage by 20%, that 21 damage would be still so dangerous at 17. So what did the armor do for you?
You can take 1 more hit with this system.

Then the thing with the lower level enemies.
A zombie (14 damage) does with Terraria's system just 6 damage with the armor.
So dying in 7 hits without, and dying in 16 with the armor.

With the percentage system, the value goes from 14 to 11...
You grinded 3 hours just to be able to take 2 more hit against low level enemies? Congratulations.
-> This is how you kill the investment of your game's mechanics.

This is also the reason Terraria has different defense calculations per difficulty.
(You get defense*0.5 for normal, defense*0.75 for expert and defense*1 for master mode.
It's almost like they knew what they were doing.


Then you have the evil version of the above which introduces defense fall-off
GML:
var damage_done = damage / (1 + defense / (defense + 10));
Add this calculation to your game, and your players will turn into mindless drones that go from gear to gear without reading the stats at all.
There is almost no investment.


Finally you have Minecraft
GML:
var damage_done = damage * (1 - min(20, max(defense / 5, defense - damage / (2 + thoughness / 4))) / 25);
It has 3 variables and is so complex you have to play hundreds of hours to get familiar with how much damage you're going to take.
- High damage values reduce the efficiency of your defense, making wearing armor not protect you against initial one-shots
- Damage is only further reduced by the thoughness value if both defense and damage is already high, but still can't protect you against damage over the 40 range
- magic protection is a 4th variable obtained through protection enchantment. with 16 magic protection (the max), you get a 16/25 damage multiplier, applied after the calculation.

This is also very unintuitive and complex for the sake of complexity.
I think one of the devs was definetly smoking something when they made this.

What I am aiming for:
- the player to get familiar with how much damage he takes from and with what quickly
- the player to make a decision when it comes to which stat is best to upgrade
- the player to figure out which enemy in a bad situation is the lesser evil
- the player to adjust gear based on their playstyle or the other way around

This is why I think, the best calculation is this:
GML:
var damage_done = max(0, damage - defense);
cool right?

Where's the catch?
- No catch, this is what you get, whether the player dies from it, is where the other variables of my system come in

In my system I got not only health but also shield points, which are provided by armor, think of XCOM (long war).

Defense is also provided by armor, but it is commonly paired with a stat distribution theme:
- Turtle armor = high defense, low shield regeneration
- crystal armor = low defense, high shield and regeneration
- When a player is not in combat, shield points regenerate.

The armor vs penetration system:
- a variable called 'armor_efficiency' determines the ratio of the damage absorbed by shield points vs health points
- another variable called 'penetration' is a direct contra to that ratio, shifting it in favor of health damage
- an efficiency of 60% means 60% of the damage reduced by defense is taken as shield damage, and 40% of the damage reduced by armor as health damage
- if the enemy now has a penetration of 15, then this efficiency is brought to 45% shield damage and 55% health damage
- the combined damage is still the same for both, yet high penetration is more dangerous to the player, especially if health does not regenerate

A few sidenotes and rules:
- the 'armor_efficiency' variable is more statically distributed because armor already has 3 variables (defense, shield, regen) where as weapons only have 2 (damage, penetration)
- each armor piece gives 15%, and if a shield item is held, an additional 15% adding up to 60% in total. This number can be increased with things like buffs or certain items
- if 'armor_efficiency' has an effective maximum of 90%, which when exceeded adds those percentages above 90% to defense as a bonus
- if the damage taken goes beyond the shield points, the rest of the non-absorbed damage flows back into health damage

GML:
var damage_netto = max(0, damage - defense);
var ratio = clamp(armor_efficiency - penetration, 0, 0.90);
var shield_damage = damage_netto *      ratio;
var health_damage = damage_netto * (1 - ratio);
lets try:
Code:
- damage: 21
- penetration : 0
- defense: 5
- armor_efficiency: 30% (2 pieces of armor worn)
We get:
Code:
- damage_netto:  16.0
- shield_damage:  4.8
- health_damage: 11.2
lets try:
Code:
- damage: 21
- penetration : 0
- defense: 2
- armor_efficiency: 60% (3 armor pieces and a shield)
We get:
Code:
- damage_netto:  19.0
- shield_damage: 11.4
- health_damage:  7.6
You see, despite worse defense, wearing more armor and having a shield in hand, made the player take less health damage.
Of course their shield has to withstand the blow to get those results.
With all these variables and rules, the player may build a strategy around their gear and playstyle.

Doesn't this punish newbs?
- Not with a failsafe in mind: Damage is always reduced by the defense regardless if the player has shield points.
- The shield points are a sort of extra buffer that prevent the player from being punished for only getting hit every now and then.

Doesn't this make it impossible for skilled players to die?
- with health regen disabled and rare health drops / resources, some time any adventure will end.
- A skilled player knows when they are too greedy, or when they can be greedier

So, what do you think of this system?

And also post what you've got.
Or what other systems do you know of?
 

Yal

🐧 *penguin noises*
GMC Elder
This is why I think, the best calculation is this:
GML:
var damage_done = max(0, damage - defense);
cool right?
damage = atk - def works well when you're dealing with small numbers, but as numbers get larger the systems start coming apart - you can see this in both Fire Emblem Awakening and Breath of the Wild, for instance. Low-level armor becomes useless (+2 defense makes no discernible difference on a 80-damage attack) but if you're not careful with high level armor, players become invincible early on if they can get ahead of the curve. The Souls games use pretty simple armor formulas but balance it out by there never being any forced damage, so player skill is most important and armor is just extra room for error.


Though side note, looking at the shape of a curve may help figuring out what to use. In one of my games the evasion formula is based on the natural exponential function, e, because I wanted attacks to almost always hit unless the target had really high evasion, in which case they'd almost always miss (to make dodgetanking classes reliable*). So it's intentionally having a very unstable equilibrium and spiraling out towards zero and infinity when you leave it. If you want to know what curve to use, maybe you should start by asking yourself what results you want (for specific edge cases like zero armor, max possible armor value, endgame armor vs basic mob, low armor vs endgame enemy, armor perfectly matching the enemy's damage, etc - the last one sounds obvious but you get completely different results by dealing the same damage later on when the player has more health to work with!)

Since complex systems are harder to analyze, I'm not gonna dig into more complex formulas. But you can still simplify things even more!
Code:
damage = atk
Defense values are hard to understand, but you could always have armor just give the player more health, and make all attacks deal set damage which isn't affected by anything. (with armor potentially granting immunities, resistances and weaknesses that makes different damage types less or more effective)

Another possibility is to allow fractional damage (you could either show this to the player or hide it) to get more granularity - even the Zelda games does this, with hearts being divided in 4 segments. If you have 70% resistance and take 2 damage, you take 1 damage now and save 0.4 damage for later; it's added to whatever damage you take next. Even if all those 0.01 damage hits doesn't deal damage now, EVENTUALLY they'll stack up to an entire hitpoint.


* It's balanced out by projectile weapons using the accuracy stat for damage scaling and giving you said stat rather than ATK, so gunners/archers will basically ignore evasion
 
I will say upfront I only player Terraria for like an hour, open world minecrafty games tend to turn me off, so this might be all wrong for your game and audience.

You brought up XCOM ('93, Enemy Unknown, and 2 are all in my top ten) and that made me think of an interview I once read with Jake Solomon, the designer of the newer XCOM games. He talked about the skill system in XCOM and how they made a very deliberate effort to avoid percentages or incremental improvements in soldier skills: This skill doesn't reduce the reaction fire chance to hit by 35 percent, it guarantees that the first reaction shot will miss; this skill doesn't increase the base movement range by 3 tiles, it allows them to move twice as far for free; This skill doesn't improve cover bonuses by 20 percent, is makes all partial cover count as full. This made skill choice into an obvious, big, dramatic decision, with clear gameplay ramifications, rather than imperceptible incremental improvements that the player would need to maintain a spreadsheet in their head to track the differences between.

(They changed this somewhat in the Long War mods which I think was a mistake, but I'll talk about this in a second)

There's something similar going on with armor in the new Zelda games, BOTW and TOTK. For the most part, all armor prevents the same amount of damage (excepting the stealth armor, the whole point of which is to help you avoid combat). What sets the armor apart is the other special skills it grants - Rito armor allows you to withstand extreme cold, climbing armor increases your climb speed, barbarian armor increases the damage you deal, Hylian armor doesn't do anything special but is cheap to upgrade. The player knows exactly what they're getting, at a glance, when they equip different armors, and what armors might be better suited to different situations.

I also thought about this interview when I played Cyberpunk: nearly every skill in the tree is something like "When X condition is reached, improve Y stat by 3 percent for X seconds" or similar. I literally never noticed the effect of any skill on the play of the game (except the one that increases RAM slots) and leveling up felt like a waste of time - I eventually just started randomly selecting skills before I abandoned the game entirely.

These sorts of tiny, incremental improvements are boring and bland, and they make it harder for the player to understand what effect their actions are having on the world. The reason that they persist is because it's easy to give lots of them to the player (so they continue to sorta feel like they're making progress even after spending 100 hours with the same character, as they will in Cyberpunk if the tiny dopamine hit of the numbers going up is enough to overcome their boredom) and because they're easier to balance on a spreadsheet (which is why Long War did it, they had twice as many classes and three times as many skills to balance, but only a fraction of the manpower and expertise).

I think you're definitely on the right track when you talk about making the damage calculations as simple as possible. As @Yal said as I was writing this, why not keep the defense calculations extra simple and differentiate the armors with other bonuses? These don't need to be just combat bonuses - what about armors that increase the player's vision radius, or decrease the resources spent when building? These could get really interesting if the player can't change armor mid-combat - it's dark and there are strong monsters around, do I want the armor that will give me advance warning on their presence and a chance to avoid them, or the armor that will help me deal bonus damage when I blindly stumble into their lair?
 

Simon Gust

Member
Thank you for the feedback.

damage = atk - def works well when you're dealing with small numbers, but as numbers get larger the systems start coming apart - you can see this in both Fire Emblem Awakening and Breath of the Wild, for instance. Low-level armor becomes useless (+2 defense makes no discernible difference on a 80-damage attack) but if you're not careful with high level armor, players become invincible early on if they can get ahead of the curve. The Souls games use pretty simple armor formulas but balance it out by there never being any forced damage, so player skill is most important and armor is just extra room for error.
Yes, I've come to that conclusion also. It's not easy to have progression and keeping numbers low, but it's what I'm focusing on.

Though side note, looking at the shape of a curve may help figuring out what to use. In one of my games the evasion formula is based on the natural exponential function, e, because I wanted attacks to almost always hit unless the target had really high evasion, in which case they'd almost always miss (to make dodgetanking classes reliable*). So it's intentionally having a very unstable equilibrium and spiraling out towards zero and infinity when you leave it. If you want to know what curve to use, maybe you should start by asking yourself what results you want (for specific edge cases like zero armor, max possible armor value, endgame armor vs basic mob, low armor vs endgame enemy, armor perfectly matching the enemy's damage, etc - the last one sounds obvious but you get completely different results by dealing the same damage later on when the player has more health to work with!)
The thing with my game is that I kinda want to keep out (or slowing down) classification as much as possible. Similar to older Terraria versions (where everything was simple), it did not introduce classes till midgame.
And till hardmode is was never required to minmax to a class to just even survive normal enemies.
I must say, I'm not a big fan of classes and it's restrictions (low damage with wrong armor) and loopholes (endgame melee weapons have better range than ranged weapons).

Since complex systems are harder to analyze, I'm not gonna dig into more complex formulas. But you can still simplify things even more!
Code:
damage = atk
Defense values are hard to understand, but you could always have armor just give the player more health, and make all attacks deal set damage which isn't affected by anything. (with armor potentially granting immunities, resistances and weaknesses that makes different damage types less or more effective)
I guess. It's kinda both, shield points can be counted as hitpoints. Like in xcom where armor gives overall hitpoints that come before health, and if health is not touched beyond the armor, the soldier isn't wounded after a mission.
I am still contemplating resistances for damage types, but more as bonuses. Like a crystal armor giving bonus resistance against energy weapons.

Another possibility is to allow fractional damage (you could either show this to the player or hide it) to get more granularity - even the Zelda games does this, with hearts being divided in 4 segments. If you have 70% resistance and take 2 damage, you take 1 damage now and save 0.4 damage for later; it's added to whatever damage you take next. Even if all those 0.01 damage hits doesn't deal damage now, EVENTUALLY they'll stack up to an entire hitpoint.
I believe Minecraft does it as well. I have it just rounded to 0.05 at the moment.

I will say upfront I only player Terraria for like an hour, open world minecrafty games tend to turn me off, so this might be all wrong for your game and audience.

You brought up XCOM ('93, Enemy Unknown, and 2 are all in my top ten) and that made me think of an interview I once read with Jake Solomon, the designer of the newer XCOM games. He talked about the skill system in XCOM and how they made a very deliberate effort to avoid percentages or incremental improvements in soldier skills: This skill doesn't reduce the reaction fire chance to hit by 35 percent, it guarantees that the first reaction shot will miss; this skill doesn't increase the base movement range by 3 tiles, it allows them to move twice as far for free; This skill doesn't improve cover bonuses by 20 percent, is makes all partial cover count as full. This made skill choice into an obvious, big, dramatic decision, with clear gameplay ramifications, rather than imperceptible incremental improvements that the player would need to maintain a spreadsheet in their head to track the differences between.

(They changed this somewhat in the Long War mods which I think was a mistake, but I'll talk about this in a second)
Xcom is great, while I never played any xcom I personally enjoyed watching eu/ew more than 2. And even more when long war came out. To me long war is a nice addition but really only after you've played the base game. It's like installing a modpack for minecraft, it's not the same experience but it's fun nontheless.

There's something similar going on with armor in the new Zelda games, BOTW and TOTK. For the most part, all armor prevents the same amount of damage (excepting the stealth armor, the whole point of which is to help you avoid combat). What sets the armor apart is the other special skills it grants - Rito armor allows you to withstand extreme cold, climbing armor increases your climb speed, barbarian armor increases the damage you deal, Hylian armor doesn't do anything special but is cheap to upgrade. The player knows exactly what they're getting, at a glance, when they equip different armors, and what armors might be better suited to different situations.
That to me is weird but I understand the reasons. Allthough I don't want to punish the player for having the wrong armor in the a place, more like punish if they have sloping armor in a new more difficult environment. The bar of armor armor requirement is usually dictated by how much damage the enemies do. But unbearable temperatures or required stealth to progress works too imo.

I also thought about this interview when I played Cyberpunk: nearly every skill in the tree is something like "When X condition is reached, improve Y stat by 3 percent for X seconds" or similar. I literally never noticed the effect of any skill on the play of the game (except the one that increases RAM slots) and leveling up felt like a waste of time - I eventually just started randomly selecting skills before I abandoned the game entirely.
Yeah, that sounds like they watched a 5 minute video game design tutorial.
These sorts of tiny, incremental improvements are boring and bland, and they make it harder for the player to understand what effect their actions are having on the world. The reason that they persist is because it's easy to give lots of them to the player (so they continue to sorta feel like they're making progress even after spending 100 hours with the same character, as they will in Cyberpunk if the tiny dopamine hit of the numbers going up is enough to overcome their boredom) and because they're easier to balance on a spreadsheet (which is why Long War did it, they had twice as many classes and three times as many skills to balance, but only a fraction of the manpower and expertise).
I think if you play long war on the hardest difficulty and with some second wave options, you change the way you see these upgrades. You have to start focusing on builds and unusual strategies where suddenly the same stats you deemed useless come back while other stats become a trap.

I think you're definitely on the right track when you talk about making the damage calculations as simple as possible. As @Yal said as I was writing this, why not keep the defense calculations extra simple and differentiate the armors with other bonuses? These don't need to be just combat bonuses - what about armors that increase the player's vision radius, or decrease the resources spent when building? These could get really interesting if the player can't change armor mid-combat - it's dark and there are strong monsters around, do I want the armor that will give me advance warning on their presence and a chance to avoid them, or the armor that will help me deal bonus damage when I blindly stumble into their lair?
Yes special things on armor is cool, but add too much special and nothing is.
In my game the races you choose get these abilities: One of them gets permanent enemy vision, another gets overcasting on magic abilties, another gets all projectiles pierce.
Things that could dictate a meta too much if they were on a weapon or armor. You can't change your race, but you can change your gear.
If these abilities were on gear, why choose a race?

A game becomes interesting when your choices matter, whether they are working with, or against you.
 

Yal

🐧 *penguin noises*
GMC Elder
These sorts of tiny, incremental improvements are boring and bland, and they make it harder for the player to understand what effect their actions are having on the world. The reason that they persist is because it's easy to give lots of them to the player (so they continue to sorta feel like they're making progress even after spending 100 hours with the same character, as they will in Cyberpunk if the tiny dopamine hit of the numbers going up is enough to overcome their boredom) and because they're easier to balance on a spreadsheet (which is why Long War did it, they had twice as many classes and three times as many skills to balance, but only a fraction of the manpower and expertise).
Nioh 2 does something similar, but it pulled it off pretty well IMO: your biggest boosts will be from set bonuses (wearing multiple pieces of the same armor set, often including dedicating a couple weapon slots to the matching weapon as well, for up to 8 matching pieces) and all the really good sets will have either a big noticeable boost (like "thrown pebbles deals 100x more damage" turning a joke item used to draw aggro into an actual viable strat) or a boolean ability that adds a completely new layer of combat (like "any spell charge you spend is restored if you deal X damage to enemies before a timer runs out", or "once per bonfire rest, you're revived after you die").

Working towards a set bonus is a long process that kinda never ends (first you gotta collect all the pieces, then you wanna get pieces of the highest possible quality, then you use the upgrade system to replace all their secondary abilities with ones that work with your build, and finally you can upgrade them with random trash gear you're not gonna use) and having those long-term goals to fiddle with between missions adds a nice metaprogression.

It's basically just a skinnerbox, but the core gameplay is so good it's excusable (you never NEED the better gear to progress, but you get a nice sense of advancement when you get that perfect piece you were looking for). And the game even tweaks the odds so you're more likely to find gear of the type you currently have equipped, which facilitates grinding for better versions of the stuff you're currently using - subtle but noticeable if you're like me and fill up your inventory completely before cleaning it up with the many resource sinks (gear can be broken down for upgrades, donated for faction points, sold for money, gifted at a shrine for ammo refill tokens, and rerolled at certain NPCs).




That to me is weird but I understand the reasons. Allthough I don't want to punish the player for having the wrong armor in the a place
A big part of a choice being interesting is "living with the consequences", rewarding some circumstances but punishing others.
For instance, let's say your game is an open world FPS-RPG with realistic MP4s and AK-47s. The player can choose either of them for various reasons (the MP4 has a scope so it works at longer ranges, but the AK-47 has more durability so it basically never jams). Depending on which faction they fight, they might be able to scrounge ammo resupplies from fallen enemies (if the enemy uses the same gun, they drop compatible ammunition) or not. Or the player can opt to bring both weapons, so they have an easier time on-site-acquisition'ing ammo and access to the most suitable rifle for every situation, but at the expense of spending twice as much inventory space / carry weight so they can carry half as many blood diamonds back to their home base.
 

Simon Gust

Member
Nioh 2 does something similar, but it pulled it off pretty well IMO: your biggest boosts will be from set bonuses (wearing multiple pieces of the same armor set, often including dedicating a couple weapon slots to the matching weapon as well, for up to 8 matching pieces) and all the really good sets will have either a big noticeable boost (like "thrown pebbles deals 100x more damage" turning a joke item used to draw aggro into an actual viable strat) or a boolean ability that adds a completely new layer of combat (like "any spell charge you spend is restored if you deal X damage to enemies before a timer runs out", or "once per bonfire rest, you're revived after you die").

Working towards a set bonus is a long process that kinda never ends (first you gotta collect all the pieces, then you wanna get pieces of the highest possible quality, then you use the upgrade system to replace all their secondary abilities with ones that work with your build, and finally you can upgrade them with random trash gear you're not gonna use) and having those long-term goals to fiddle with between missions adds a nice metaprogression.

It's basically just a skinnerbox, but the core gameplay is so good it's excusable (you never NEED the better gear to progress, but you get a nice sense of advancement when you get that perfect piece you were looking for). And the game even tweaks the odds so you're more likely to find gear of the type you currently have equipped, which facilitates grinding for better versions of the stuff you're currently using - subtle but noticeable if you're like me and fill up your inventory completely before cleaning it up with the many resource sinks (gear can be broken down for upgrades, donated for faction points, sold for money, gifted at a shrine for ammo refill tokens, and rerolled at certain NPCs).
I haven't played Nioh, it sounds interesting.
Terraria has set bonuses too, they are simple at the start (like +3 defense for any armor) and later define the class you're using (like +15% melee damage for the melee based armor). It's a neat mechanic, but sometimes I find it restricting. Lategame armor set bonuses are also boolean, like the ability to take a free hit every now and then or retaliation on taking damage.

When working with small numbers (which I am), percentage based upgrades are not very good. 10% damage bonus to a 13 damage attack is only 1 more damage. So I am trying to keep as many bonuses as possible to direction base stat upgardes. But I also don't want players to have to rely on those bonuses.

What if I seperate pieces of the same armor as much as possible so that no armor can be found or crafted in one go?
Would that make it more interesting or just an annoying grind?
Because I'm not quite sold of increasing the drop rates of similar items in an open world game where you go back to the place multiple times anyways.

The plan was to not have areas feel like something where you go there, get all the items and beat a boss to get the best items and then never returning.
There needs to be continued investment without 90% of the gameplay becoming traveling from A to B.

I have some ideas...

A big part of a choice being interesting is "living with the consequences", rewarding some circumstances but punishing others.
For instance, let's say your game is an open world FPS-RPG with realistic MP4s and AK-47s. The player can choose either of them for various reasons (the MP4 has a scope so it works at longer ranges, but the AK-47 has more durability so it basically never jams). Depending on which faction they fight, they might be able to scrounge ammo resupplies from fallen enemies (if the enemy uses the same gun, they drop compatible ammunition) or not. Or the player can opt to bring both weapons, so they have an easier time on-site-acquisition'ing ammo and access to the most suitable rifle for every situation, but at the expense of spending twice as much inventory space / carry weight so they can carry half as many blood diamonds back to their home base.
I agree.
I imagined an example in my case would be trying to defend yourself against swarming enemies using a sniper rifle vs a shotgun.
Even though I consider both weapons equally good if you disregard the situation.
 

Yal

🐧 *penguin noises*
GMC Elder
The plan was to not have areas feel like something where you go there, get all the items and beat a boss to get the best items and then never returning.
There needs to be continued investment without 90% of the gameplay becoming traveling from A to B.
Just from personal experiences, I think an easy way to make the player return is to have expendable resources that can only be farmed in each area, making them easy to find so the player actually bothers using whatever they need the resources for (as opposed to feeling they're so inconvenient they're never gonna bother with them) while also not having to set aside too much time to resupply (you want the player to go take random trips whenever they run low and not grind up a massive amount and then have enough for the rest of their playthrough).

Ideally you could limit the amount the player can get at any given time by having the resource renew over time (e.g. plants regrow after X minutes) and having inventory space limitations (I personally feel like the biggest obstacle I face at any given time in Terraria is inventory space, and organizing tons of chests is boring so I mostly just dump everything I don't immediately need haphazardly in chests I found and brought to my base).

Players will always prioritize optimal play over having fun, so you will want to encourage a playstyle which aligns with your desired experience (in this case, taking occasional trips to each area should give big rewards but they should quickly peter out if the player tries farming that one area extensively). Maybe you could tie this to other systems like making enemy spawn rates go down if you kill a lot of enemies in one area (because you're ecological disaster'ing the area by murdering everything) - this also has the bonus that players that wanna stick around and build (or roleplay in their base) gets an easier time. You could also have items exclusive to day and night, or other parameters that change over time (e.g. weather, season) so the player has a reason to revisit areas.
 

Simon Gust

Member
Just from personal experiences, I think an easy way to make the player return is to have expendable resources that can only be farmed in each area, making them easy to find so the player actually bothers using whatever they need the resources for (as opposed to feeling they're so inconvenient they're never gonna bother with them) while also not having to set aside too much time to resupply (you want the player to go take random trips whenever they run low and not grind up a massive amount and then have enough for the rest of their playthrough).
from my experience convenience goes both ways.
- too convenient: do it later
- inconvenient: do it later or won't do it at all

by too convenient I mean the difficulty of getting the resource and the lack of immedeate purpose for the resource.
For example potions brewing, have you ever spent time brewing potions? Or growing plants in a farm?
You don't need to do that because your inventory fills up with potions really quick just from smashing pots and finding chests.

The worst offender being recall potions:
- they drop constantly
- they have a tiny cast time
- they make searching a magic mirror a waste of time, and every mirror you get is pointless other than selling it.
- especially in multiplayer, where one player can just give one potion to the other players

I think if the players want these potions, then they should go out of their way to make them.
Not as much out of the way as in Minecraft, but a scaled 'out of the way'.

Ideally you could limit the amount the player can get at any given time by having the resource renew over time (e.g. plants regrow after X minutes) and having inventory space limitations (I personally feel like the biggest obstacle I face at any given time in Terraria is inventory space, and organizing tons of chests is boring so I mostly just dump everything I don't immediately need haphazardly in chests I found and brought to my base).
makes sense, for plants at least.

Players will always prioritize optimal play over having fun, so you will want to encourage a playstyle which aligns with your desired experience (in this case, taking occasional trips to each area should give big rewards but they should quickly peter out if the player tries farming that one area extensively). Maybe you could tie this to other systems like making enemy spawn rates go down if you kill a lot of enemies in one area (because you're ecological disaster'ing the area by murdering everything) - this also has the bonus that players that wanna stick around and build (or roleplay in their base) gets an easier time. You could also have items exclusive to day and night, or other parameters that change over time (e.g. weather, season) so the player has a reason to revisit areas.
Sounds like a good idea.
 

Yal

🐧 *penguin noises*
GMC Elder
by too convenient I mean the difficulty of getting the resource and the lack of immedeate purpose for the resource.
For example potions brewing, have you ever spent time brewing potions? Or growing plants in a farm?
You don't need to do that because your inventory fills up with potions really quick just from smashing pots and finding chests.
If you have a system that requires some actual effort (like alchemy) it makes sense it should provide better rewards than a system that doesn't require effort (exploring and picking up loot). I've seen a lot of games fail by having a system that's useful only after you dedicate to it, which means players will see it, notice it's currently useless, and then never touch it again. For instance you could make the base alchemy station immediately let you make a health potion that's better than the ones you find in the wild, using relatively common ingredients, and every player will start dedicating some time into alchemy.

(Also consider the way Resident Evil 7 and 8 handles crafting, where some materials can be used for multiple purposes - i.e., the player needs to choose between EITHER more healing items OR more bullets if they only have 1 unit of chemicals, but conversely if they store up a bunch of gunpowder and metal scrap they can make ammo for any of their weapons depending on what they need at the moment. Maybe a similar approach could help with the feeling you're going for, with some universally useful stuff always being in short supply if the player wants to stock up on EVERYTHING, thus they need to choose wisely?)
 
Top