In this post I will elaborate on our thoughts as we first started developing the system, what we changed, the mistakes we made and the final result!
Let’s get to it!
First revision: Linear!
For MEGATROID, we knew we were going to juggle a lot of numbers. Between economy, levelling system and weapons we were sitting on an Excel document of epic proportions. Some of these numbers were pretty straight forward, others not so much. The main issue was the weapon scaling system, the core design concept was to ensure that players could buy new weapons regularly and feel like every new weapon was an upgrade. To ensure that the game stayed challenging the enemies had to scale their hit points to compensate. This is pretty much standard for any game that has character levels, one prime example being Blizzard‘s World of Warcraft.
First, we looked at a linear scaling: simply just increase both weapon damage and enemy hit points with a set value for each player level gained. We quickly realized that this was less than ideal. It produces reliable values and it makes sense, however it also produces really poor results when scaled more than a tiny amount. The main issue is that the relative difference between weapons of different levels becomes smaller and smaller. Say a level 1 weapon deals 10 damage and we increase the damage by 1 per level. Early on, the damage increase feels meaningful (10% increase to level 2), but when you start hitting level 80 the difference between each level is miniscule (only a little over 1% to level 81). Hence, from the players point of view, a weapon upgrade on lower levels feels meaningful but quickly tapers off.
The next logical step was to make the increase per level exponential, the higher the level, the higher the increase per level. For instance, a 10% increase per level will ensure that every new weapon is significantly better than the last. However, this method has problems of its own. Even if you start with relatively humble numbers, over 100 levels it peaks at millions of damage!
Second revision: Armor Penetration!
So what we did was throw the entire system out the window and try to come up with something new to fit our game. We thought up a system based on tiers of 10 levels and a new stat for the weapons, armor penetration (AP). A weapon of the same or higher AP than the current tier deals full damage whereas a weapon with less AP than the current tier deals reduced damage. We also increased the damage of weapons for each level, the damage was then reset to the base value on each new tier. This would ensure a near infinite scaling because for each level the weapons were more powerful than the previous, on a relative basis, meaning that each upgrade is equally meaningful.The system was perfect!
Or so we thought.
We realized that while it scaled well it also introduced new problems, specifically for the purpose of comprehension and player satisfaction. The system is not at all intuitive, it was complex enough to try to explain to the rest of the team and it would be even more difficult to get a user to grasp it, using only text (especially since not everyone is perfectly fluent in english). Neither does the system feel all that rewarding to the player. Within a tier each weapon upgrade makes sense, it has a higher damage stat. Then you hit a new tier and suddenly the new weapons have less damage. Yes, it does have a higher AP (and thus will in fact deal more effective damage), but it just doesn’t give the same feeling of getting stronger that a higher damage stat does.
Third revision: Modified exponential growth!
In the end, due to a redesign of the game progression and content reveal, we settled for a modified exponential growth scaling. We based the weapon damage on its relative level compared to the current player level. Thus, a weapon gets progressively weaker (or stronger) the larger the difference gets. The difference is also linear (that is, each upgrade is just as meaningful as the last one) without having to worry about numbers going into the billions. However, this system does not lend itself well to player presentation, on paper every weapon is as powerful as the next one. We didn’t feel the need to display all of the weapon stats to the player, since we have a screen in the store that shows how fast the weapon actually fires. Hence we essentially reduced weapon stats to one; Power. This we could approximate with some simple math and by starting lower than the actual numbers used in the game we would not hit astronomical numbers any time soon.
What did we learn?
Yes, what did we learn from this little experiment?
First, we learned that systems that look good at first glance may well introduce problems later down the line.
Second, we learned that some systems are very solid and work fine, but being counter intuitive and overly complex makes them less valuable to the player.
Third, there may not be a perfect system for scaling (but if you know of one, we’d love to know!) but by exploring the strengths and weaknessess of different systems you get a better understanding of what system fits your game best!
…where’d I put my calculator?