Skip to Content
 

How to Distribute Hits Amongst Multiple Players

17 replies [Last post]
DarkDream
Offline
Joined: 12/31/1969

I am currently working on a semi-cooperative space empire game, and I am trying to flesh out the current combat mechanic.

In the game, players are motivated to help each other out against invading threats. So, for example, a marauding Space Amoeba could attack a colonized planet and one or more players may send their fleets to help fend off the attack.

Placing aside right now the specifics of how the combat mechanic works (that can be another thread) I am looking for a fair way of distributing enemy hits amongst the defending players.

As a concrete example, let's say player A has 2 ships in the battle, player B has 1 ship in the battle versus a single enemy Space Amoeba.

A round of combat ensues, and the Space Amoeba scores two hits. How do you determine in a quick, elegant and non-fiddly way how those hits are distributed over the three ships belonging to the two players?

You don't want to give one of the players the ability to make the decision as he will always make it in his favor to the detriment of the other player.

Ideally it should be randomized, but how when you have variable amount of ships in battles?

Any good ideas?

Thanks,

--DarkDream

questccg
questccg's picture
Offline
Joined: 04/16/2011
Simultaneous Damage

The easiest thing IMHO is to deal damage when a player attacks.

So say Player A has 2 ships and Player B has 1 ship. Player A attacks the Space Amoeba. At that point the Amoeba attacks back SIMULTANEOUSLY, such that both attacks occur at almost the same time. This way there is no need for an AI turn and trying to decide which player the Amoeba will attack.

This method works also if Player B attacks. The Amoeba will attack Player B when he attacks the Space Amoeba.

If you want to "Coordinate" attacks, have Player A attack with his 2 ships and then have Player B attack with his 1 ship (in two separate waves of attack...) Keep it simple... IMHO.

X3M
X3M's picture
Offline
Joined: 10/28/2013
Decision or randomness is key

Decision or randomness is key in this.

Why would a helping player decide to take the hit or not?
Is almost the same as:
Why would a player decide to help or not?

I think, it would be the best to have the player that is attacked, take the first hit. Then the player who decides to help take the next hit. If a third player decided to help, clockwise perhaps?

And the hits are distributed evenly, untill all ships have taken a hit. EG. Player 1 has 1 ship, player 2 has 2 ships, player 3 has 3 ships.
Player 1, takes a hit on ship 1.
Player 2, takes a hit on ship 1.
Player 3, takes a hit on ship 1.
Player 2, takes a hit on ship 2.
Player 3, takes a hit on ship 2.
Player 3, takes a hit on ship 3.

bbblackwell
bbblackwell's picture
Offline
Joined: 10/23/2013
War is Hell!

Personally, I think this should be completely random.

It supports the theme: War is way less predictable than most games make it out to be, and not at all fair. The decision to participate should not be taken lightly. This approach assures that a player has no idea what kind of danger they're walking into when they join in a battle, and this ramps up the tension.

It supports the semi-cooperative nature of the game: They may lose their entire fleet, while the other player walks away unscathed. These sorts of considerations and experiences breed complex feelings between players. Doesn't this mimic what the leaders of allied nations experience in their dealings with each other?

It supports the perceived strength of your antagonist: Players can't predict their losses, and this fear will be psychologically transferred onto the enemy, making him feel more threatening and enriching the experience. Space is scary and largely unknown, and aliens even more so!

DarkDream
Offline
Joined: 12/31/1969
Completely Random would Be Ideal

Thanks guys for your comments.

questccg wrote:
The easiest thing IMHO is to deal damage when a player attacks.

So say Player A has 2 ships and Player B has 1 ship. Player A attacks the Space Amoeba. At that point the Amoeba attacks back SIMULTANEOUSLY, such that both attacks occur at almost the same time. This way there is no need for an AI turn and trying to decide which player the Amoeba will attack.

This method works also if Player B attacks. The Amoeba will attack Player B when he attacks the Space Amoeba.

Your suggestion definitely does avoid the issue of how to distribute hits amongst multiple players, however, it begs the question of how to get the players to decide amongst themselves who attacks first. If it is a semi-competitive game, I will always want the other player to risk his neck first as it were.

X3M wrote:
Decision or randomness is key in this.

Why would a helping player decide to take the hit or not?
Is almost the same as:
Why would a player decide to help or not?

I think, it would be the best to have the player that is attacked, take the first hit. Then the player who decides to help take the next hit. If a third player decided to help, clockwise perhaps?

And the hits are distributed evenly, untill all ships have taken a hit.

I think it is a good question as to why would a player decide to help or not. In the game, if the other player's planet gets destroyed the Space Amoeba will continue and possibly ravage his own planet. It is mutual survival. Plus I have added incentives with giving VPs for helping out a battle and so on.

Using some method of going clockwise and distributing hits evenly I also thought about myself. The problem is that the hit allocation is deterministic and if the battle goes through several rounds the said player will always be the first one hit. Seems a little unfair and somewhat unrealistic if you see war as a very random event.

bbblackwell wrote:
Personally, I think this should be completely random.

It supports the theme: War is way less predictable than most games make it out to be, and not at all fair. The decision to participate should not be taken lightly. This approach assures that a player has no idea what kind of danger they're walking into when they join in a battle, and this ramps up the tension.

It supports the semi-cooperative nature of the game: They may lose their entire fleet, while the other player walks away unscathed. These sorts of considerations and experiences breed complex feelings between players. Doesn't this mimic what the leaders of allied nations experience in their dealings with each other?

It supports the perceived strength of your antagonist: Players can't predict their losses, and this fear will be psychologically transferred onto the enemy, making him feel more threatening and enriching the experience. Space is scary and largely unknown, and aliens even more so!

BBBlackwell, I am in complete agreement with you. It is much better from a gaming and thematic standpoint if the distribution of hits is completely random.

It also puts more tension in the game as you can put in a couple of ships along with a player that puts in twice that much and you have no idea up front (assuming you will take some hits) what will occur. Your allied player may loose all his and none of your ships will even experience a scratch. Or you may be completely eliminated yourself. You just don't know.

This seems to me quite realistic as well.

If we want to go this route of having a completely random distribution of hits where both players attack simultaneously and receive enemy hits, how can we make those hits distributed randomly over the ships?

--DarkDream

czarcastic
Offline
Joined: 06/06/2016
Not exactly elegant, but a

Not exactly elegant, but a simple solution would be to have a deck of sequentially numbered cards, which are shuffled. Each player draws a quantity equal to the number of ships he has in the battle. Lowest numbers take the hits.
A bag of chits may work better in large quantities.

Arcuate
Offline
Joined: 02/05/2016
Just expose each individual ship

Just expose each individual ship to a randomiser. Or are there too many for this to be practical?

X3M
X3M's picture
Offline
Joined: 10/28/2013
Let's try something

Decide the number of hits first. A

Then roll a die for each ship. B1, B2, B3..B#

Substract from each die an equal ammount of hits, until the total amount equals or is less than the total number of hits. In this process, dice might be discarded. These ships are safe.
B1+B2+B3+B# < A

The remaining hits are distributed evenly amongst the players, rounded upwards!! The players decide for the last hits on which ships they take place.

***

Player Albert has 3 ships, Player Bob has 2 ships, Player Carrey has 1 ship.
6 ships.

There are going to be 8 hits.

6 Dice are rolled for the ships. (Could be grouped for each player, and then they decide which ship already will be taking the most hits).
Albert gets 235
Bob gets 46
Carrey gets 3
The total is 23.

124, 35, 2 (17)
13, 24, 1 (11)
2, 13, - (6)

2 hit remain, 2 players remain. Each gets 1 additional hit on a ship that got hits.
Albert gets 3 hits on 1 ship.
Bob gets 1 hit on 1 ship and 3 hits on another ship. And decides to do the remaining hit on the ship with 1 hit.
Carrey is safe.

n8ath2o
n8ath2o's picture
Offline
Joined: 03/24/2016
If you want a completely

If you want a completely co-op game but fear inequality one way is to have greater rewards for he who goes first, second and so on.

As far as taking the hits, one way is to assign points. player A gets 1-3 and player B gets 4-6. Roll d6 and see who is hit. I would not define each ship but each player. Each ship can get cumbersome and as stated by another, war is not fair. They chose to help... but why are they helping? What rewards do they get for helping? those answers hopefully describe why they are willing to be there.

DarkDream
Offline
Joined: 12/31/1969
Interesting Input

Arcuate wrote:
Just expose each individual ship to a randomiser. Or are there too many for this to be practical?

As for the number of player defending ships, I envision in a battle no more than a dozen or so. As for a randomizer, I assume either cards or dice?

czarcastic wrote:
Not exactly elegant, but a simple solution would be to have a deck of sequentially numbered cards, which are shuffled. Each player draws a quantity equal to the number of ships he has in the battle. Lowest numbers take the hits.
A bag of chits may work better in large quantities.
Interesting. Just trying to understand how that would work. I assume that the sequentially numbered cards would all drawn face down, right? If all the cards were drawn face up amongst the players, everyone would then know in advance how the hits would be allocated.

If they are face down, would each player then uncover one card in turn for each hit stopping obviously if they run out of turning cards face up? For example, if player A has 1 ship and player B 2 ships, and two hits are scored, player A and player B will turn face up 1 card for the first hit. Player A shows a 3, while player B shows a 1. So the first hit goes to B (it is the lowest) and the card is discarded. Then for the second hit, player B reveals his second card (A does not as he has no more cards) and it is a 2 and thus another of player B's ship is destroyed as it is lower than player A which is still a 3.

The only problem I see is if there are multiple rounds of combat, you can still see the order of who takes the hits.

A variant of this is that each player takes just one card and reveals it for a hit. The player that has the lowest card garnishes the hit and the cards are discarded. This is repeated for all remaining hits. Seems like a lot of revealing of cards.

X3M wrote:
Decide the number of hits first. A

Then roll a die for each ship. B1, B2, B3..B#

Substract from each die an equal ammount of hits, until the total amount equals or is less than the total number of hits. In this process, dice might be discarded. These ships are safe.
B1+B2+B3+B# < A

The remaining hits are distributed evenly amongst the players, rounded upwards!! The players decide for the last hits on which ships they take place.

***

Player Albert has 3 ships, Player Bob has 2 ships, Player Carrey has 1 ship.
6 ships.

There are going to be 8 hits.

6 Dice are rolled for the ships. (Could be grouped for each player, and then they decide which ship already will be taking the most hits).
Albert gets 235
Bob gets 46
Carrey gets 3
The total is 23.

124, 35, 2 (17)
13, 24, 1 (11)
2, 13, - (6)

2 hit remain, 2 players remain. Each gets 1 additional hit on a ship that got hits.
Albert gets 3 hits on 1 ship.
Bob gets 1 hit on 1 ship and 3 hits on another ship. And decides to do the remaining hit on the ship with 1 hit.
Carrey is safe.


I was having a little trouble following all the calculations to come to the final result. Just to simplify things, each ship has only one hit.

I am not sure all the math calculations would appeal to players trying to implement what you suggest.

To riff off your idea, maybe a simpler way would be, like you do to begin with, is have each player roll a die for each ship and group only their dice together.

Then each hit is allocated in turn to the player with the die with the lowest value and then that die is placed and not reused. In case of a tie in the lowest die between players, then player order or some other tie breaker can be used.

So for example, if player A has 2 ships, and player B 1 ship and two hits are allocated, player A rolls a 2, and 5, while player B rolls a 3. The first hit goes to player A (has a 2) and the die with the 2 value is discarded. For the second hit, player B gets hit as his 3 is lower than a 5.

n8ath2o wrote:
If you want a completely co-op game but fear inequality one way is to have greater rewards for he who goes first, second and so on.

As far as taking the hits, one way is to assign points. player A gets 1-3 and player B gets 4-6. Roll d6 and see who is hit. I would not define each ship but each player. Each ship can get cumbersome and as stated by another, war is not fair. They chose to help... but why are they helping? What rewards do they get for helping? those answers hopefully describe why they are willing to be there.


Yes. I thought along those lines where you distribute the hits at the *player* level. The only problem I see is that for every round of combat only one player will ever receive hits and thus multiple hits would not be spread out at one time between two different players in a single round (thus ships from different players getting destroyed at the same time).

However, it greatly simplifies things and makes the allocation of hits more straight forward. But how would you handle a situation where two hits are allocated to player A, yet he has just one ship? I assume those extra hits are just wasted (overkill)?

I may have to go with some method like this for the sake of simplicity.

A variant of this which is currently my number one idea is to have a set of tokens with one side of a token containing the different player icons. For every ship a player has, they will place one token with their symbol in some opaque container. For each hit, one token is drawn and the hit is assigned to whatever player that matches the icon of the token.

How does that sound? Seems a little bit fiddly...

--DarkDream

X3M
X3M's picture
Offline
Joined: 10/28/2013
czarcastic wrote:Not exactly

czarcastic wrote:
Not exactly elegant, but a simple solution would be to have a deck of sequentially numbered cards, which are shuffled. Each player draws a quantity equal to the number of ships he has in the battle. Lowest numbers take the hits.
A bag of chits may work better in large quantities.

This one actually sounds an ixillion times better than my suggestion.
But how to random the number of hits on each ship? A lower case number that can go from 1 to X?

czarcastic
Offline
Joined: 06/06/2016
Each class of ship could have

Each class of ship could have a specified number of cards/chits to draw. Obviously, a capital ship is a bigger target than a fighter.

When the "receive damage" phase of battle is reached, each ship is dealt their specified number of chits. These are then revealed simultaneously and compared to determine which ships get the damage.

A deck of cards would allow a guaranteed even probability as the sequenced cards could be counted off to form a sub-deck equal to the amount of cards tor be dealt out. However, this could be cumbersome, as the deck will have to be resequenced after each battle.

Having a bag of, say, 50 chits may mess with the probability of a drawn chit being the lowest, but it may be a worthwhile tradeoff for speed and ease.

bbblackwell
bbblackwell's picture
Offline
Joined: 10/23/2013
Choose your random

DarkDream wrote:
If we want to go this route of having a completely random distribution of hits where both players attack simultaneously and receive enemy hits, how can we make those hits distributed randomly over the ships?

I guess it depends on how many players, and how many hits we're talking about. Also on what components you plan on using for your game. The best solution would be one that is fast, intuitive, and does not introduce new components. Here's what comes to mind immediately:

Participants make one opposing roll, with the lowest roller taking ALL HITS, and must distribute them all to one ship, then the next (if the damage exceeds what one ship could bear), etc. Or, you could let them choose how to distribute the damage amongst their ships, but I never like to let players decide how they are going to get hurt hahaha. If the damage exceeds the total HP of all his ships, the remaining damage is ignored. This at least provides some consolation, as their heroic sacrifice saved overall damage from hitting the group.

Alternatively, you can have an opposing roll for EACH HIT. This potentially creates a more fair distribution, though it's still random, but it requires more rolls. We don't want these rolls to bog down the game, so I would only consider this approach if there is generally a low number of hits, and there is some time between battles. If battles are happening constantly the whole game through, this would get tiresome.

Just keep thinking of ways to make this process as quick and simple as possible. It should almost seem automatic. Getting hit by an attack usually doesn't require much participation by the victimized party, and we want the mechanism to accurately reflect this. hahaha

bartergames
bartergames's picture
Offline
Joined: 10/22/2016
A non-random approach

If the ships has different ranks (say "defense/shield power") one way would be:

  1. Sort all attacking ships in descending/ascending order (*)
  2. Each ship take 1 DMG
  3. If all ships has taken a damage and there's still enemy hits points, go to 1.

(*) maybe dependant of the particular enemy

Another opction (or if the ships are all of equal value) for point 1. is: sort them in "join-to-the-battle" order.

saluk
Offline
Joined: 05/11/2010
Simultaneous action can work.

Simultaneous action can work. You asked the next logical question - who attacks first? Here are some options:

* the player who was attacked/is attacking goes first
* the last player who joined the fight goes first
* all players involved in a fight roll to see who goes first

The next logical question then, is who goes second? I see a few obvious options
* clockwise
* the order of agreement of who joined the battle
* the roll to see who goes first doubles as initiative and defines the order for the battle
* initiative is defined by the size of the fleets involved

Other options for distributing hits:

* Targetting AI specific to opponents: "Each hit from the amoeba damages the weakest fleet", "The first hit from the amoeba damages the defending fleet. Any other hits damage allies"
* All players potentially take all the hits, but when assigning the hit, they roll to see if they were actually hit or not
* All ships are hit at a fraction, potentially with rounding. If there are 3 hits and 3 ships, they all take 1. In your example, 2/3, round up, each ship takes a hit. Or, maybe you have a "disabled" state, so the 2/3 just makes each ship disabled.

gxnpt
Offline
Joined: 12/22/2015
random hit distribution

colored tokens in a bag - 1 per ship per player - draw for hit allocation - replace and draw again - would allocate per player randomly based on number of ships each had involved

colored and numbered tokens could allocate per ship also

DarkDream
Offline
Joined: 12/31/1969
Current Thoughts

bbblackwell wrote:

The best solution would be one that is fast, intuitive, and does not introduce new components. . . .

Just keep thinking of ways to make this process as quick and simple as possible. It should almost seem automatic. Getting hit by an attack usually doesn't require much participation by the victimized party, and we want the mechanism to accurately reflect this. hahaha

I think this is a good criteria to use: to be sure it is fast, easy and with no *new* components. While I liked the idea of having a separate deck of cards with unique numbers and the lowest number drawn by a player indicating the one to take the hits, that meant another component.

bartergames wrote:
If the ships has different ranks (say "defense/shield power") one way would be:

  1. Sort all attacking ships in descending/ascending order (*)
  2. Each ship take 1 DMG
  3. If all ships has taken a damage and there's still enemy hits points, go to 1.

(*) maybe dependant of the particular enemy

Another opction (or if the ships are all of equal value) for point 1. is: sort them in "join-to-the-battle" order.

For me, this is the key part where the ships are ranked *contingent* on the particular enemy.

saluk wrote:

The next logical question then, is who goes second? I see a few obvious options
* clockwise
* the order of agreement of who joined the battle
* the roll to see who goes first doubles as initiative and defines the order for the battle
* initiative is defined by the size of the fleets involved

Other options for distributing hits:

* Targetting AI specific to opponents: "Each hit from the amoeba damages the weakest fleet", "The first hit from the amoeba damages the defending fleet. Any other hits damage allies"

Saluk, I think you helped elaborate my current thoughts on how a battle will work out by having a specific AI determine how the hits are distributed.

Here are my current thoughts.

An enemy is represented by a card that has a section which indicates how its hits are distributed.

So, for example, with the Space Amoeba it will say something like this on the card:

All hits: most damage, most fleets

What this means is that if the Space Amoeba generates hits, all of them will be allocated to the player who did the most damage, and if players are tied for most damage, then the player with the most fleets takes the hits. If one or more players are tied in damage allocated and fleet size, I am thinking rolling a die amongst the tied players (lowest roll takes damage) or drawing a random counter that represents the player to take the damage.

So for example, lets say we have a battle with a Space Amoeba where player A has 2 ships, and player B has 1 ship.

In the first round, both players score 0 hits, while the Space Amoeba scores 1 hit. As each player scored no hits (tied for most hits), you look at the second criteria which is based on fleet size. As player A has 2 ships, he takes all hits which in this case is 1 hit which destroys one of his two ships.

For the second round, player A scores 1 hit, and the Space Amoeba scores 2 hits. As player A did the most damage to the Amoeba, all 2 hits are allocated to player A which destroys his last ship with the extra hit being lost.

As the Space Amoeba can only take one hit, it is killed and player B is left with the single surviving ship.

What I like about this is that the enemy determines how hits are allocated which seems fairly thematic to me. A Space Amoeba is an animal and will thus lash out at any ship that hurts it the most.

For differing enemies, you have different hit allocations. A religious anti-tech enemy may target a player with the most anti-religious technologies. Another enemy, will always target the defending player of a planet and so on.

I think this is pretty easy and fast to do.

What do you guys think?

Thanks,

DarkDream

saluk
Offline
Joined: 05/11/2010
It sounds pretty good to me,

It sounds pretty good to me, and that method works pretty well in Sentinels of the Multiverse. The only fiddly bit there is that most of the targeting there is based on hit points, which are constantly in flux, so every hit you have to recalculate every characters hit points.

And yeah, it is another area for you to add thematic variety to opponents. Although you could also have a standard targeting algorithm that only special opponents (I think giant space amoeba would qualify) alter.

Time for playtesting!

Syndicate content


forum | by Dr. Radut