[Killstack] Ways to balance game without killstack: finite conveyance capacity, leaking ships
Posted: Sun Dec 03, 2017 4:55 pm
I can suggest basic additions to the rules to make game balanced with killstack off (partially inspired by topic). Usually, without it we get deathballs of dozens of defendres and offenders rolling around the map and destroyinging everything until they hit each other, which makes the game imbalanced into attacking side. This is also way to make game more realistic. I just don't know is how to tell it all to the AI.
1. Let infrastructure have a conveyance capacity. The tiles are pretty big land areas which can house dozens of units, but the roads have finite width and get jams from too much traffic. Like, if a tile with road was used by road_road.infra_capacity (say, 4) units this turn, any other units can't get road move bonus. This behaviour can be made less hostile to unit types restricted to roads on the terrain by the rule "infantry dusts by the flanks" - if restricted and unrestricted allied units are on "G" command and move this turn, the unrestricted make way for them. (And some way to keep formations, at least keep attacker with defender, should exist - like command "Follow [unit]", which makes the follower try to keep relative position to the leader until possible and the leader (if belongs to the same player) to advance at a speed manageable by the slowest follower).
2. Terrain gets worndown. If there is no roads or they are jammed, the terrain itself innerly has more or less passable places. If many units go through it, they make traffic in best passes and destroy the ground, troubling movement of the another. Oceanic and maybe Desert tiles should be prone to it, but other tile types with more units passed off-road should accumulate movement penalty for another ones. Like, if Plains tile without roads is used more and more, first terrain_plains.pass_capacity (say, 7) units pass with 1mp lost, next 7 units will have movement fine terrain_plains.capacity_fine (say 1 fragment = 1/3 mp), next more 7 units will be fined at 2/3 mp, and thus before terrain_plains.max_fine (say, 6 fragments=2mp) will be reached for any more units.
IgTer units shall not influence the passability. These two requirements will make big stacks of land units either turn into columns or move much slower than individual units sent to intercept them in distance. To limit the technique of slowing down Howitzers with Freights moving back and forth in front of them, we can apply the capacity fines after auto-attack. Also, some limit on effect of CityWalls should be implied - they will add not more defence to a unit then, like, basic Musketeer defence; thus they will triple defence of ancient troops, double defence of Gunpowder-age troops and do little more than the city alone to tanks which seems reasonable.
3. For sea units, no capacity is implied - the sea is wide and doesn't wear down from passing. To limit great squadrons destroy anything that moves on the coasts, we make ships leaking: after getting some damage, they start losing hp per turn, that with their limited ability of self-repairing will soon sink them if they won't quickly retreat in a friendly port or stand still until somebody drags away or heals them (or, well, sends to the bottom). Like, if a destroyer loses at least N*unit_destroyer.leakage_hp points, she will leak for N hp per turn. For ships, leakage_hp should be like 50% of hitpoints, thus ship on sentry may wait repair for indefinite time. Result of this effect is that strong bombardent may in two turns kill a pile of ships (bombardment leaves 1hp --> leakage takes 1hp --> sentry +1hp already has nothing to apply to). Thus, instead of (or additionally to) Coastal Defence building we give to the defenders a Coastal Artillery unit, which is strong defender and bombardment attacker, but has no native terrain and can only stay in the city or be transported by sea to a base. Also, we may allow other artillery to bombard non-native terrain (AFAIK, already done in some rulesets). The aforementioned healing/dragging should be left to a non-combatant Tugboat (?) units, or let ships can tug each other but with speed reduced proportionally to summary building cost (if done through cargo="Sea" field into negative Move_Bonus effect, Unit_State Transporting should have a way to identify what is transported for ships which tranport land units).
4. What about air units? Balloons and zeppelins can also be made leaking, and faster (1 hp lost=1 hp leaking, that's why these units are so early and cheap! and allow every shooting unit starting from Archers to attack balloons). How many times have you seen an overpowered pile of Stealth Bombers if not drawn in editor? In rulesets where Bombers are Bombarders, this fact plus their price plus relative weakness against ships makes likely enough balance. But we can also make SAM batteries into strong units with anti-air bombardment, and make the planes hanging after attack accessible to the land artillery (although with great defence bonuses) to take the 1hp of mercy (or just eliminate the 100% heal effects of cities and airbases to air units - attacking strong SAM should be really expensive). Air defence units may be movable to protect our advancing forces (just, because we advance in columns, we need many of them and they are not cheap).
Other troubles mentioned by Corbeau should be discussed separately. And I know that in Webperimental the killstack defaults to disabled by default without such radical changes.
1. Let infrastructure have a conveyance capacity. The tiles are pretty big land areas which can house dozens of units, but the roads have finite width and get jams from too much traffic. Like, if a tile with road was used by road_road.infra_capacity (say, 4) units this turn, any other units can't get road move bonus. This behaviour can be made less hostile to unit types restricted to roads on the terrain by the rule "infantry dusts by the flanks" - if restricted and unrestricted allied units are on "G" command and move this turn, the unrestricted make way for them. (And some way to keep formations, at least keep attacker with defender, should exist - like command "Follow [unit]", which makes the follower try to keep relative position to the leader until possible and the leader (if belongs to the same player) to advance at a speed manageable by the slowest follower).
2. Terrain gets worndown. If there is no roads or they are jammed, the terrain itself innerly has more or less passable places. If many units go through it, they make traffic in best passes and destroy the ground, troubling movement of the another. Oceanic and maybe Desert tiles should be prone to it, but other tile types with more units passed off-road should accumulate movement penalty for another ones. Like, if Plains tile without roads is used more and more, first terrain_plains.pass_capacity (say, 7) units pass with 1mp lost, next 7 units will have movement fine terrain_plains.capacity_fine (say 1 fragment = 1/3 mp), next more 7 units will be fined at 2/3 mp, and thus before terrain_plains.max_fine (say, 6 fragments=2mp) will be reached for any more units.
IgTer units shall not influence the passability. These two requirements will make big stacks of land units either turn into columns or move much slower than individual units sent to intercept them in distance. To limit the technique of slowing down Howitzers with Freights moving back and forth in front of them, we can apply the capacity fines after auto-attack. Also, some limit on effect of CityWalls should be implied - they will add not more defence to a unit then, like, basic Musketeer defence; thus they will triple defence of ancient troops, double defence of Gunpowder-age troops and do little more than the city alone to tanks which seems reasonable.
3. For sea units, no capacity is implied - the sea is wide and doesn't wear down from passing. To limit great squadrons destroy anything that moves on the coasts, we make ships leaking: after getting some damage, they start losing hp per turn, that with their limited ability of self-repairing will soon sink them if they won't quickly retreat in a friendly port or stand still until somebody drags away or heals them (or, well, sends to the bottom). Like, if a destroyer loses at least N*unit_destroyer.leakage_hp points, she will leak for N hp per turn. For ships, leakage_hp should be like 50% of hitpoints, thus ship on sentry may wait repair for indefinite time. Result of this effect is that strong bombardent may in two turns kill a pile of ships (bombardment leaves 1hp --> leakage takes 1hp --> sentry +1hp already has nothing to apply to). Thus, instead of (or additionally to) Coastal Defence building we give to the defenders a Coastal Artillery unit, which is strong defender and bombardment attacker, but has no native terrain and can only stay in the city or be transported by sea to a base. Also, we may allow other artillery to bombard non-native terrain (AFAIK, already done in some rulesets). The aforementioned healing/dragging should be left to a non-combatant Tugboat (?) units, or let ships can tug each other but with speed reduced proportionally to summary building cost (if done through cargo="Sea" field into negative Move_Bonus effect, Unit_State Transporting should have a way to identify what is transported for ships which tranport land units).
4. What about air units? Balloons and zeppelins can also be made leaking, and faster (1 hp lost=1 hp leaking, that's why these units are so early and cheap! and allow every shooting unit starting from Archers to attack balloons). How many times have you seen an overpowered pile of Stealth Bombers if not drawn in editor? In rulesets where Bombers are Bombarders, this fact plus their price plus relative weakness against ships makes likely enough balance. But we can also make SAM batteries into strong units with anti-air bombardment, and make the planes hanging after attack accessible to the land artillery (although with great defence bonuses) to take the 1hp of mercy (or just eliminate the 100% heal effects of cities and airbases to air units - attacking strong SAM should be really expensive). Air defence units may be movable to protect our advancing forces (just, because we advance in columns, we need many of them and they are not cheap).
Other troubles mentioned by Corbeau should be discussed separately. And I know that in Webperimental the killstack defaults to disabled by default without such radical changes.