Rerunning the base example with some changes:
1) Keeping the four defense types of Structure, Armor, Evasion, and Shields, and keeping the distinctive features of each (Armor is generally only countered by short-range stuff and is good against AOE, Evasion is generally countered by medium/long range stuff and is good against engine/reclamation/etc damage but bad vs tractors, shields cover an area and a ship can have both shields and other defense type "underneath" that functions when the shields are down, and many of the "objective" targets use Structure) but dropping the idea of trying to "simulate" the multipliers via the durability_multiplier_vs_noncounter, durability_multiplier_vs_counter, and dps_multiplier attributes. Instead, just have the multipliers, but have it be based on the attacking weapon type rather than the attacking ship type. So fusion bombs/rockets are always good against structure, armor-piercing shells are always good against armor, guided missiles and lasers are always good against evasion, and plasma is always good against shields. Similar with other weapon types
2) "cost" wise each ship picks a single defense type and it doesn't cost anything; offensively the norm would be for each ship type to have a weapon with a 4x multiplier against one of the four defense types. Different numbers of multipliers would vary the base dps.
- I'm thinking to avoid having multipliers of higher or lower "strength" than 4x, with the idea that the complexity of the unit relationships will come from other things, but we'll see.
- Similarly, we could reintroduce the idea of some defenses being "better" than others by having it cost (say) 20% of your dps to have armor compared to just structure. This may be necessary for shields in particular, since the area coverage is such a great boon. But I'm trying to start simple here, and work up if necessary.
3) Instead of having some tradeoffs "charge" both hp and dps, have them only charge dps. If the ship designer wants to pay hp for dps (or vice versa) they can do so through the glass-cannon vs tank spectrum.
4) Instead of having low-rate-of-fire give bonus dps and high-rate-of-fire charge dps, have both charge dps the further you get away from the "normal" of one shot each second.
More concretely:
- Wherever you saw "hp_and_dps_multiplier", replace with "dps_multiplier"
- For the rate-of-fire section, substitute:
<rof name="ExtremelyLow" rof_multiplier="0.125" dps_multiplier="0.7" />
<rof name="VeryLow" rof_multiplier="0.25" dps_multiplier="0.8" />
<rof name="Low" rof_multiplier="0.5" dps_multiplier="0.9" />
<rof name="Normal" rof_multiplier="1" dps_multiplier="1" />
<rof name="High" rof_multiplier="2" dps_multiplier="0.9" />
<rof name="Misery" rof_multiplier="4" dps_multiplier="0.8" />
- Ignore the durability_multiplier_vs_noncounter, durability_multiplier_vs_counter, and dps_multiplier fields on the defense types, and consider "Structure" to be in the list rather than just the absence of any of the other three. Possibly "Bulk" is a better name for it, dunno.
- add the section:
<number_of_defenses_countered name="Zero" dps_multiplier="1.5" />
<number_of_defenses_countered name="One" dps_multiplier="1" />
<number_of_defenses_countered name="Two" dps_multiplier="0.75" />
<number_of_defenses_countered name="Three" dps_multiplier="0.5" />
So basically you can do 4x damage to one-out-of-four defense types, 3x damage to two-out-of-four defense types, 2x damage to three-out-of-four defense types, or 1.5x to everyone. But generally most "normal" weapons would be designed to counter exactly one of the defense types.
And the results:
Bomber
shots_per_salvo = 1
ships_per_squad = 5
granularity = MildLowCap (dps*0.9)
durability = Normal
speed = normal
range = short
rate of fire = ExtremelyLow (dps*0.7)
defense type = armor
weapon type = fusion bombs (anti-structure)
fuel cost = high (dps*1.15)
metal cost = high (dps*1.1)
special abilities = none
So a cap (100, in 20 squads of 5) of MkI bombers would get:
HP = base_hp_scale * strength_per_cap
= 100 * 200
= 20,000 hp, or 200 hp per bomber or 1000 hp per squad
DPS = ( base_hp_scale / seconds_per_fight ) * strength_per_cap * 0.9 (MildLowCap) * 0.7 (ExtremelyLow rof) * 1.15 (high fuel) * 1.1 (high metal)
= ( 100 / 20 ) * 200 * 0.79695
= 796.95 dps, or 7.9695 dps per bomber or 39.8475 dps per squad
An individual bomber would fire 1 shot every 8 seconds, doing 63.756 damage per shot.
Fighter
shots_per_salvo = 1
ships_per_squad = 10
granularity = normal
durability = MildTank (hp*1.2, dps*0.9)
speed = normal
range = short
rate of fire = normal
defense type = evasion
weapon type = armor-piercing shells (anti-armor)
fuel cost = normal
metal cost = low (dps*0.9)
special abilities = none
So a cap (200, in 20 squads of 10) of MkI fighters would get:
HP = base_hp_scale * strength_per_cap * 1.2 (MildTank)
= 100 * 200 * 1.2
= 24,000 hp, or 120 hp per fighter or 1200 hp per fighter squad
DPS = ( base_hp_scale / seconds_per_fight ) * strength_per_cap * 0.9 (MildTank) * 0.9 (low metal)
= ( 100 / 20 ) * 200 * 0.81
= 810 dps, or 4.05 dps per fighter or 40.5 dps per squad
An individual fighter would fire 1 shot every second, doing 4.05 damage each shot.
Missile Corvette
shots_per_salvo = 1
ships_per_squad = 5
granularity = LowCap (dps*0.8)
durability = MildGlassCannon (hp*0.5,dps*1.5)
speed = normal
range = medium (dps*0.6) (dropped this down from long, thinking it'd be nice to reserve truly long-range stuff for bonus ships and starships, etc)
rate of fire = VeryLow (dps*0.8)
defense type = structure
weapon type = guided missiles (anti-evasion)
fuel cost = high (dps*1.15)
metal cost = normal
special abilities = none
So a cap (50, in 10 squads of 5) of MkI missile corvettes would get:
HP = base_hp_scale * strength_per_cap * 0.5 (MildGlassCannon)
= 100 * 200 * 0.5
= 10,000 hp, or 200 hp per corvette or 1000 hp per squad
DPS = ( base_hp_scale / seconds_per_fight ) * strength_per_cap * 0.8 (LowCap) * 1.5 (MildGlassCannon) * 0.6 (medium range) * 0.8 (VeryLow rof) * 1.15 (high fuel)
= ( 100 / 20 ) * 200 * 0.6624
= 662.4 dps, or 13.248 dps per corvette, or 66.24 dps per squad
The corvette would fire 1 shot every 4 seconds, doing 52.992 damage per shot.
Effective CapDPS:
Bomber vs Bomber = 796.95 * 1 => 796.95
Bomber vs Fighter = 796.95 * 1 => 796.95
Bomber vs Missile Corvette = 796.95 * 4 => 3187.8
Fighter vs Bomber = 810 * 4 => 3240
Fighter vs Fighter = 810 * 1 => 810
Fighter vs Missile Corvette = 810 * 1 => 810
Missile Corvette vs Bomber = 662.4 * 1 => 662.4
Missile Corvette vs Fighter = 662.4 * 4 => 2649.6
Missile Corvette vs Missile Corvette = 662.4 * 1 => 662.4
So bombers attacking bombers would do 6375.6 damage in the initial salvo, theoretically killing 31 bombers (31%). The groups would basically reduce each other by a third every 8 seconds. After 48 seconds, each side would be at roughly 10% strength.
Bombers attacking fighters would get similar results from the initial salvo (killing 53 fighters, or 26.5%), but the return salvo of 3240 damage kills 16 bombers, and there's a follow-up salvo every second instead of every 8 seconds. Even if the bombers' initial salvo hits before the second fighter salvo goes off, the remaining 2381 damage-per-salvo kills 11-12 bombers per salvo, so in 7 salvos they'll kill an additional 83 bombers, which is basically all the bombers had left. The bombers might have a chance to fire again, but not with enough bombers left to make a difference. After 8 seconds, the battle would be over with the fighters having only suffered roughly 1/4 losses.
Bombers firing on missile corvettes would first have to withstand at least one salvo of 2649.6 damage before they could return fire. The second salvo would presumably also be at least in the air. So a real analysis of this depends on exactly how long it takes to close from "medium range" to "short range". But for the sake of argument let's say:
Corvettes fire, unopposed: 2649.6 damage => 13 bombers dead (bombers at 87%)
Corvettes fire again, but bombers fire before the salvo lands. Corvette salvo does 2649.6 damage => 13 more bombers dead (bombers at 64%)
Bomber salvo lands, 25502.4 damage * 0.87 = 22187 damage, wiping out the missile corvettes completely
Of course, that doesn't speak much to the how they would fare if they were in a general fleet action with tons of other stuff flying around. Notably, whether the missile frigates shield coverage from a friendly starship. And, of course, as our dear friend kasnavada would remind us, if the missile corvettes have freedom of movement they can just kite the bombers until the bombers die. Moral of story: don't allow missile corvettes freedom of movement. And if you're a corvette, don't allow bombers into range. Good luck with that.
In general these results reflect that the "seconds_per_fight" number needs to factor in "what is the normal multiplier?" Because if you're using a divisor of 20 (for 20 second fights) but the expectation is that in good matchups you always do 4x damage, that means 5 second fights.
Which might be better, but if that's what we want then we should just say seconds_per_fight=5 rather than saying 20 when we mean 5.
Thoughts?