Magic man plays plinko into the evil spiderverse.
I've seen a lot of people saying that the mana regeneration is too slow and that mana potions too infrequent. But rather than repeat that, I want to use it as a chance to explore why people might feel that way. Using math. It might get a bit rambly but I think I have something interesting to say about it.
Disclaimer: I say math but there's not actually going to be that many numbers I promise. This isn't going to every resource called mana or even all resources. There are games that break what I'm about to say. I'm mostly just saying to have a think about the numbers you put in your game.
Anyway.
The first component is how much of the resource (mana) you have. M
Next is the amount regenerated on its own in a minute. R
Then you have how much mana you're expected to use for weapons in a minute. C
The cost is defined as how many [S]hots to kill an enemy * [m]ana per shot * how many [e]nemies could a player reach in a minute
So, together we have
if M / (-sum(all_costs) + R < 0:
If you're here, you're running out of mana faster than you think you should be. Your character's been running on fumes for what seems like minutes but the game keeps throwing enemies at you. But you keep pushing forward because the alternative is to just sit here? It's tense at first, but at extremes boredom can overcome caution.
else:
Otherwise you're here. The promised land. The game begs you to shoot lasers everywhere. And you can deliver. Your mana does run out after a while, but it comes back pretty quick so it's usually available whenever you see anything to use it on. It's great at first, but at extremes why even have the resource? It's basically meaningless.
M / (-sum(all_costs) + R = ?
The number that we're looking at is the time it takes to run out of the resource. If it's positive, it's almost always available for use. If it's negative, your player's going to run out sooner or later and that can cause friction between the game and the player. The player wants to go, but the game says "no."
We can use this number to guide the level design. If you want to have 12 minute cycles where there's a tense battle at the end where you have to use everything you have to succeed, I'd try to get that number close to 12. Higher if you want the game to be easier, lower for more difficulty.
If you're expected to run out of mana every 5 minutes and have to regenerate over 2 minutes and then you make a 15 minute section of your game, the player's going to run out of mana at least 3 times. That's six minutes of just waiting for the game to say "go ahead." I say at least because we're using perfect numbers. If there's accuracy involved, expect your costs to be higher.
But what if we take that 15 minute section and cut it into three 5 minute sections. Then add some kind of interlude between them where the resource recharges. I would argue that would create a more streamlined-feeling 15 minutes of gameplay. The player isn't left feeling like they have nothing to do but wait.
And the interludes don't actually need to be checkpoints, though they can be. You could have upgrades that recharge mana when acquired, a cutscene before a boss battle, or potions that recover the resource. But they need to provide enough of the resource to get the player to the next recharge or again, friction.
To add any of those to the equation, just use basically the same aspects as cost. resource gain * uses per minute * found per minute
So in the end we have
max_resource / (-sum(all_costs) + sum(all_gains)) = MinutesUntilEmpty
Not exactly complicated math, but I think it's neat to have a think about. I don't feel like anyone should do the maths on every single interaction with this method. You'd drive yourself mad. There's a lot of guesswork involved and it's heavily dependent on playstyle. It's probably better as something to keep in mind when designing games.
Anyway, just explaining a thought I had. I hope someone finds it useful.
And sorry about the wall of text.
TL;DR: If you use more mana than you gain, you run out.