i discussed with a friend that destroyers should target enemy corvettes with his small/medium weapons (like storm fires) and kill them easily as the dev diary said they were intended to.. However we find that when destroyers fighting against a fleet consists of battleship and corvettes, wired things will happen:
At first, the destroyers fire at enemy corvettes since battleships are out of range.
But when enemy battleships and the destroyers are close enough, the medium weapons will aim at battleships even some corvettes are still alive. Enemy corvettes are safe then (at least the major threat: 2 medium storm fires are gone, and 2 small storm fires can't hurt them much. they have the shield capacity with 15.0 shield regeneration)...and keep shooting at my fleets, which finally turn the tide of the equal-capacity battle.
Destroyers are equipped with 2S and 2M lvl3 storm fires and assumed to be corvette-killers. The medium storm fires have only 10% armor penetration, why do destroyers think it's better to use this weapon against battleships with 90% damage reduction?
---------------
i try to get rid of this attack priority by changing the weapon of destroyers. Based on ship_behaviors/00_standard_ships.txt, the priority is decided by not only the ship size difference but also the estimated damage dealt to enemy, damage to shield and (enemy armor * shield penetration), so i decide to equip my destroyers with no extra shield damage and no shield penetration and no armor penetration weapons like missiles, flak batteries, small mass drivers..
i equip them with various weapons and do experiments, want a better result. but this wired priority is still there. For example, small mass drivers seem also like targeting at Battleships (it has 45 range and can hit battleships) and corvettes receive no damage. There is a very clear screenshot showing that swarmer missiles (0% shield penetration, normal damage to shield, 0% armor penetration. It has 100% Accuracy and 70 Tracking which means it should be another perfect weapon against corvettes) also like targeting at battleships rather than corvettes.
I'm not happy with this result... since we already find that a fleet consists of only corvette (2S plasma + 1S disruptor) can totally defeat a fleet consists of only battleships (1XL arc emitter + 1L disruptor + 1L4M plasma) in an equal-capacity battle. This wired attack priority makes corvettes too strong.....
--------
At last, i find a brutal way to "fix" it: i change the size_difference_penalty of destroyers targeting priority to 10000 and finally force them to fire at corvettes. However it means that destroyers with 1L1M weapons will not target at big ships...
anyway, i hope devs will notice this problem and find a good way to fix it
.
(thanks for reading this long story... and also sorry for my English)
At first, the destroyers fire at enemy corvettes since battleships are out of range.
But when enemy battleships and the destroyers are close enough, the medium weapons will aim at battleships even some corvettes are still alive. Enemy corvettes are safe then (at least the major threat: 2 medium storm fires are gone, and 2 small storm fires can't hurt them much. they have the shield capacity with 15.0 shield regeneration)...and keep shooting at my fleets, which finally turn the tide of the equal-capacity battle.
A typical battle result among several tests (31 Battleships and 56 Destroyers vs 30 Battleships and 120 Corvettes):
Battleships (in two fleets are identical):
Destroyers:
Corvettes:
This battle should be divide into two parts: destroyers vs corvettes (without torpedo they should aim at destroyers > battleships) and battleships vs battleships. And two separate parts can win: 56 Destroyers can destroy 120 Corvettes easily (i delete the 61 battleships and remove the fleet leader before the battle begin, but the battle result still show them):
and 31 Battleship can certainly defeat 30 identical Battleships.
However put these two parts together, my fleet is defeated: destroyers waste their high tracking firepower on enemy battleships...
Battleships (in two fleets are identical):
Destroyers:
Corvettes:
This battle should be divide into two parts: destroyers vs corvettes (without torpedo they should aim at destroyers > battleships) and battleships vs battleships. And two separate parts can win: 56 Destroyers can destroy 120 Corvettes easily (i delete the 61 battleships and remove the fleet leader before the battle begin, but the battle result still show them):
and 31 Battleship can certainly defeat 30 identical Battleships.
However put these two parts together, my fleet is defeated: destroyers waste their high tracking firepower on enemy battleships...
---------------
i try to get rid of this attack priority by changing the weapon of destroyers. Based on ship_behaviors/00_standard_ships.txt, the priority is decided by not only the ship size difference but also the estimated damage dealt to enemy, damage to shield and (enemy armor * shield penetration), so i decide to equip my destroyers with no extra shield damage and no shield penetration and no armor penetration weapons like missiles, flak batteries, small mass drivers..
Code:
ship_behavior = {
name = "destroyer_default"
preferred_attack_range = median #max/min/median/12/412.. #this is the distance to target the ship wants to keep when attacking
formation_distance = 10 #when orbing/following ship will try to keep this distance to assigned position
return_to_formation_distance = 60 #when attacking the ship will switch to passive mode if distance to assigned position is greater that this
collision_awareness = 0.75 #how much we try to avoid other ships
collision_strafe = 0.5 #collision_strafe allows the ship to move in any direction while colliding with another
collision_radius = 1.0
attack_move_pattern = none #stationary/charge/follow/stationary/none
passive_move_pattern = follow
desc = "DESTOYER_DEFAULT_BEHAVIOR_DESC"
targeting = {
component_target_weight_mult = 1.0 #score += <weights based on target ship size from components> * <component_target_weight_mult>
keep_previous_target_bonus = 100 #flat bonus for keeping previous target
damage_value = 5 #score += estimated damage dealt ( including damage to shields ) * <damage_value>
low_health_bonus = 500 #flat bonus if estimated damage will kill the target in a few shots
shield_focus_value = 5 #score += estimated shield damage dealt * shield damage bonus * <shield_focus_value>
armor_focus_value = 5 #score += enemy armor * shield penetration value * <armor_focus_value>
already_incoming_damage_penalty = 200 #score -= ( fleet total estimated damage to enemy / enemy max HP ) * <already_incoming_damage_penalty>.
distance_to_fleet_penalty = 20 #score -= manhattan-distance between enemy and fleet * <distance_to_fleet_penalty>
size_difference_penalty = 100 #score -= Abs( ship size - enemy ship size ) * <size_difference_penalty>. "Pick a fight with someone your own size!"
transport_target_penalty = 50000 #if( target is transport ) score -= <transport_target_penalty>
civilian_target_penalty = 100000 #if( target is civilian ) score -= <civilian_target_penalty>
}
}
At last, i find a brutal way to "fix" it: i change the size_difference_penalty of destroyers targeting priority to 10000 and finally force them to fire at corvettes. However it means that destroyers with 1L1M weapons will not target at big ships...
anyway, i hope devs will notice this problem and find a good way to fix it
(thanks for reading this long story... and also sorry for my English)
Attachments
- 12