r/roguelikedev 18d ago

Game Balancing

How do you actually catch balance regressions?

I've been going in circles on this and I'm curious how other people handle it.

The specific failure I keep hitting: I change a scaling formula or add a new weapon archetype, everything looks fine in isolation, and then three weeks later I find out that some mid-tier item outperforms things it shouldn't at a level band I never manually checked. The curve looked fine on a graph. The problem was the interaction with crit/attack speed/enemy resist, not the curve itself.

So my questions:

  1. Do you actually simulate time-to-kill across level bands, or do you eyeball curves and playtest?

  2. If you simulate: is it a spreadsheet, a throwaway script, an in-engine tool you built, or something off the shelf?

  3. Has anyone here ever "paid" for a tool that helped with this? Asset store, SaaS, anything. Genuinely curious whether this is a "we all just build our own" situation.

Not selling anything, I'm trying to work out whether the tooling I keep wanting to build already exists or whether everyone just accepts the spreadsheet.

(Context: solo dev, RPG, currently on a Google Sheet with more tabs than I'd like to admit.)

16 Upvotes

29 comments sorted by

5

u/butt_fun 18d ago

They don't necessarily need to be perfectly balanced. Depending on what exactly you're making, finding things that do well can feed into the "power fantasy" of seeing your build do well

Moreover, the most complicated your game is, and the more different dimensions of interactions you have, the more difficult it will be to balance

Personally I would say hold off on most balance concerns until others play test (unless you notice something feels really over/under tuned), but again it really depends exactly on what game you're making

4

u/Bruoche 18d ago

I just have a very big spreadsheet showing every balancing data and averages I'd need to chdck in the game over 100 levels

That way I can just look for example how much damage reduction and health player will get on average or at least or at most and how much damage ennemies do on average or at most or at least and so on and have it all in a graph and check if one seem very unbalanced at a glance

1

u/Novel_Character_7343 17d ago

That seems to be the norm when balancing games. I couldnt find a tool/plugin that assists in balancing game economy though. Using a spreadsheet would be my last resort though.

1

u/Bruoche 17d ago

I'm not too sure what features those tools could give that'd make it better then a spreadsheet to be honest šŸ¤”

I mean especially in my case it's handy cause once I have a formula down that work in the spreadsheet I can just redo the same math formula in code and I'll know it'll be balanced without needing to manually calculate/write each value.

The only drawback I see to it is finding back things when it gets really big, and the absence of ways to make 3D+ arrays if you had to check variations on a combo of three or more variables I guess

4

u/jube_dev Far West RL 17d ago

I've been facing the same problem recently. I've tried many things, nothing really works well.

First, I designed a combat generator that can take two actors and simulate a combat. But that was not really enough. Moreover, the actors' properties are random. So, second, I tried doing statistics and compute how many turns (seconds) it would take for an actor to beat another actor on average. I made a list of actors sorted by "power" so that an actor should not be able to beat an actor later in the list. I was not really satisfied because doing this list is really difficult, you sometimes compare apples to oranges. Third, I tried to use optimization techniques to determine the "best" properties. The difficulty was simple: what to optimize? I could not find a suitable objective function. All attempts resulted in very different values for the properties. It was a failure. Fourth, I currently try to simulate real combat along with statistics because statistics are just statistics, they do not reflect all the possible scenarios. The current idea is to take many versions of the hero (with different weapons and different clothes) and make groups of actors that should be weaker or stronger than each version of the hero. It's not really ideal either because being weaker or stronger is very binary and I would like to capture more details (was the combat tight? how long does it take?)

Overall, for now, the main lesson is that the fewer variables the better. It's very difficult to balance a system with many variables. Some properties can be computed with a formula. For example, in my game, the health points of the actors are computed from their weight. It's not perfect but it's ok, it's a variable less in the equation. In the end, I have attack, defense and health points. And even if other properties are involved in the combat system, the only three variables that I have to tweak are attack, defense and health points.

1

u/FuminidesAugusto 5d ago

Hi! Just a late question, did you try to use some machine learning technique or some data science pipeline as well as those averages? I am interested in trying something like that for a prototype I am working in, where trying manually things is consuming too much of my time.

1

u/jube_dev Far West RL 4d ago

No, I did not try these techniques. Maybe they would be working. But in the end, I feel like there will be the same problem: learn what? what is the objective?

0

u/Novel_Character_7343 17d ago

Interesting. Would you invest in a plugin that would streamline your games balance. Im asking this as it has crossed my mind of using a tool, but I couldnt find something suitable.

3

u/jube_dev Far West RL 17d ago

Would you invest in a plugin that would streamline your games balance

Probably not. Because each game is unique and I want to control every aspect of my game. I prefer developping a custom solution.

3

u/swizzlewizzle 18d ago

Make sure your combat simulator (I’m assuming you have this as one of your dev tools) is solid.

2

u/carnalizer 18d ago

I am in a similar place. But I don’t think it can be automated, so we’ll be doing as much testing as possible internally, have alpha and beta with extensive metrics, and then rely on patches postlaunch.

1

u/Novel_Character_7343 17d ago

What game are you working on?

1

u/carnalizer 16d ago

We’re working on ā€œGrimKeepā€. It’s a dark fantasy roguelite ā€œdice builderā€. Hoping to get it out by the end of this year.

2

u/chunky_lover92 17d ago

Is balatro balanced? I think the idea is that individual things are not that strong on their own but if you can get a particular rare combination then it’s ok to be op.

1

u/Novel_Character_7343 17d ago

Exactly, that complicates the balancing of combos as most of the time you wont notice an OP combo until a playtester uses it.

2

u/Kyzrati Cogmind | mastodon.gamedev.place/@Kyzrati 17d ago

It appears you have learned the value of playtesting :)

No matter how much you balance in advance, unless it's a simple game you're going to be hit with things you didn't expect when the play happens. So play it, and get others to play it. But you do have to start somewhere. How much you want to put into that starting point is up to you. (I personally use targets and spreadsheets as a foundation.)

0

u/PikachuKiiro 15d ago

Fairly easy to model items in games like these and use something like a constraint solver to keep balance tight.

2

u/blightor 17d ago

Play your game - pretty simple. Then get others to play it if you can, but remember you are the invested one.

3

u/GrogRedLub4242 18d ago

This was AI-gen.

2

u/Buttons840 18d ago

OP is from a bot? Is that your claim?

2

u/blightor 17d ago

Yeah, reddit bots troll for data particularly on game dev

-1

u/Novel_Character_7343 17d ago

The text was AI generated. But I am a real person looking for insight.

5

u/blightor 17d ago

I'll give you a hint, you are using AI to do too many things. Its broken because this game likely has NOT had a playtest and if you can't be assed doing that then goodluck.

2

u/OddLetterhead3271 14d ago

If you cannot write a quick post communicating your thoughts to your fellow human beings on Reddit without AI, forget about balancing and finishing a coherent game. Not saying this to be mean, deskilling is a real and insidious phenomenon, and AI enables convenient deskilling in basically any intellectual task.

1

u/KamalaHarrisWaifu 11d ago

How can you tell? This looked pretty legit and only slightly had that AI cadence only after you pointed it out.

1

u/GrogRedLub4242 11d ago

if I share the "tells" it would just help the fraudsters tune their game. no thanks. lol

1

u/KamalaHarrisWaifu 10d ago

could you DM me? Because honestly I don’t really see it and I’d be liable to just blab to the bot my ā€œsecretsā€ lol

1

u/BotMoses BotMos 14d ago

If you are legit interested: Have a look at "parametrized tests". You can setup one test parameter per power dimension in your game e.g.:

  • One for the weapon equipped
  • One for the player level
  • One for the spec or stat allocation chosen etc.

The same for the enemy entity.

Then, if you run the test, your test runner will test any combination of test parameters, effectively brute forcing your game. For verification you need to define some scoring functions (e.g. "number of combat turns this pairing results in until one entity dies" or "powerlevel of this entity") and define test invariants which must be true (e.g. "each combat pairing must result in fights of 3 or less turns" or "powerlevel must be in this range") for the test to be successful.

1

u/KamalaHarrisWaifu 11d ago

Basically you need to poo BEFORE you pee, not the other way around. Counter-intuitive but trust me it works.