Mechanic #131 - Composition Army 3.0|
Another take on the composition army idea, attempting to combat the flaws of the previous entries.
I'm once again visiting one of my favorite ideas in the collection, [#017 - Composition Army]. I've already revisited once, with [#104 - Composition Army Revisited], but I didn't quite nail it that time either. There's two basic problems with the idea, which I hope to address with this third attempt.
Fig 131.1 - A battle in which nothing can happen.
The first problem is one that could be potentially common. Basically, there could be situations in which one army could not damage another. This is as simple as missing rows or columns lining up such that no opposing units ever come into contact. I kind of just ignored this problem initially, while in the second version, I just had missing columns and rows go away, and have the entire formation compress.
The second problem, also evidenced by the preceding illustration, is what I call the "order of operations" problem. Basically, when you have two troops filled with a dozen units each, with each unit doing something unique, how can you predict how the fight will go down? Do the skeletons attack before or after the archers? What will the skeletons in the back attack, if anything? The more unit types there are, the harder it becomes to predict the combat efficiency of a formation. Combined with formation compression and losing units, the only time you can actually predict what your unit will do is at the beginning of the game, before it has taken any damage.
Let me take a second to explain what kind of experience I'm going for here. I want all the strategic decisions to happen before the actual battles happen. How you build your troop formations and then position them on the field should be everything. You should know, mostly, exactly what is going to happen before it happens. As such, combat should be distinctly non-interactive, and it should be predictable.
That being said, I want there to be a huge variety of formations that you can use and units you can use within them. Unit types should be unique and exciting, to the point that collecting a new unit type should be something the player instantly wants to try out. The original idea was based on setting up chain reactions as units attack and set each other up for better damage, but chain reactions are not sustainable in a formation that changes over time in unpredictable ways.
Finally, I don't want the player to be fiddling with formations after the game has started. Once a formation has been put together, it should remain viable no matter how many units are removed from it. Even if some of the units were rearranged, the impact to the formation's viability should only affected in a minor way. It should be a block that is chipped away at, not a Rube Goldberg contraption that is set to failure by even modest changes.
Fig 131.2 - New battle formations.
Battle formations are now no longer based on a 5x5 grid. Instead, formations can be any size and can move individual steps instead of on a formation-sized grid. This makes for a more Tetris-like battlefield where the configuration of combat is more varied. It also solves the problem of formations having unreachable units - although this, too, is no longer a problem with the new combat system.
Fig 131.3 - Front column is destroyed, shrinking the formation bounds.
There are two or three noteworthy things about the new formations. The first is that the formation bounds will shrink as units are lost. Smaller formations naturally have a maneuvering advantage as they can squeeze through places larger units can't get to.
Fig 131.4 - Formations are rectangular, even when that results in empty areas.
The formation bounds are rectangular and set to the smallest size it can be in order to enclose all troops. This can lead to half empty formations. Two formations may not overlap, even when there would otherwise be two empty spots overlapping. This means that in order to get to the guy in the center of this formation, at least one of the two units on the exterior border must be defeated first, thus shrinking the formation and putting the center guy on an outside edge.
Fig 131.5 - Units can rotate during their movement phase.
As a movement action, units may rotate their formation 90 degrees either clockwise or counter-clockwise, as long as there is room to do so. In this example, the long blue formation can rotate counter-clockwise but not clockwise. A unit can rotate as many times as it wants during a movement, as long as it has enough movement points to do so.
Fig 131.6 - There is no front to the formations. Units turn towards combat.
Finally, there is no "front" to the formation. Whichever direction you attack will become the front. In this example, the unit in the middle can attack either enemy formation on his sides. His units will turn to face the enemy, but the formation will stay in its current rotated state. If the player wanted his archers to be away from the unit at the left before attacking, he needs to rotate the unit twice before attacking them.
Now, a few words about how combat works. In order to simplify things, I've broken down everything into either melee or ranged units. Melee units are offensive, but only against the row or column of the enemy formation they are directly touching. Melee units are also defensive, in that they will survive longer in melee battles. Ranged units can hit another formation in its hit radius, including during a melee attack. Range units do less damage, hit less often, and take way less damage than melee units.
Since combat is boiled down to melee or ranged, there is no order of operations problems. However, this does greatly limit the amount of special abilities that unique units can employ. However, I felt is was more important to simplify combat into something obvious than it was to set up chain reactions. There are still unique units that do different amounts of damage or hit more frequently, as well as units that bestow abilities upon to formation or buffs to adjacent units.
Fig 131.7 - Every archer has a range.
The way ranged combat works is that every archer in a formation has a range. When you decide to make a ranged attack against another enemy formation, only the archers which are in range are considered in combat. In this example, the archer in the bottom right corner is just barely in range, so all nine archers are used to fight against the skeleton formation.
For each unit in combat, figure out all the enemy units in the enemy formation that are in range. In this example, the bottom right archer may only hit the bottom left three skeletons. Of the possible targets, one is chosen randomly and a hit roll is performed. If the unit is hit, then damage is done to that unit. For formations with gaps in them, it is entirely possible to aim at an empty square and do no damage.
The end result is that the majority of the damage will be most heavily distributed towards the front of the enemy unit, where the most archers have range, but the closer archers still have a chance of hitting units towards the middle or back.
There are two types of ranged units. There's arcing fire and direct fire. Arcing fire can target any enemy unit in range, while direct fire (like a crossbow) may only hit enemy units that have a direct line of sight. So crossbowmen can only hit units on the outside of the formation.
There are also different types of ranged units. Pyromancers are wizards that fire arcing fireballs at the enemy. These units operate like archers, except they do fire magic damage instead of piercing damage. Similarly, a grenade thrower may cause a small explosion with splash damage to adjacent enemy units, but still targets the enemy in the same way as archers. All ranged combat happens simultaneously.
Fig 131.8 - Melee is based on front rows and columns.
Melee combat is done a little bit differently in that all the units in a column or row operate as one. In this example, the right column of three skeletons are attacking the left column of three knights - even though the upper skeleton and lower knight are not in base to base contact with an enemy unit. The entire column operates as a single unit. It attacks as a single unit, it defends as a single unit, and it even takes damage as a single unit.
The basic rules is that melee combat may take place between two columns (or rows, if attacking vertically) if at least one set of opposing units are in base to base contact. In this example, two units are in contact, so melee battle can happen. However, two forces can't attack each other if they only face gaps rather than units.
Melee combat operates like this: each row or column has a collective defensive point value that is based on the addition of all the hit points of the units in that row or column. This collective defense value value is reduced every time that row or column is attacked. When the defense value reaches zero, a unit is defeated (player's choice). Then a new defense value is calculated based on the hit points of all the remaining units and the process starts again.
Example, the three skeletons each have melee attack value of 4 (combined, that column's melee attack is 12). The three knights have a defense value of 5 each (combined, the defensive value of the column is 15). When the skeletons attack the first time, they do 12 damage, reducing the defender's defense to 3. If they attack a second time, they do another 12 damage. This time, they reduce the defender's defense to 0 (with 9 damage points left over).
Now, a knight is lost and removed from the formation. The defensive value is reset, but only factors in the value of the two remaining knights. The total defense value for the column is 10. The remaining 9 damage points are removed, leaving the knights with two units and a total defensive value of 1 for the turn.
The knights counter attack and hit the skeletons for their attack value (6 attack ea, or 12 points). The skeletons only have a defense of 2 each, or 6 total. Two skeletons are lost, leaving the skeleton column with a defensive value of 2 for that remaining skeleton.
That skeleton attacks again, doing 4 damage to the knights. Knights had 1 DP, so a unit is destroyed and the defensive value is reset to the value of one knight, or 5, and then the remaining damage is removed, leaving a column defense value of 2 for the last remaining knight.
The knight can counter attack, defeating the last skeleton and destroying the column. Or, if the knight player was trying to end battle, he could've removed the two knights in base-to-base contact with the skeletons, forcing combat to end because nobody could reach each other.
Each column and row of a formation is calculated separately, so units in the corners contribute to both the row and the column they are in. However, if the corner unit is removed, his defensive value is instantly removed from both row and column, potentially causing more units to be lost as the DP value drops for both.
In addition to the defensive points, which act as the hit points for a column, some units may have cancel points. For instance, a heavy knight may cancel one melee damage each. If the attackers hit for 12 melee damage against four heavy knights, 4 melee damage is immediately cancelled out, causing only 8 melee damage to go through.
Some units can do different types of damage, such as a pyroknight using a flaming sword to do fire damage. In these cases, the damages are tallied, but kept separate. So a column may do 5 melee damage and 4 fire damage. The total damage done is 9, but the types of damage are important to the cancel points. The heavy knights only cancel melee damage, so all the fire damage will go through unabated. However, pyroknights may have flame shields which cancel 2 fire damage each.
In addition to canceling, there are also weaknesses, which work as a sort of reverse cancel. An undead skeleton may have a 1 point weakness to fire, which means that if any fire damage is done to the column - any at all - for each skeleton, add 1 additional fire damage. If the fire damage is canceled out or if no fire damage is inflicted in the first place, the weaknesses do not contribute to the damage.
To sum up, add all the attacks up for each damage type. Subtract the collective cancel values, then add any weakness values (if applicable). This will be the total damage done to the opponent's DP value for that column or row.