So I'm trying to do some digging on how naval combat works. I know I can't be the first one to do this but for the life of me I can't find any detailed info about it on the net. All I can find is endless forums threads/reddit posts where people are asking how naval combat works or what's the optimum fleet composition and then getting a dozen or so different answers or vague ideas of how they think things work.
I've done some very limited testing and although I haven't figured out everything by any means, I thought I'd write down what I know(or think I know). If somebody has done more extensive tests or knows something I don't, I would love to hear it.
When two enemy fleets move into the same sea province, combat begins. A die is rolled for each side. This roll will be used for 5 days, after which it is re-rolled.
Seeking Target
The ships will first have to select a target. The following line in defines.lua affects this:
The ship that is targeted is picked randomly except with the following modifiers:
Once target is selected there is also a small chance of randomly changing targets in the middle of the battle:
There is also a limit on how many ships can target the same enemy ship:
There is also a coordination penalty in the game that affects target selection. Basically, the more you outnumber the enemy fleet, the harder it is for your ships to find a target:
Approaching
Once a target has been selected, your ship will have to get in close enough to shoot. At the start of combat, the two fleets are 200 distance away from each other. So the ship starts to move towards its target until it is within its firing range. There is one line in the defines that determines move speed:
Now I did notice one strange case in my testing. So the ship needs to move within its firing range before it can start firing. So as an example in one battle my frigate(firing range: 50) moved as follows:
So at the end of day 4 it realizes it's within its firing range and so on day 5 i has changed its stance to firing. Now this is how most of the battles go, but I did witness one time where this wasn't the case. My man o war(firing range: 58) was approaching its target:
So at the end of day 8 the game checks the firing range and for some reason the man o war changes to "firing" even though its not yet in range. I'm not really sure why this is. I guess it might have something to do with the order in which the game resolves the ship actions at the end of day or something(so if the game resolved the man o wars target first and they moved forwards enough, then the man o war might be in range and so be able to start firing).
Firing
Once the ship is in range of its target, it starts firing. You will see two numbers under your ship. The green one is how much org damage you have done while the red one is how much str damage you have done. these will obviously start at 0.00/0.00 on the first day of "firing". Hovering over the numbers gives a tooltip that tells you your estimated fire power and what affects it, as well as your hitting chance.
Estimated firepower is formed as follows:
5 * 0.25 * 0.95 * 0.845 * 8 = 8.03
The hitting chance is always 100% unless your target has evasion.
The "Luck & Decisions" bonus depends on the die roll plus your leaders attack/defend attribute. Here's how it looks:
Going lower than -2 on the roll doesn't seem to matter, you'll still get 2 luck bonus. I have not tested higher than 14 rolls.
Once the estimated fire power has been calculated, to get the actual org dam/str dam we use the following numbers from the defines.lua:
Or at least this is how I thought it works. The problem is that there's been a number of different cases where the next days damage numbers don't add up. The differences seem to me big enough to rule out rounding errors. These discrepancies have mainly been with org dam. As far as I can remember str dam has worked flawlessly. So I think I'm missing something.
Lastly, there is one more modifier for combat:
Retreating
Once you are firing at your target(and assuming you don't randomly change/drop targets), you will keep firing until you either destroy the target ship, or they disengage. A ship can start retreating after its org or str drops below 15% of max:
There is also the following line in defines:
Once the target ship is either destroyed or has retreated beyond the firing range of your ship, your ship will have to go back to square one, finding a target.
If all the ships in the fleet are disengaged, the whole fleet retreats and the battle is over.
I've done some very limited testing and although I haven't figured out everything by any means, I thought I'd write down what I know(or think I know). If somebody has done more extensive tests or knows something I don't, I would love to hear it.
When two enemy fleets move into the same sea province, combat begins. A die is rolled for each side. This roll will be used for 5 days, after which it is re-rolled.
Seeking Target
The ships will first have to select a target. The following line in defines.lua affects this:
- NAVAL_COMBAT_SEEKING_CHANCE = 0.5, -- base chance of picking a target (increased by leader reconaissance)
- NAVAL_COMBAT_SEEKING_CHANCE_MIN = 0.1, -- low cap for chance of picking the target
The ship that is targeted is picked randomly except with the following modifiers:
- NAVAL_COMBAT_SELF_DEFENCE_CHANCE = 2.0, -- scale up the chance of choosing the target that is already shooting at us.
- NAVAL_COMBAT_DAMAGED_TARGET_SELECTION = 2.5, -- multiply chance of seleting target that has low average of STR/ORG
Once target is selected there is also a small chance of randomly changing targets in the middle of the battle:
- NAVAL_COMBAT_CHANGE_TARGET_CHANCE = 0.03, -- chance of changing the target to another one
There is also a limit on how many ships can target the same enemy ship:
- NAVAL_COMBAT_MAX_TARGETS = 6, -- max number of ships that may target the same enemy ship
There is also a coordination penalty in the game that affects target selection. Basically, the more you outnumber the enemy fleet, the harder it is for your ships to find a target:
- NAVAL_COMBAT_STACKING_TARGET_CHANGE = 0.03, -- increase chance to change/drop target when suffering stacking penalty
- NAVAL_COMBAT_STACKING_TARGET_SELECT = 0.2, -- modifier for how much the stacking penalty affects the target selection.
Approaching
Once a target has been selected, your ship will have to get in close enough to shoot. At the start of combat, the two fleets are 200 distance away from each other. So the ship starts to move towards its target until it is within its firing range. There is one line in the defines that determines move speed:
- NAVAL_COMBAT_SPEED_TO_DISTANCE_FACTOR = 0.05, -- cast the ship speed to the "in combat" speed that moves it towards center line on the field range 0-1.
Now I did notice one strange case in my testing. So the ship needs to move within its firing range before it can start firing. So as an example in one battle my frigate(firing range: 50) moved as follows:
Day -- distance to target
1 -- 200
2 -- 147.8
3 -- 93.3
4 -- 42.7
5 -- firing
1 -- 200
2 -- 147.8
3 -- 93.3
4 -- 42.7
5 -- firing
So at the end of day 4 it realizes it's within its firing range and so on day 5 i has changed its stance to firing. Now this is how most of the battles go, but I did witness one time where this wasn't the case. My man o war(firing range: 58) was approaching its target:
Day -- distance to target
1 -- 200
2 -- 175.2
3 -- 158.3
4 -- 142.7
5 -- 116.3
6 -- 100
7 -- 100
8 -- 59.9
9 -- firing
1 -- 200
2 -- 175.2
3 -- 158.3
4 -- 142.7
5 -- 116.3
6 -- 100
7 -- 100
8 -- 59.9
9 -- firing
So at the end of day 8 the game checks the firing range and for some reason the man o war changes to "firing" even though its not yet in range. I'm not really sure why this is. I guess it might have something to do with the order in which the game resolves the ship actions at the end of day or something(so if the game resolved the man o wars target first and they moved forwards enough, then the man o war might be in range and so be able to start firing).
Firing
Once the ship is in range of its target, it starts firing. You will see two numbers under your ship. The green one is how much org damage you have done while the red one is how much str damage you have done. these will obviously start at 0.00/0.00 on the first day of "firing". Hovering over the numbers gives a tooltip that tells you your estimated fire power and what affects it, as well as your hitting chance.
Estimated firepower is formed as follows:
- You start with the ships attack value(5)
- Multiply by "1/opponents hull"(0.25)
- Multiply by opponents experience(0.95)
- Multiply by own ship str(0.845)
- Next up is the "luck & decisions" bonus which you get from the die roll+leader result. The tooltip gives this as a percentage(in this case 8%) which is a bit misleading. You don't increase the attack value by 8% but rather multiply it by 8.
5 * 0.25 * 0.95 * 0.845 * 8 = 8.03
The hitting chance is always 100% unless your target has evasion.
The "Luck & Decisions" bonus depends on the die roll plus your leaders attack/defend attribute. Here's how it looks:
die+leader -- luck&decisions
-2 -- 2
-1 -- 4
0 -- 6
1 -- 8
2 -- 10
3 -- 12
4 -- 16
5 -- 20
6 -- 25
7 -- 30
8 -- 35
9 -- 40
10 -- 45
11 -- 50
12 -- 60
13 -- 70
14 -- 80
-2 -- 2
-1 -- 4
0 -- 6
1 -- 8
2 -- 10
3 -- 12
4 -- 16
5 -- 20
6 -- 25
7 -- 30
8 -- 35
9 -- 40
10 -- 45
11 -- 50
12 -- 60
13 -- 70
14 -- 80
Going lower than -2 on the roll doesn't seem to matter, you'll still get 2 luck bonus. I have not tested higher than 14 rolls.
Once the estimated fire power has been calculated, to get the actual org dam/str dam we use the following numbers from the defines.lua:
- NAVAL_COMBAT_DAMAGE_ORG_MULT = 0.4, -- scale the damage to ORG for balancing gameplay
- NAVAL_COMBAT_DAMAGE_STR_MULT = 0.2, -- scale the damage to STR for balancing gameplay
Or at least this is how I thought it works. The problem is that there's been a number of different cases where the next days damage numbers don't add up. The differences seem to me big enough to rule out rounding errors. These discrepancies have mainly been with org dam. As far as I can remember str dam has worked flawlessly. So I think I'm missing something.
Lastly, there is one more modifier for combat:
- NAVAL_COMBAT_DAMAGE_MULT_NO_ORG = 2.0, -- damage multiplier (to STR) when opponent has no ORG.
Retreating
Once you are firing at your target(and assuming you don't randomly change/drop targets), you will keep firing until you either destroy the target ship, or they disengage. A ship can start retreating after its org or str drops below 15% of max:
- NAVAL_COMBAT_RETREAT_CHANCE = 0.07, -- base chance for retreating when STR or ORG is low. Increased by leader experiance and speed.
- NAVAL_COMBAT_RETREAT_STR_ORG_LEVEL = 0.15, -- the retreating is available when STR or ORG % drops below this value (it's 0% to 100% value)
- NAVAL_COMBAT_RETREAT_SPEED_MOD = 0.4, -- slow down when retreating so there is a chance to hit the runner
There is also the following line in defines:
- NAVAL_COMBAT_RETREAT_MIN_DISTANCE = 0.25, -- how close (in average) all alive ships must be to the center line to be able to retreat.
Once the target ship is either destroyed or has retreated beyond the firing range of your ship, your ship will have to go back to square one, finding a target.
- NAVAL_COMBAT_SHIFT_BACK_ON_NEXT_TARGET = 0.2, -- max shift back from center line when got new target
- NAVAL_COMBAT_SHIFT_BACK_DURATION_SCALE = 7, -- shifting back from center line on new target - scaled down as long the combat takes
If all the ships in the fleet are disengaged, the whole fleet retreats and the battle is over.
Last edited:
- 3
- 1