Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.96a is out! (05/05/23); Blog post: Colony Crises (11/24/23)

Pages: 1 ... 3 4 [5] 6 7

Author Topic: Conquest appreciation thread (0.95.1a)  (Read 6976 times)

Tadas

  • Ensign
  • *
  • Posts: 42
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #60 on: October 19, 2022, 09:24:34 AM »

I guess you are playing with increased deployment cap which I think is a bit easier and favors missile spam. On standard cap it would be a bit awkward to waste 20 DP and problems with capital only fleets starts showing - losing ability to control more than 1 control point and getting surrounded.

I am a bit surprised how well Gauss is performing, but I guess I saw that inefficient damage to flux ratio and never really tried it. But I guess if you can afford it, it's really good.
Logged

CapnHector

  • Admiral
  • *****
  • Posts: 1056
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #61 on: October 19, 2022, 09:29:41 AM »

Yes I do play with max DP setting since I like large scale combat. Never considered that as a factor! Occasionally do have to miss on using 20 DP or so but it doesn't matter really, I'd still rather bring more Conquests and support than try to fill it.

The thing is, even when enemy fleet is massive and varied, these ships tend to form a line of battle with a void full of missiles and Gauss shots between the enemy fleet and mine. I think the Steady AI helps achieve that. But then shorter range weapons end up being just wasted OP much of the time.

Another nice thing about this build is the fleet doesn't care about D-mods much. As you can see looking at my fleet, I just let them explode and deploy a new one which happens sometimes. Since much of the firepower comes from Gauss & missiles fired from standoff distance, D-mods don't really matter for ship combat effectiveness, at least not most of the time.

The endgame (what endgame, when I can already destroy the [SUPER REDACTED] and conquer Eventide and Chicomoztoc and make 300k/mo from alpha run colonies? the power trip I guess) build is to switch to Derelict Operations after you have all officers with 4 elite skills and all ships with 3 s-mods that you want. Is the plan. Also should help with DP gaps if using lower setting.
« Last Edit: October 19, 2022, 10:26:20 AM by CapnHector »
Logged
5 ships vs 5 Ordos: Executor · Invictus · Paragon · Astral · Legion · Onslaught · Odyssey | Video LibraryHiruma Kai's Challenge

Vanshilar

  • Admiral
  • *****
  • Posts: 509
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #62 on: October 19, 2022, 04:02:53 PM »

To clarify, I was thinking of shifting the mean as being more akin to the ships translating, and the distribution of shots and locations of armor cells as being represented in a tangent plane to the target ship rather than over angles.

If the target is moving to its right, then it's going to take more hits on its right side. So that's basically equivalent to shifting the center of the band of armor cells being modeled a bit to the right.

Those are going to result in very different distributions of damage. The results of your simulation (how armor cells are damaged, how long that takes etc.) will not look like real combat, even if you tune your variance so that the overall TTK is similar. The tuned variance will also only be useful for whatever case you tuned it, and it will not be accurate in other cases.

The specific distribution etc. isn't important. What's important is whether or not it can accurately model the amount of damage done to the target and how long it takes (including accounting for misses ideally). Moving the mean off-target versus a bigger variance will both have the same effect of decreasing the hit rate. In either case the model's parameters would have to be matched to combat data, so a sudden drop off if the aim is so far off would be modeled by having a variance that gets exponentially bigger if the target's maneuverability is greater than the weapon's shot speed (for example). Although I would then say that that's simply not what the model is meant for, if the aim is that bad or the target is that maneuverable.

I would much rather see actual analysis of how specific movements affect accuracy. Stuff like 'weapon A becomes x% less effective against enemies moving over y speed due to missing' rather than 'weapon A did x% less damage than theoretical max on average against a certain fleet'. To me, that is just much more informative for making decision about how to outfit ships against certain opponents, and how to manage firing weapons and target selection IMO.

Sure, if you find a good way to model or analyze that, go ahead and present it. I'm more interested in looking at how quickly a fleet of a given configuration can kill off another fleet, and generally the "another fleet" is single/double/triple Ordos because faction fleets are speedbumps not worth optimizing over. I think "weapon A becomes x% less effective against enemies moving over y speed due to missing" is more suited for combat results than modeling.

I would also say that "accurately modeling the hit rate" is a separate issue than "accurately modeling how long it takes to remove shields, remove armor, and remove hull". Sure, there's some connection there, i.e. if the weapon only hits 50% of the time then the total time is doubled, plus there's more shield regen to contend with. But it's also possible to treat the model as just time to remove shields/armor/hull if the shot hits, and then just insert whatever hit rate model you want that feeds into that.

I'm also pretty sure the distribution being sampled from in the actual game when generating shots is not a normal distribution, since I'm pretty sure the error angle for each shot is bounded (while normal distributions are unbounded by definition). I would guess a uniform distribution. That would actually have a non-trivial impact on the probability of hitting a particular cell, and how much damage gets spread out.

It's almost certainly a uniform distribution, since I don't think Alex nor any programmer would bother to code in a specific distribution; it's much easier to just define some +- bounds and have the game (uniformly) select a random value within those bounds. But realistically in combat with the ship maneuvering both to the left and to the right, plus weapons with tracking, plus the weapon is aiming for the middle, it makes sense that the middle ends up getting hit more often than the sides. That's also just from experience. It doesn't have to be a normal distribution but it's good enough as a starting point.

I just took out all the [SUPER REDACTED] guardians in the Sector again with a fleet of nothing but Conquests with 2x Squall 2x Gauss 2x Harpoon 2x HAC (playership has 2x Storm Needler instead, but I'm having trouble making it work).

I find (for AI control at least), they work better with 2x Squall 2x Gauss 2x Harpoon 2x HVD instead of HAC. HVD has faster projectile speed and no shot spread, plus HAC is essentially competing against the other weapons (Squall, Gauss, and Harpoon) for damage, so quite a few targets get taken out at long range even before HAC gets a chance. Flagship Onslaught, 4 Conquests, 2 Gryphons to capture objectives do pretty well vs double Ordos. (Funny story, I started off by trying 5 Conquests, but those Conquests would simply never bother to hold objectives -- they'd grab them, move to the middle, and let the enemy ships take them back and thus surround my fleet in the middle. Dumb AI.) At +411% XP bonus so easy 7.4 mil XP for the double Ordos.
Logged

BCS

  • Captain
  • ****
  • Posts: 279
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #63 on: October 19, 2022, 07:07:28 PM »

Total losses from both fights, 3 Conquests.

Doesn't seem like that much of a success to me...

Quote from: Tadas
I guess you are playing with increased deployment cap which I think is a bit easier and favors missile spam. On standard cap it would be a bit awkward to waste 20 DP and problems with capital only fleets starts showing - losing ability to control more than 1 control point and getting surrounded.

240 / 40 = 6. Am I missing something?
Logged

Tadas

  • Ensign
  • *
  • Posts: 42
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #64 on: October 19, 2022, 07:48:50 PM »

Battle size is 300 by default. So you can max out at 180 pts.
Logged

CapnHector

  • Admiral
  • *****
  • Posts: 1056
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #65 on: October 19, 2022, 08:08:05 PM »

Total losses from both fights, 3 Conquests.

Doesn't seem like that much of a success to me...

Quote from: Tadas
I guess you are playing with increased deployment cap which I think is a bit easier and favors missile spam. On standard cap it would be a bit awkward to waste 20 DP and problems with capital only fleets starts showing - losing ability to control more than 1 control point and getting surrounded.

240 / 40 = 6. Am I missing something?

Allies and/or officer levels (I think?) lead to irregular DPs occasionally, but mostly it is 240 or 200 DP yes.
Logged
5 ships vs 5 Ordos: Executor · Invictus · Paragon · Astral · Legion · Onslaught · Odyssey | Video LibraryHiruma Kai's Challenge

CapnHector

  • Admiral
  • *****
  • Posts: 1056
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #66 on: October 19, 2022, 08:23:37 PM »


I'm also pretty sure the distribution being sampled from in the actual game when generating shots is not a normal distribution, since I'm pretty sure the error angle for each shot is bounded (while normal distributions are unbounded by definition). I would guess a uniform distribution. That would actually have a non-trivial impact on the probability of hitting a particular cell, and how much damage gets spread out.

It's almost certainly a uniform distribution, since I don't think Alex nor any programmer would bother to code in a specific distribution; it's much easier to just define some +- bounds and have the game (uniformly) select a random value within those bounds. But realistically in combat with the ship maneuvering both to the left and to the right, plus weapons with tracking, plus the weapon is aiming for the middle, it makes sense that the middle ends up getting hit more often than the sides. That's also just from experience. It doesn't have to be a normal distribution but it's good enough as a starting point.

I just took out all the [SUPER REDACTED] guardians in the Sector again with a fleet of nothing but Conquests with 2x Squall 2x Gauss 2x Harpoon 2x HAC (playership has 2x Storm Needler instead, but I'm having trouble making it work).

I find (for AI control at least), they work better with 2x Squall 2x Gauss 2x Harpoon 2x HVD instead of HAC. HVD has faster projectile speed and no shot spread, plus HAC is essentially competing against the other weapons (Squall, Gauss, and Harpoon) for damage, so quite a few targets get taken out at long range even before HAC gets a chance. Flagship Onslaught, 4 Conquests, 2 Gryphons to capture objectives do pretty well vs double Ordos. (Funny story, I started off by trying 5 Conquests, but those Conquests would simply never bother to hold objectives -- they'd grab them, move to the middle, and let the enemy ships take them back and thus surround my fleet in the middle. Dumb AI.) At +411% XP bonus so easy 7.4 mil XP for the double Ordos.

Thanks for the tips on the Conquests! I'll try your build. Yes it's also my experience they might actually do best with a more durable ship tanking (hammer and anvil) but a mono-Conquest fleet is more aesthetic and thematic for SD navy.

Re, statistics: guys, if the probability of one shot having angle alpha is uniform, then the mean of alpha_i for large n is normally distributed by the Central limit theorem. And the PDF of mean alpha is a normal distribution. In fact this is true for most distributions of alpha so we don't need to assume much. That is why it is appropriate to use the normal distribution.

Edit: removed an untruth. If we have one gun and assume it is a uniform distribution then we can also simply assume for arc [c,d] subset of angle alpha in [a,b] that the shots will hit [c,d] |d-c|/|b-a| of the time so no big math problems. If we want to know where many independents shots will hit on average instead, then it is the normal distribution mentioned above.

Illustration removed due to not having enough time to verify it is correct.

I was really hoping to do some Latex on this but I don't have the time at all just now.  Essentially regardless of shot distribution what remains to prove is that for matrix cell a_ij of the summed armor damage matrix with a sequence of timepoints k, sum_k(E(a_ijk))=E(sum_k(a_ijk)) and that then for armor damage a E(a)=sum_j sum_i sum_k E(a_ijk). Then we can conclude the model is correct and focus on finding parameters.
« Last Edit: October 20, 2022, 01:19:28 AM by CapnHector »
Logged
5 ships vs 5 Ordos: Executor · Invictus · Paragon · Astral · Legion · Onslaught · Odyssey | Video LibraryHiruma Kai's Challenge

BCS

  • Captain
  • ****
  • Posts: 279
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #67 on: October 19, 2022, 11:40:45 PM »

Battle size is 300 by default. So you can max out at 180 pts.

Restored Defaults just to be sure, it's 400.
Logged

intrinsic_parity

  • Admiral
  • *****
  • Posts: 3045
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #68 on: October 20, 2022, 12:01:04 AM »

I was really hoping to do some Latex on this but I don't have the time at all just now.  Essentially what remains to prove is that for matrix cell a_ij of the summed armor damage matrix with a sequence of timepoints k, sum_k(E(a_ijk))=E(sum_k(a_ijk)) and that then for armor damage a E(a)=sum_j sum_i sum_k E(a_ijk). Then we can conclude the model is correct and focus on finding parameters.
The first equation is definitely correct, that's a property of the EV operator. A sum of EVs of variables is always equal to the EV of the sum of the variables.

The problem is how to calculate the expected value of the damage of a shot in the middle of the sequence, because it depends on the armor value after the previous shot. The simple approach is just to use the armor values after the expected damage from the previous shot is applied, but I am fairly sure that is not correct.

Re, statistics: guys, if the probability of one shot having angle alpha is uniform, then the mean of alpha_i for large n is normally distributed by the Central limit theorem. And the CDF of alpha is a normal distribution. In fact this is true for most distributions of alpha so we don't need to assume much. That is why it is appropriate to use the normal distribution.
The mean of a group of uniformly distributed shots will follow a normal distribution. The shots themselves do not, they follow the distribution they are generated by. In terms of actual calculations, the probability of a shot hitting a particular armor cell comes from the uniform distribution (or whatever is in the code). And we care about that probability because E(damage) = damage|shot_location * p(shot_location) summed over all the shot locations.

@Vanshilar
The whole point of modeling armor cells is to try and account for how distributed damage changes the TTK, so I think it's important to make sure you're representing the way damage is distributed correctly. To highlight what I am trying to say consider the following examples:
If you take a relatively low variance damage distribution and shift the mean so that it is is right at the edge of the target, the result will be that half of the damage is concentrated on a few armor cells at the edge of the ship, and the other half will miss. If you instead leave the mean of the distribution at the center of the target and increase the variance of the damage distribution so that half of the shots miss, you will have half of the damage distributed over the entire front of ship while the other half misses. Those are very different situations, and the time to strip the armor should be significantly different, despite the fact that the % of shots missing is identical.

You should be able to construct a similar example where the overall TTK is identical but the armor values and % of shots hitting are very different. In that case, you will get one situation where the armor of the whole front of the ship gets slowly stripped, and another situation where the majority of the damage misses so that the time it takes to strip the few cells at the edge of the ship is the same.

In both of these cases, you've adjusted the variance of one of the distributions to match some statistic of the shifted mean distribution (either hit% or TTK), but you end up with a totally different situation overall that isn't really a useful comparison. If you don't care about this distinction, there is no point in simulating the armor cells at all.
Logged

Tadas

  • Ensign
  • *
  • Posts: 42
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #69 on: October 20, 2022, 12:08:48 AM »

 Oh found a thread: The default for a new install is 400, but if you had the game installed before, it'll pick up that it was set to 300.
« Last Edit: October 20, 2022, 12:15:43 AM by Tadas »
Logged

Vanshilar

  • Admiral
  • *****
  • Posts: 509
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #70 on: October 20, 2022, 12:53:49 AM »

Okay, so I programmed it into Excel. Armor band 19 cells wide (15 cells hittable). I set it for 1500 base armor, 14000 hull, taking fire from a weapon that does 500 HE damage per shot.

Assuming uniform distribution, it kills the target in 46 shots; after the 46th shot it'll have done 8850 damage to armor (out of 9100 total armor in cells) and 14197 damage to hull.

I tried 3 normal distributions:

1. mean = 0, stdev = 1, x = {-1.05, -0.9, ..., 0.9, 1.05}, and then normalizing. This represents the center 70.6% of the distribution, i.e. 29.4% miss. The chance of a shot hitting the center cell is 8.1%, while the chance of a shot hitting the cell at the end is 4.7%, so hitting the center is about twice as likely as hitting the end. Then it kills the target in 46 shots; after the 46th shot it'll have done 8589 damage to armor and 14360 damage to hull.

2. mean = 0, stdev = 1, x = {-1.4, -1.2,..., 1.2, 1.4}, and then normalizing. This represents the center 83.8% of the distribution, i.e. 16.2% of the shots miss. The chance of a shot hitting the center cell is 9.2%, while the chance of a shot hitting the cell at the end is 3.5%, so hitting the center is about 3 times as likely as hitting the end. Then it kills the target in 45 shots; after the 45th shot it'll have done 8456 damage to armor and 14227 damage to hull.

3. mean = 0, stdev = 1, x = {-7/3, -6/3,..., 6/3, 7/3}, and then normalizing. This represents the center 98% of the distribution, i.e. 2% of the shots miss. The chance of a shot hitting the center cell is 13.5%, while the chance of a shot hitting the cell at the end is 0.9%, so hitting the center is about 15 times as likely as hitting the end. Then it kills the target in 43 shots; after the 43rd shot it'll have done 7112 damage to armor and 14061 damage to hull.

Basically as the variance decreases and the shots get more accurate, it's more likely that the shots will land on a spot where the armor's already cleared out, and thus less damage gets done to armor and more damage gets done to hull, so the target dies a bit faster, even when counting by number of shots that actually hit. (Uniform distribution is effectively a normal distribution with infinite variance that's then normalized.) The difference is relatively minor though.

Now if we assume the shots hit one at a time, rather than a probability wave. Uniform distribution across 15 hittable cells. For 200 samples, the average damage to armor after 46 shots was 8684 +- 270, and the average damage to hull was 13727 +- 213. So modeling it as a probability wave rather than simulating individual shots one after another meant it overestimates damage to hull by around 3.4%. So, fairly close.

So realistically the models are going to be within say around 10% of each other whether you look at it as uniform or normal distribution, and whether you simulate it as a probability wave hitting all at once or as discrete shots hitting one after another.

Edit:
In both of these cases, you've adjusted the variance of one of the distributions to match some statistic of the shifted mean distribution (either hit% or TTK), but you end up with a totally different situation overall that isn't really a useful comparison. If you don't care about this distinction, there is no point in simulating the armor cells at all.

It's not that adjusting the mean vs the variance will always mathematically have the same effect when fitting model to data. It's that for the purposes of the model simulating combat, this edge case of "super accurate weapon that's always nicking the very side of the hittable part of the ship" is not something worth considering. I don't think it's worth planning a weapons loadout around barely hitting one side or another of a ship.
« Last Edit: October 20, 2022, 01:24:53 AM by Vanshilar »
Logged

CapnHector

  • Admiral
  • *****
  • Posts: 1056
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #71 on: October 20, 2022, 05:10:41 AM »

I was really hoping to do some Latex on this but I don't have the time at all just now.  Essentially what remains to prove is that for matrix cell a_ij of the summed armor damage matrix with a sequence of timepoints k, sum_k(E(a_ijk))=E(sum_k(a_ijk)) and that then for armor damage a E(a)=sum_j sum_i sum_k E(a_ijk). Then we can conclude the model is correct and focus on finding parameters.
The first equation is definitely correct, that's a property of the EV operator. A sum of EVs of variables is always equal to the EV of the sum of the variables.

The problem is how to calculate the expected value of the damage of a shot in the middle of the sequence, because it depends on the armor value after the previous shot. The simple approach is just to use the armor values after the expected damage from the previous shot is applied, but I am fairly sure that is not correct.


The general expression is rather intractable at least for my limited skills. I tried using max(0,x) =approx x/(1+e^-x). You do not want to do that.

Anyway, this is pretty trivial but


Correct or not? It should read E(d) on line 4 but too lazy to retype. And also missing a ()^-1 underneath the fraction after line 4. Doesn't matter for the idea.

Per the thread rules, here is another observation on the Conquest: since it is a cheap and ubiquitously available ship (at least if you are SD) then you do not really care about losing one, which is great. Hence re: lost 3 while fighting [SUPER REDACTED] (or rather recovered them with D-mods, it does not really matter when you don't care about Conquests or D-mods that much. Also new crew is available at Cruor and Sindria, and they'd still rather take their chances aboard your death traps I assume.
« Last Edit: October 20, 2022, 05:48:27 AM by CapnHector »
Logged
5 ships vs 5 Ordos: Executor · Invictus · Paragon · Astral · Legion · Onslaught · Odyssey | Video LibraryHiruma Kai's Challenge

intrinsic_parity

  • Admiral
  • *****
  • Posts: 3045
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #72 on: October 20, 2022, 09:04:57 AM »

@Vanshilar
500 HE damage vs 1500 armor is going to result in armor cells getting stripped supper quickly which is not really an interesting case (that's closer to torpedo damage than any gun other than hellbore). I think it would be more useful to consider a much lower hit strength, like 100/200 energy or something vs 1000 armor (that's like medium energy vs cruiser armor which seems like a pretty middle of the road case). Pretty sure that will have a large impact.

Also, it makes no sense to me that in case 1 25%+ more shots miss than case 3, but somehow it only takes 3 more shots to kill. Unless you mean that 46 hits are required to kill, not counting misses.
Logged

intrinsic_parity

  • Admiral
  • *****
  • Posts: 3045
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #73 on: October 20, 2022, 09:27:33 AM »

@CapnHector
I'm pretty sure there are some errors, for instance E(a/(1+a)) =/= E(a)*E(1/(1+a)), those expression are not independant.

But I'm also a bit confused about what the variable a is. Is that supposed to be some total armor value? Because it's 100% not true that using the standard armor formula on total armor is equivalent to doing all the armor cell stuff.

You've got some matrix of armor cell values, and the EVs of all of them on the current iteration depend on the values of the others at the previous iteration. Given the previous armor values, calculating the EV is not complicated, but if you want to consider the EV of damage over a sequence of shots (so that the values of armor at the previous iteration are functions of the random variables), it's way way more complicated.
Logged

CapnHector

  • Admiral
  • *****
  • Posts: 1056
    • View Profile
Re: Conquest appreciation thread (0.95.1a)
« Reply #74 on: October 20, 2022, 09:31:31 AM »

@CapnHector
I'm pretty sure there are some errors, for instance E(a/(1+a)) =/= E(a)*E(1/(1+a)), those expression are not independant.

But I'm also a bit confused about what the variable a is. Is that supposed to be some total armor value? Because it's 100% not true that using the standard armor formula on total armor is equivalent to doing all the armor cell stuff.

You've got some matrix of armor cell values, and the EVs of all of them on the current iteration depend on the values of the others at the previous iteration. Given the previous armor values, calculating the EV is not complicated, but if you want to consider the EV of damage over a sequence of shots (so that the values of armor at the previous iteration are functions of the random variables), it's way way more complicated.

Yeah that was a typo that E(a) sorry. It should read E(d). Assume the a_i is the armor value of a single cell after i shots. And d is hit strength (i.e. damage dealt). The main idea is if hit strength is constant there is no covariance problem, so E(a_i) can be calculated based on E(a_{i-1})
Logged
5 ships vs 5 Ordos: Executor · Invictus · Paragon · Astral · Legion · Onslaught · Odyssey | Video LibraryHiruma Kai's Challenge
Pages: 1 ... 3 4 [5] 6 7