Skip to Content
 

Combat mechanic - Civ game

12 replies [Last post]
PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011

What do you think would be the best mechanic for resolving combats in a civilization game and what do you think of my mechanic ideas?

### Requirements for the combat resolution system ###
# Scales to stronger units.
There will be several levels of units (ex: sword and shield, Phalanxs, Knights, Musketeers, Rifles and Artileries, Tanks, Rambos, Robocops, Deathstars .. joking a little)
# Fighting shouldn't be always deadly.
At least around half the units in each side should survive as a standard. (in real life, almost everytime the armies lost not all that many soldiers and were merely routed, only to reorganize the next day or week or month or never)
# Always a chance.
Both sides should have almost always a chance of winning the fight, either successfully killing oponents of not, being the chance directly proportional to the difference in strength of the armies.
# Simple and quick.
The resolution must be simple and quick. The players must not have to put great mental effort to resolve the conflicts (their minds have already too much, in a civ game).

PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011
My first combat resolution

My first combat resolution system .. is now obsolete.
My second combat resolution system was this:

- Each unit has a defense number and an offense number.

- When armies battle, each player puts it's units in some linear order they choose.

- There are damage cards, which contain the ammount of damage delivered (0, 1 or 2 dmg).

- Each player picks up a number of damage cards equivalent to the accumulated offense of the enemy units.
Then, it start applying the damage to the first unit in his army until it dies (damage overcoming the unit's defense number). When the unit dies, the damage cards start accumulating on the following unit, and so on.

This system seemed to work well for some time. Fighting almost never killed everyone on either side, weaker armies still had small chances of winning, it was really simple and easy to use.
However, i wanted more shine and it definetly didn't scale well enough. Starting with 3 units of 2 offense you deliver 6 damage cards. Ending with 5 units of 8 offense, you would be delivering 40 damage cards. Unweildy.

PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011
My strongest candidate for

My strongest candidate for substitute combat resolution system is this:

- Each unit has a strength rating (STR).

When resolving battles:
- Players chooses a unit that hasn't yet fought and pitches them against each other.
They roll a D6 and add it to it's STR.
The higher STR wins the pitch and routs the enemy unit.
If the STR difference was higher than 2 (3+), instead of routing the enemy it kills it.
- Each unit that has fought ends up in one of the following conditions:
Spent, already fought.
Routed
Eliminated
- If one player has more units, the extra units that haven't yet fought can be pitched against "spent" units of the enemy at their choice. If the smaller army doesn't have spent units, the unit can be pitched against "routed" units which won't fight back.
- Resolution is the sum of the number of surviving units, routed units inflicted on the enemy, and double the enemies eliminated.

Although not very well tested, this system works really well in some aspects but fails on others. It sure does scale much better than my previous system. Fighting, most of the times only routs units and doesn't kills them. Weaker armies always have a chance. Fighting small enemy armies of stronger units with a large army of weaker units feels really realistic (you lose more units but you do more attacks trying to take down that stonger unit).
But it fails somewhat strongly in the "simple and quick" requirement... It takes quite a few rolls and many small decisions. You have to constantly be adding STR + D6, then check how much it differs from the enemy. Then keep track of the units that are already spent, routed and dead for each player (so much to keep track that it would require a specific board for it). And then, do some final calculations for the final combat result...

PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011
One other really strong

One other really strong candidate for a combat resolution system was the following:

- Each unit has a strength number (STR)

When combating:
- Each player adds up all of it's units STR and adds 2D6
- The player with the higher result wins
- The player with the lower result loses 1 unit for each 2 points of difference

Everything seemed almost perfect. The only gripe was that the winner would never lose a single unit, a really minor problem in it's perfect suitability. Except the grat failure: it doesn't scale well.
Imagine at start units with 2 STR. One army having one extra unit would mean a difference of 2 to the ending result, which makes a slight difference in the 2D6 range (2~12). Now imagine units of 10 STR and one army with just one extra unit than the enemy. Now, that difference of 1 extra unit (10) completely overrides the variable range of the 2D6 (11).

Maaartin
Offline
Joined: 05/15/2011
Multiply instead of add?

PauloAugusto wrote:
Except the grat failure: it doesn't scale well. Imagine at start units with 2 STR. One army having one extra unit would mean a difference of 2 to the ending result, which makes a slight difference in the 2D6 range (2~12). Now imagine units of 10 STR and one army with just one extra unit than the enemy. Now, that difference of 1 extra unit (10) completely overrides the variable range of the 2D6 (11).

Multiply the STR by e.g. 10+2d6, thus getting for N units with 2 STR a number between 2*N*12 and 2*N*22 and for for N units with 10 STR a number between 10*N*12 and 10*N*22, i.e. both bounds are 5 times as big as before. This way, the randomness gets preserved, however you have to change "The player with the lower result loses 1 unit for each 2 points of difference" into "... for each STR points of difference" in order for the losses to make sense.

That said, I feel that the randomness should diminish with increasing number of units. While one loser may win against a champion from time to time, 10 losers must lose against 10 champions nearly always.

PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011
Maaartin wrote:[...] Multiply

Maaartin wrote:
[...]
Multiply the STR by e.g. 10+2d6, thus [...]

If i understood your proposal correctly, it just increases the scope of the variability, like instead of the variation of 2D6 2~12, having a variation of, for example, 1D100 1~100 and/or units of strength 2~10 having units of 20~100?

Just increasing the scope of variability won't solve the problem, it will merely change it.
Imagine that, instead of a variation of 2~12, we have a variation of 1~100. Now, one extra unit of 10 STR in a fight of units of 10 STR will make a manegeable variation, true. But one extra unit of 2 STR in a fight of units of 2 STR will become a negligeable difference: the variation will become overwhelming. Also still, if units would scale to strengths of, say, 80, we would end up in the same problem. It still doesn't scale.

Maaartin
Offline
Joined: 05/15/2011
No

PauloAugusto wrote:
Maaartin wrote:
[...] Multiply the STR by e.g. 10+2d6, thus [...]
If i understood your proposal correctly, it just increases the scope of the variability, like instead of the variation of 2D6 2~12, having a variation of, for example, 1D100 1~100 and/or units of strength 2~10 having units of 20~100?

In no case I wanted to increase the variation, I just wanted to scale it. Using multiplication instead of addition does exactly that. Once again, do inherent_strength*random_value instead of inherent_strength+random_value.

But there are two problems with it:

  • The computation gets a bit more complicated as the numbers get larger.
  • You need another formula for computing the number of casualties.

Actually, there's the same problem with you formula "The player with the lower result loses 1 unit for each 2 points of difference", which doesn't scale either. When 10 units of STR=2 fight 5 units of same strength, there won't be much kills. When the STR of all units changes to 10 there'll be 5 times as much kills.

larienna
larienna's picture
Offline
Joined: 07/28/2008
Before determining how combat

Before determining how combat would work, I need to know how your units and armies are represented on the board. If you have for example phalanx, Knight, Muskateer, Riflemen, infantry on separate tokens. Then if a player has 10 units of each that makes 50 tokens per player.

But you could decide that you rather have Infantry tokens and something off board that indicates the technology level of the infantry token. In both case, you will not require the same kind of combat system.

To push even further, in my civ game, there is not really units in the board. Players can move a few heroes on the map. Each hero and city has an army of it's own. The units are represented by a deck of cards off board and are only used during battle. The HP of the army is recorded off board for the duration of the battle only. (they heal after battle)

So with a system like this, the combats I can make are totally different. I intend to play the units cards like the "War" card game by making duels of units, the loser reduce his army HP, but the unit type never dies.

Another system similar is in the new FFG civ game where armies are represented with a flag and their units are represented with a deck of cards owned by the player.

So before designing combat system, the most important thing would be to determine how will units appear on the board. Will it be like a war game where you have thousands of tokens, or will you abstract a few game elements.

PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011
Maaartin wrote:[...] In no

Maaartin wrote:
[...]
In no case I wanted to increase the variation, I just wanted to scale it. Using *multiplication* instead of *addition* does exactly that. [...]
But there are two problems with it:

- The computation gets a bit more complicated as the numbers get larger.
- You need another formula for computing the number of casualties.
[...]


Yes, i misunderstood it. It increases the variability but proportionaly to the STR of the units.

Indeed the differences in the fights would also scale greatly. If the multiplier was merely the 2D6, N=0 -> STR*(0+2D6), 2 x 3 units of STR 2 or STR 10 would be:
2/2 vs 2/2/2 = 8~48 vs 12~72
10/10 vs 10/10/10 = 40~240 x 60~360

This seems to have scaled perfectly (max vs max is 150% in STR 2 and STR 10, as well as the other relations) (relations change with different N's, making even greater differences with > 0 N's).
It could create differences like:
STR 2 -> 4 or 64
STR 10 -> 20 or 320

To solve that, maybe the hit points (HP) of the units could also scale to acomodate the increase in scale of difference. Lower units could have STR 2 and 10 HP, while higher units could have STR 10 and 50 HP.
But, indeed, the calculations are becoming too unweildy for non-cumputers and i won't even bother trying to pursue that path.

Good idea, though.

PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011
larienna wrote:Before

larienna wrote:
Before determining how combat would work, I need to know how your units and armies are represented on the board. If you have for example phalanx, Knight, Muskateer, Riflemen, infantry on separate tokens. Then if a player has 10 units of each that makes 50 tokens per player.
[...]

In my civ game, each unit would be represented by one specific token. Each battle would generally be fought with each side having around 2~6 tokens. Each army would have units of similar quality (ex: all Knights or 4 Knights and 1 Musketeer) but one army could be mostly Riflemen while the other mostly «older» units like Muskteers.

larienna wrote:
[...]
To push even further, in my civ game, there is not really units in the board. Players can move a few heroes on the map. Each hero and city has an army of it's own. The units are represented by a deck of cards off board and are only used during battle. The HP of the army is recorded off board for the duration of the battle only. (they heal after battle)

So with a system like this, the combats I can make are totally different. I intend to play the units cards like the "War" card game by making duels of units, the loser reduce his army HP, but the unit type never dies.
[...]


Sounds a little like the computer game Heroes of Might and Magic. Also sounds like it can accomodate nicelly magical units and/or spells, which is essential for your specific «civ» game.

Don't you fear that the combat system will take the players from the game for too much time and too much mental effort, breaking up the flow of the game? Like frequently pausing the major game to play a game of checkers to resolve something.

Maaartin
Offline
Joined: 05/15/2011
It needn't get too complicated

PauloAugusto wrote:
Yes, i misunderstood it. It increases the variability but proportionaly to the STR of the units.

Indeed the differences in the fights would also scale greatly. If the multiplier was merely the 2D6, N=0 -> STR*(0+2D6), 2 x 3 units of STR 2 or STR 10 would be: 2/2 vs 2/2/2 = 8~48 vs 12~72 10/10 vs 10/10/10 = 40~240 x 60~360

Using 0+2d6 as the multiplier leads to very random results, which I don't like at all. It'd be nice for a party game but civ-building should be IMHO better.

PauloAugusto wrote:
To solve that, maybe the hit points (HP) of the units could also scale to acomodate the increase in scale of difference. Lower units could have STR 2 and 10 HP, while higher units could have STR 10 and 50 HP. But, indeed, the calculations are becoming too unweildy for non-cumputers and i won't even bother trying to pursue that path.

Indeed they're. However, you may re-think your options.

  • Will there really be units with STR ranging up to 10? If no, the numbers don't get that big.
  • Is it necessary for the randomness to scale not only with the STR but also with the number of units? If no, you could use the product of the thrown value and the STR of the strongest unit as an addend. I mean, for 3 units of STR=5, you get base strength of 15, and increase it by 5 times 1d6 (or whatever, but a single dice should do).

Concerning the HP: In case of many equal units, you need to use division, which is quite tedious. In case of units having different HPs, you can't use division. In case of just a few units you can use subtraction.

Example: The damage is 20, the enemy has units with HP of 3, 6, 6, 6, and 10. He determines that two units with HP of 6 and the unit with HP of 10 should get damaged. The first two dies (thus absorbing 12 damage), the last one gets injured (if you want to; otherwise nothing happens).

Note that with your 2..6 units per army (I see I'm using "units" for what you call "tokens") it was a fight as complicated as it can get.

PauloAugusto
PauloAugusto's picture
Offline
Joined: 12/04/2011
Maaartin wrote:[...] - Will

Maaartin wrote:
[...]
- Will there really be units with STR ranging up to 10? If no, the numbers don't get that big.
[...]

There will be 6 or 7 levels of units. Roman legions, medievel armies, musketeers, et cetera. So they would have to go from at least from STR 1 to STR 6 or 7. Or from zero to 5/6.
Depending on the combat system, the STR difference from each unit type might have to be greater than 1, making the maximum STR greater than 7.
I was aiming at 10 mostly to push the system to near far limits and see it's behaviour (easy way to make the system break if it is breakable).

Maaartin wrote:
[...]
- Is it necessary for the randomness to scale not only with the STR but also with the number of units? If no, you could use the product of the thrown value and the STR of the strongest unit as an addend. I mean, for 3 units of STR=5, you get base strength of 15, and increase it by 5 times 1d6 (or whatever, but a single dice should do).
[...]

I wouldn't like the probabilities to be different from unit types to unit type. For example, having 2 legions fight 3 legions having 30% chance of winning. Having 2 tanks fighting 3 tanks having 30% chance of winning. I don't know if this really answers to your question.

2 vs 3 units
STR 2 --> 6~16 vs 8~18 (max is 200% higher than min)
STR 10 --> 40~140 vs 50~150 (max is 275% higher than min)

Without further thought or calculations, seems like the variations scale not perfectly but acceptably. Has an increase of differences, which could be countered with increased HPs, like i mentioned before.
At STR 2 we have a chance of around 10 of difference. Units would need to have some 7 HP.
At STR 10 we have a change of around 100 of difference. Units would need to have some 70 HP. Kind of high.

Maaartin wrote:
[...]
Concerning the HP: In case of many equal units, you need to use division, which is quite tedious. [...]

Division isn't just tedious, it is near the «completely unthinkable» in most games, like a Civ game where the minds of people are full of other stuff. «How much is 7 divided by 4»?
But, why do you say that division is? Like you said, just count HP. We wouldn't even need subtraction, just addition: add up HP of units until you reach the required damage.

Maaartin wrote:
[...]Note that with your 2..6 units per army (I see I'm using "units" for what you call "tokens") it was a fight as complicated as it can get.

I called it "tokens" because of larienna's post. I mean some kind of token (cube, miniature, tile) that represents the unit on the board.

larienna
larienna's picture
Offline
Joined: 07/28/2008
Quote:Sounds a little like

Quote:
Sounds a little like the computer game Heroes of Might and Magic.

Hey that's true, I never saw it this way.

Quote:
Don't you fear that the combat system will take the players from the game for too much time and too much mental effort

The problem is always: How to I make a system that resolves fast and that offers a maximum of variety. For now, I think the "War" combat system is the fastest to resolve which offer the possibility to have many type of units and special effect. It could also be possible to resolve multiple battles simultaneously.

As for you units, you said that you want to have different units ranging between strength 1 and 10. Like I explained in another thread, for a civ game, where you have a high technological difference between the first and last unit, you want to have a number sequence that raises exponentially.

Else you will end up like in Civ Revolution where an army of archers can defeat a tank (True story). With an exponential sequence, each unit is twice more powerful than the previous ones, so after a few upgrades it's almost impossible for a low unit to destroy a strong one.

Finally, if you want all units to appear on the board, you should be careful, because in the end, that could mean a shit load of tokens to supply with your game. If the map is not so big, or if it's the kind of game where you don't have much territories or units per territories, that could be fine.

Syndicate content


forum | by Dr. Radut