(Major rewrite to be more specific)
I'm prototyping a turn-based battle system. The theme is survival in a despaired setting with conflicting interests:
- 2 players, attacker and defender
- each player starts with an army of 20+ characters to choose each battle's party from
- 6--8 characters per battle party on a 3x3 grid (distance can be used for tactics and variation)
- character death is permanent
- combatants will likely die, and the scenario is short, so there's not much point in complex leveling systems; characters do not improve that much over the course of 1 game
- I want to ignore equipment for now; imagine everyone's fighting naked
With ~6 characters, it's not that much of a problem if one dies during a battle. Two deaths should feel impactful. 4 deaths are serious.
If your party is wiped out, the battle ends and both start selecting combatants for the next fight until one army is wiped out.
How do you figure out numerical representations for stats and effects?
It puzzles me how I should start setting base HP, damage output, evasion rates, and the like.
Established pen & paper make no "sense" but work. Looking at AD&D3 rule books, for example, gives me a sense of security: the rules work well enough, and the success of playing justifies how things are computed. This is a pragmatic argument: if it works, it's good, no matter how odd the formula looks. (I picked the example on purpose because there are newer revisions.)
It's all about numerical representations, but which?
I find it hard to imagine how to work with the full spectrum of random values on a computer. What do I need a random number of 65000 for? What could it mean? Even limiting myself to something that's easy to imagine, 1--100% (e.g. from 0.0 to 1.0, or 1 to 100), I cannot imagine how you come up with a rule like: I want a 70% chance to hit. Why 70%? Isn't that too high or too low? How do you find out good starting values?
Sticking to this example: What's a good-enough hit chance, and how do you decide that? Maybe 80%+ so players don't feel like missing their foes all the time? Do you only find that out via experimentation? If you settle on 80%, do you then infer a character attribute like
Accuracyto produce a 80% chance? (
rand(1,100) > 20is an 80% chance, so let's try
Accuracy = 20? Probably rather the inverse,
Accuracy = 1and
didHit = rand(1,100) > (20 - Accuracy)so the values increase when one gets better.)
How do you come up with the amount of HP a character should have? And how do you calculate damage?
- If an example character has 100 HP, a single attack dealing 1000 damage points is clearly overkill for regular battles. In some games, it could signal "you need to level up", of course, but that's not relevant my prototype. So the damage needs to be lower.
- Absorbing, say, 20 damage points per hit at 100 HP seems manageable in a 1:1 fight. Then you don't have to heal every other turn and can deal damage yourself for a couple of turns. This could work.
- But absorbing 20 damage points from 6 opponents each at 100 HP means a char gets killed immediately in the first turn if all attacks hit. That's not good.
- What about special low-HP mechanics? I can imagine at <20% HP, characters have reduced damage output but better evasion rates "to save their lives". That sounds kinda cool at first, but it makes fighting more complex and looks like band-aid to a problem of insta-killing. The complexity to figure out possible outcomes becomes greater; it's harder to get a feeling for the mechanics.
- So what do you do? Reduce base damage to 15 so
6 chars * 15 dmg < max HPto prevent insta-kills, or would you rather go with a more complex low-HP-mechanic and then try it out to see if it's fun?
Which calculations turn out to be fun?
From that I can derive a few pragmatic heuristics already:
- Absorbing damage of around 1/5 of the max HP will result in tanking damage from 3+ hits, then you need to heal. 1/7 will keep characters alive longer, but 1/3 is probably too much to be playable. Longer lives might be desirable.
- Insta-kill (100% damage) or even healing every odd round is an indicator of too difficult an opponent. It's probably more fun to tank a couple of hits so you can be effective yourself and change the outcome by inflicting damage, and not just manage not to die.
- It could be fun and interesting to vary character behavior, e.g. characters react differently at low HP. Go berserk and do more damage and reduce evasion, or focus on survival via evading and reduce damage output.
Start with something like that and then adjust?
Is that all there is? Pragmatism?
I guess it boils down to: how do you estimate if your calculations turn out to be fun? How do you pick the first numbers to play-test with?