[003] Leveling Curves


Follow updates on my Substack: https://melodicambient.substack.com/

Hey everyone! Melos here. Does leveling up ever feel wrong in a game? Too slow, too fast, not meaningful enough..? Since Analgesic Game 5 is an Action RPG, there's an element of leveling in it. Of course, leveling is just a 'system', it's not inherently good or bad. In the worst cases, an Action RPG use levels to hide that its action system has little going on. Make the numbers go up, and slapping slimes can continue to feel good, even if combat lacks richness. But if such a system were in the context of a particular game where action is more of an ornamentation, maybe it would actually be okay!

There's a few benefits to having level ups in ARPGs. A common reason is to reinforce a sense of growing power, or more concretely, numbers going up is fun in a reptile-brain way. A more interesting reason to me is that it is one way to convey narrative progress in a story-driven game. That number can feel like a page number in a book. Well, it's not compelling enough to make me play any game, but it's definitely one of those essences that holds other things together.


And yet another would be that it's a way to self-set one's difficulty in a diegetic manner (via grinding levels). Well, none of these concepts are particularly novel, but, to me, it's more about picking the right combination and approach to each - why did a game pick a particular approach, and did it work?

An interesting - though debatable (to me) - example of the 'grinding as difficulty adjustment' is Ys: The Oath In Felghana (It's coming out on Switch this year: if you like action games... please play it!). Often, each boss has a very tangible recommended level. If you're a level or two too low, you will die noticeably quicker, and the battle will take even longer to win, due to your reduced ATK and DEF. Enemies in the stage will also give you noticeably more EXP. What's interesting is that once leveling starts to feel slow - you're usually at the recommended level. (Number magic.)

At this point, you can probably beat the boss - or, you can grind one or two (fairly slow) levels which will give you a noticeable advantage against the boss. What I'm describing might sound normal - higher levels = easier fights! But the way the numbers are balanced feel very accentuated in a uniquely noticeable way. I feel like they might be a little too accentuated - I would feel like I might as well grind a bit to even have a decent shot at the boss - but it works nonetheless.

So what did we do?

Well, before you can make a decision about levels, what gaining them does, and how much EXP you should get to level up (and how you should get that EXP!), you need to have a sense for the overall arc of the game, and what a level feels like. For an action RPG, I don't think you can feasibly decide anything without a holistic sense of what the drama of a level is like, how those intersect with story beats, etc. And to do that you of course you need a draft of the story, as well as an action system.

...Luckily, that's mostly decided for us! We've figured that the important aspects of that last year. (Yet another possible devlog topic!)

Well, in our case, the world of the game can be roughly divided into 5 regions. That's not to say that "Region 1 = boring and easy" and "Region 5 = spicy and hard!" - in fact, I want the game to be difficult from the get-go (prepare to suffer at the tutorial boss! ...if you're playing on a harder difficulty) - but in terms of pure numbers, the later regions will be 'fake harder' in the sense enemies will have higher stats, making them harder to fight, simply because you can make fewer mistakes over longer encounters. I think it's important to know when 'fake difficulty' is useful - taking influence from MMOs like Runescape or Maple Story - fake difficulty can be useful for structuring the way you engage with the world, when there's some choice on where to go next. Higher-level areas feel scarier and have a sense of mystery to them.

In our game we're not planning to have all the regions be one after another like a stage-based mario game, but sometimes there will be a harder area within a region that's generally easier, or maybe enemies from harder regions are like minibosses in easier regions. Etc.

So, I know that I want to design a level curve that spans over 5 regions. Then I picked a max level - 25. Why 25? This is a guess, but perhaps fewer levels encourages a bit less grinding, and more focus on 'trying new strategies.' In Ys Oath, enemies in a new level often kill you fast, and the easiest solution is to grind more levels, since it's pretty fast, and the way stats work, you usually end up hitting a point where enemies can be killed super quickly, and the levels feel flatter since enemy moves cease to matter. But I feel like it would be more satisfying if enemies remained interesting for longer (or for the whole game!). More RPG-y ARPGs (like... Dark Souls) traditionally do a better job at this because a lot of leveling is about reaching new gear milestones, with a big focus on build variety, rather than always purely an increase in power.

Our game isn't full of equipment choices and massive build variety (though, we are planning for you to accessorize in a Paper Mario badgesystem-esque way). 25 means you'll gain about 5 levels per region. Why 5? Well, it's a nice number, but also, it fits well with a rough number of levels we have planned per region, and how many level ups you should be getting in a stage. Not too few, not too many. It's something that can happen during a level to help you, but it won't overly define the feeling of play. With that in mind I picked start-of-game and endgame base stats, and allocated points you gain for each level.

I'm not sure if this is what we'll go with in the end, but the thinking is that by keeping numbers overall small, it makes accessories more significant, and not obsolete each other at endgame. A "+1 Attack" badge will still be only a small gain, but it's more noticeable when the max attack range is 20-30, vs. 200-300. You might still want to use it at the end of the game. If you start with 100 HP and max out around 200-300, then even enemies at the start of the game do non-insignificant amounts of damage.

I haven't finalized the damage formula, but my philosophy is

- "If an enemy tends to be from a harder region, make it significantly tougher to win if you're underleveled.'

- If it's from an easier region, make it only a little bit easier to win.

I'd like to make it not a cakewalk to jump into a harder region and overlevel yourself, but not impossible. At the same time, I don't like the idea that you should be one-shotting everything once you're above its level. This requires some number fuckery (like, maybe you always do 50% damage to enemies of a harder region), but if that's what it takes...

Here's what the stats-setting function looks like:



Notice that at level 6 you gain more stats - 10 HP, 1 atk, 1 def, 2 badge points. The idea there is that there are significant EXP requirement jumps every 5 levels, so you should feel like "maybe I'll just restrategize and keep trying to defeat the boss" if you're stuck at level 5/10/15/etc. But if you do decide to grind the next level, then it's extra rewarding - in particular, you get more badge points than usual, so hopefully that opens up some playstyle option that should make things easier for you. The base stats shouldn't make or break your chance of success (but it's okay if the badge system does.)

EXP Curve

What does the EXP Curve look like, then?



You can see that the exp requirements become exponentially bigger every 5 levels. Put in log scale terms:


Within a range of 5 levels, leveling up gets slower, but not too slower. The significant jump between ranges makes it impractical to keep grinding out levels. You can go and try to find harder 'EXP grade' enemies to try to equip more badges or have higher base stats, but at the end of the day, the damage formula will prevent you from eking out too ridiculous an advantage. Ideally the numbers are balanced so that 'going into a harder region', or 'grinding past the recommended level range' is a strategy, but not the strategy in fighting the bosses or through the stages.

The formula for the EXP table is below, as well as the exact values.



Calculating it with a formula is nice because it makes balancing enemy EXP values a little easier.

Enemy EXP

I actually haven't tested this code yet, but here's the general idea: every enemy type has a name - "Bat" and a "Experience Grade" - roughly corresponding to which region it's most likely to be in, 1 through 5. Enemies also have a "Experience Size', referring to how hard it is to kill. 1-hit bats are size '0', bosses are size '4', medium sized enemies like charging goats are size 2, etc.

The base experience is first set based on looking up the first level of a 5-level range in the experience point table, then dividing it by 'enemiesDivider' - this roughly means that 'you'll need to kill a size 1, grade 3 enemy about 50-100 times, while you're in the Grade 3 level range (10-14), to level up' . Of course, that number of enemies goes up or down depending on its size. I don't know what the ideal number - or multipliers - will be yet, but later on I can just change 'enemiesDivider' to another number - lower if I want leveling to go faster, higher if I want it slower.



Well, that's all for now, and it's mostly untested, so perhaps there are balance issues - but that's the thinking we have so far!

Comments

Log in with itch.io to leave a comment.

One of the greatest ways to do levelups was in the recent Triangle Strategy. Levelups barely raise your HP and are really just there to unlock new selected skills with more resources. The whole system was very tight, you can't just grind and outlevel content like say arenas in older FE games but were just part of the natrual unit balance.

I am confident you can execute whatever system you set out to do very well.

That's interesting to hear! Yeah I like the idea of level ups leading to slightly more build complexity, rather than anything else.

(+1)

love this kind of deep dive!

(+1)

not a game dev so there is some stuff i don't understand but it's fun to read regardless !!