Article

Level Scaling in Relic Hunters Legend

by mark on 12|09


Hey Hunters,

How are you all doing? This week I wanted to talk with you about a very sensitive subject in the RPG genre: level scaling.

Keeping Players Together

First of all, a bit of context: here at Rogue Snail we have a few core design principles that we use when making decisions on Relic Hunters Legend – we call those our “pillars”. One of these design pillars is “Keep players together“. We know we are a small indie game, and that online games live and die by how easy it is to find people to play with at any given time. We have already taken this very seriously in our multiplayer code architecture, to make sure players from very distant regions can easily play together (perhaps I can talk about that in a future post?).

Online RPGs all share a serious challenge: how can friends and strangers play together and have a good time even if they are at very different points of their characters’ progression? A single overpowered character can trivialize the challenge (and fun!) of an entire group of lower-level players.

We have mitigated this issue a bit already by virtue of Legend’s “horizontal” progression – your characters do get stronger, but players are encouraged to level up several different Hunters and try out different loadouts, so you can always get a lower-level Hunter from your party to play with a low-level friend.

There is matchmaking in Legend, though – mainly through the use of Distress Beacons and the “Help Others” feature. If you missed it, we talked a bit about those in this Kickstarter update. So we knew we needed some sort of intelligent power scaling/balancing to make sure you can easily find people to play with and have a good time, regardless of power level.

Still, we have to make sure that players can feel powerful (overpowered, even) as a reward for their effort in progression and for building their characters right. The balance between these two experiences (feeling overpowered vs. not ruining multiplayer matches) is very delicate, but we think we have a solid system to handle it!

Combat Rating

Before explaining how level scaling works, I have to explain the concept of Combat Rating, as it is the main source of damage scaling in Relic Hunters Legend.

Combat Rating measures how powerful a character’s attack (“Attack Rating“) is compared to another character’s defense (“Defense Rating“), and it uses this relationship to scale the base damage of the attack accordingly. Characters have two types of Attack Rating and two types of Defense Rating.

Physical Attack Rate: Determines how much Physical damage the character is capable of inflicting. Applies to all Physical damage (Impact, Frag and Magnetic).

Elemental Attack Rate: Determines how much Elemental damage the character is capable of inflicting. Applies to all Elemental damage (Fire, Water and Nature).

Physical Defense Rate: Determines how much Physical damage the character can mitigate. Applies to all Physical Damage (Impact, Frag and Magnetic).

Elemental Defense Rate: Determines how much Elemental damage the character can mitigate. Applies to all Elemental damage (Fire, Water and Nature).

Damage Multiplier Calculations

The Combat Rating damage multiplier is calculated by comparing the Attack Rating and Defense Rating of the appropriate damage type (either Physical or Elemental).

The resulting damage depends on the difference between the Ratings, and whether the attacker has a Normalized Power Level (A) or an Uncapped Power Level (B).

 

Damage Multiplier Calculation

[WARNING: EXTREME NERDINESS IN THE NEXT SECTION]
The actual damage multiplier is calculated by a linear interpolation between the Base Damage Multiplier and the Rate Diff, where the number of steps is equal to the absolute difference between the Base Rate Diff and the maximum/minimum Rate Diff possible.

Examples
1) If a Player with Normalized Power Level and 50 physical attack hits an NPC with 12 physical defense, the difference is 38 in favor of the player. The player cap is determined by the “A” thresholds, however, which means the maximum Rate Diff is 20. The attack has a x1.5 damage multiplier.

2) Let’s look at the same situation without the Normalized Power: a Player with Uncapped Power Level and 50 physical attack hits an enemy with 12 physical defense. Now he uses the “B” thresholds, which allow differences of up to 50. In this case, the Rate Diff is still 38. The attack has a x6.6 damage multiplier (ouch!).

3) For a more balanced example, if a player with 32 attack hits an enemy with 25 defense, the Rate Diff is 7, which results in an attack with a x1.175 damage multiplier.

[EXTREME NERDINESS IS OVER]

Ok, So Now In Plain English

In not-so-nerdy terms: players who have a “Normalized Power Level” can only deal up to 50% extra damage to enemies, no matter how much stronger the player is. They also cannot take less than 20% of the enemies’ original damage, no matter how powerful the player’s defense is.

What this means in practice is that overpowered players who join a game with a Normalized Power Level will still be powerful, essentially playing on “Easy” mode, but are still not able to stop in front of enemies and go grab a sandwich. They also won’t be able to defeat bosses with a single hit.

With an Uncapped Power Level, players can become god-like, receiving literally zero damage from lower level enemies and destroying them with attacks up to 10 times more powerful than intended.

You power level being Normalized or Uncapped will depend on the type of activity that you are in. When starting the activity, you will be clearly informed if your power level is being Normalized or not. Here are a few examples:

 

Examples of “Uncapped Power Level” Activities:

– Playing any Mission that you start yourself;

– Adventures that you start yourself;

– Treasure Maps that you start yourself;

– Item World dungeons that you start yourself;

– Pretty much any Solo experience;

 

Examples of “Normalized Power Level” Activities:

– All regular Dungeons;

– All Emergencies;

– All levels of the Asteroid Dungeon Nemesis;

– All event or end-game-related activities;

– Joining any random activity with the “Help Others” feature;

– Joining a friend’s Adventure, Treasure Map or Item World;

Conclusion

What do Combat Rating and the Normalized/Uncapped Power Levels bring to the table?

First of all, they “fix” the problem of allowing players with drastically different power levels to play with each other in a reasonable way, while at the same time allowing you to feel powerful and see how far you’ve come with you character – but only in situations that don’t allow those super powers to disrupt the experience of the other players!

Combat Rating also have two quirks that I personally really like.

The first one is that damage numbers are consistent across the board. A pistol with 12 damage listed on its description should always do 12 damage against a target with comparable Defense Rate. If you are dealing more than 12, it means that your power level is above average. On the flipside, if you are dealing less than 12 damage, the enemy’s power level overpower yours. We lose those cool and crazy damage numbers (I admit those can be very fun to watch), but we gain a lot of clarity. You don’t have to guess if 10,000 damage is above or below what your character should be doing at some point in the progression.

The second one is that having two values on the damage scaling means that you have diminishing returns on power difference. Up to the “150% damage dealt and 20% damage taken” soft cap, it progresses linearly. After that, the benefit from having a higher Rating is smaller. This allows for more sensible enemy scaling while at the same time encouraging players to diversify their gear and builds instead of putting everything in damage, for example.

What do you think of our systems? Do you have any different ideas about how to scale players’ powers relative to one another? We’d love to hear your feedback.

We are always willing to talk at our Discord server: https://discord.gg/gCxkkPM

Cheers,

~Mark

 

Comments


Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /home/rogue361/public_html/wordpress/wp-includes/functions.php on line 3510