@Alex
Great glad to help! (regarding DO_NOT_CONSERVE).
Yeah, thank you for that! That's some mighty impressive investigative work
Regarding Phase ships:
I don't think so as far as the random element is concerned. I feel this way because the behavior is consistent and noticeably different, but I don't think it's a missile specific thing linked to DO_NOT_CONSERVE either.
It may be mod related so I need to do some tests on Vanilla, but I'm pretty sure its linked the the phase AI's threat evaluation in that it doesn't feel like it has the time or possibly flux to fire many weapon groups that aren't on autofire and ends up not firing them at all for some reason. It occasionally fires a group, but prefers (against equal strength opponents as a reminder, not when it feels stronger) to remain in phase as much as possible- presumably because it values not taking damage above dealing damage. That's the only thing I can think of right now because a player can cycle through 3 weapon groups like that before the phase cooldown is done (considering one is flux free and the other is maybe 10% when the AI only has 10% of their max currently in use.) and still phase away after the burst has done serious damage to the enemy.
(So, essentially the behavior I'm seeing affects all strike weapons including energy and ballistic and seems specifically tied to how phase AI handles the STRIKE tag)
Ah, hmm. Right - I think it's probably that; the AI isn't aware enough of high-level concept to know stuff like "I should burst everything possible now while phase cloak is on cooldown". And it's not super fast as far as switching between weapon groups - and it likes to be careful aiming dumbfire missiles and torpedoes - so that wouldn't play nice with having a 2-second window.
Phase ships *do* get more aggressive as their peak time runs down, btw; basically they estimate how much damage they're likely to take if they unphase (dps of the various weapons that can be brought to bear, combined with their armor, dps damage types, phase cooldown duration), and the threshold for how much they're willing to take goes up as peak time (and then CR) goes down. So it's not to do with their weapons, but with how willing they are to unphase given the firepower they'll face when they do.
Hmm. There are definitely some issues with how willing phase ships are to engage/how well they do it when they come out of phase. Hopefully I'll get a chance to look at it at some point.
thanks @alex, hopefully in 'distant' future there will be more 'safe' threading possible
especially with the mainstream hardware progress toward multicore counts
Honestly, probably not
I don't see trying to make the codebase thread-safe (complicated, time-consuming, error-prone, etc), and it feels like optimizing for a high core count is not optimizing for the right case, anyway - it seems like you'd want your optimizations to help on the low end, not on the high end.