I need to put together a system for a game, with the following premises:

  • There are 5 types of units: A, B, C, D, E.
  • A beats B and D
  • B beats C and E
  • C beats D and A
  • D beats B and E
  • E beats A and C

In addition, each unit type has different properties’ values:

  • Attack force
  • Number of attacks it can perform in one turn
  • Defense

I need to know how I can make it possible with different values to achieve the premises mentioned above.

I was able to think of something similar for 3 types of units (A, B, C):

  • A has a high attack force (5) and a medium defense (2).
  • B has a high defense (5) and can make 2 weak attacks (2x1).
  • C units work as a duo. They have medium attack (2) and little defense (1), but 2 units of C can attack at the same time (summing their attack force).


  • A beats B (A attack force >= B defense)
  • B beats C (B x2 attacks >= each C defense)
  • C beats A (2xC attacks >= A defense)

I need to do something similar, but for 5 types of units. How could I do this without having to include more complex issues? I want to handle it with properties’ values, and not with "unit E cannot attack unit D", etc. I could include another parameter, but the least things I add, the better.

  • 3
    This is an optimization problem in 15 variables. Check business calculus sources for methods of setting up and solving the problem. Dec 19, 2019 at 18:30
  • Thanks for your answer. Can you clarify a little more? Is there another way to search for this? "Optimization problem with n variables" seems a little broad.
    – serknor
    Dec 19, 2019 at 20:02
  • 5
    Linear programming or linear optimization. e.g., universalclass.com/articles/math/algebra/… Dec 19, 2019 at 20:12

3 Answers 3


Simple Answer: Enforce Type Interactions

Pokemon video games (and the card games) tackles this idea with type. Water beats Fire, Fire beats Grass, Grass beats Water. The simplest answer is to modify the damage based on the characteristic of the receiving type, rather than adjusting the attack itself. Applying types to your units is fairly trivial, and leaves room for creative development.

However, based on your examples, it appears your looking for types to have overall strategies that are good against each other. That is to say, rather than A being being good against B 'because I said so' (Water being good against Fire makes logical sense, but ultimately is because the developers said so), it sounds like you're looking for a strategy that arises from the qualities that game objects have.

Complicated Answer: You need more than 3 mechanics

The difficulty with answering this question is that having a compelling metagame where different types of gameplay match up well against each other is kind of what game designers continuously do. Any answer is going to require you try lots of combinations and record win rates for certain strategies, tweaking the power of each strategy until you get something desirable.

Actually, having a 'perfect' situation where A beats B beats C beats A is undesirable. Imagine I sit down with by deck of B units, and my opponent starts playing A. If A always beats B, I might as well forfeit. That's obviously not a design that's fun for the losing side, and probably not even fun for the winner. So the question is, what can we do so that A usually beats B, but B can earn an underdog win with good gameplay (and perhaps some luck)?

B player needs some mechanics that are good against A that it can include (perhaps by including these mechanics, it is worse against C players and other B players.) As it stands, there are only about 3 mechanics spread out among 3 types, and that's not enough for just those three types. I would imagine you may need 2-3 gameplay mechanics per type for just 3 types. For 5, that may expand out to 5-6.


The good news is that you can do this without increasing the complexity of each card. Trying to squeeze a dozen gameplay mechanics on one unit is probably impossible, but not all units have to have each mechanic. I would strongly recommend looking at Magic: The Gathering for an example of a game that does this well.

For instance: some Colors (Colors in Magic are roughly akin to your unit types.) have flying: they tend to be weaker, but can only be blocked by other flying creatures or creatures with a specific flying-blocking ability. This gives 'B' a strategy against 'A': B may have enough to hold off A's creatures for a time because of its high defense. A mechanic like flying would allow B to put out a flying creature, and then hide behind its big walls until the flying creature eventually deals with A. It's not ideal (and shouldn't be: A is supposed to be strong against B) but it gives B a fighting chance.

Also consider First Strike: In Magic, creatures deal damage to each other at the same time. An ability call First Strike changes that and causes the creature to deal damage first. This can tweak even creatures with small defense to be really strong, as they may be able to kill a powerful thing with low defense before it has the chance to strike back.

These keywords (First Strike and Flying) can be tacked on to a creature: a creature without them doesn't have to be overwhelming.

Consider Knight of the Keep. (Ignore the text on the card in italics.) That creature has no abilities and is fairly simple, clean, and easy to read. A beginner who knows the basic rules knows how that works.

Consider Enforcer Griffin. It has flying, but it still is fairly simple in how it looks. Once players learn how flying works, the card doesn't seem too complicated.

Consider an extreme example, Zetalpa, Primal Dawn. It has a whopping 5 keywords, and would be pretty confusing for new players. However, it didn't make Knight of the Keep any more complicated, because Knight of the Keep didn't have to worry about things like 'trample' or 'double strike'.

In this way or through some similar mechanics, you can add complexity to certain units to give them a more flexible role, without increasing the complexity of all of your units.

Ultimately though, for 5 types I believe you will need more than 3 gameplay mechanics. Proper balance between them will require a lot of testing and tweaking. That's what separates good from bad games. Mechanics that are fun, not overwhelming to players, and create ways for players to express their skill are what make or break the game. We can give you examples we like/dislike, but original ones will have to come from the developer.

  • 1
    You understood the issue perfectly, and gave me a lot to investigate. I'll get back on this soon after having a more detailed answer. But for now: - I mentioned only the attack mechanic, but the idea is that you buy units, with different prices. I want to have this 5 archetypes but also units that are a mix of them (ie: between A and B). In addition, there would be different levels, ie: Weak A (cheap) and Strong A (expensive). - What I liked the most about your answer are this other "boolean stats" (keywords) that work differently and give another approach and more variety (ie: First strike)
    – serknor
    Dec 20, 2019 at 0:22
  • With just a few of them I can get a lot of different combinations to try. Thanks again for your time and detailed answer.
    – serknor
    Dec 20, 2019 at 0:22

You could do it like in Civilization (2010): There, every unit has an attack strength and hitpoints. Two units of equal type (or airforce, which is outside the rock-paper-scissors-cycle) apply their hits to each other simultaneously, but if they are different within the cycle, the superior unit strikes first, and the inferior unit can only apply damage to the superior one if it survives that first strike.
A second option could be to always add a small amount of strength (attack, defense, hitpoints) to the superior unit.


You might want to use a mechanic of Range-attak. Unit A is strong but need to get close to the enemy to attak, Unit B is weak but can attak from a distance.
For example: infantry < archers < cavalery < infantry

Not the answer you're looking for? Browse other questions tagged .