Keptick
Building masochist
While doing some missile tests with drones, I realized that there was a serious delay in missile explosions when there were enough missile hits per second (20+, so really not that much). This has always been an issue with the game, but it was even more so with the QF configs. I consulted schema to figure out what the problem was, and as it turns out, the QF configs had increased missile explosion radius to effectively "uncap" explosion sizes. However, with the way the game calculated explosions, that meant that explosions were calculated with a gigantic radius, even for the tiniest of missiles, making calculations incredibly inefficient. Faced with this problem, we decided to reduce explosion radius back down to 30 (default is 25). However, this still proved to be problematic, because it not only severely limits the amount of damage a single missile can deal, but it was also still inefficient enough that locking down explosion calculations on the average server still took only around 60 missile outputs, no matter the damage of the missile. So you could pretty much shut down missiles server wide with only 60 missile blocks (or 6 if using missile-cannon).
I came up with a fix and worked with Schema to get it implemented in-game. Now, as of the latest dev build, the explosion radius value used in explosion calculations scales with missile damage, in accordance with a new server setting. What this means is that each missile's explosion calculation will be optimized for that missile's damage. I tuned the new setting to optimize the explosion radius vs calculation performance. There will be 0 damage loss against blocks actually used in ships (systems, armor, etc), and extremely minimal losses against 25 HP block targets such as planets (the missiles will still do larger holes than they would against targets composed of higher HP blocks btw, so don't think you can start using dirt as armor).
The end result is that explosions calculations are now a lot more efficient, and it's effectively impossible to shut down explosion calculations on a server. Gone are the days where it would take 10 seconds for your missile hit to register just because someone happens to be spamming swarm missiles a half a galaxy away. In addition to that, missiles now have proper "uncapped" radius.
I did a lot of testing with the new mechanic, and can confirm that it works as advertised. For example, I spawned 200 missile drones and had them shoot a target. Each drone has a single missile output, meaning 200 missiles every 2 seconds. There was 0 delay in missiles registering hits and explosions calculating.
Note: There is still a soft cap of 64 radius on explosions due to how the game calculates them. Past that you will start losing damage efficiency. However, to reach such a radius against ship systems you need 110 million damage per missile, which requires hundreds of thousands of missile blocks dedicated to a single output (with QF configs). All in all it shouldn't be an issue.
Ps: Thanks to Zoolimar for pointing out math issues in the new radius formula that I originally gave schema (whoops). Those issues have been fixed as of the latest dev build.
I came up with a fix and worked with Schema to get it implemented in-game. Now, as of the latest dev build, the explosion radius value used in explosion calculations scales with missile damage, in accordance with a new server setting. What this means is that each missile's explosion calculation will be optimized for that missile's damage. I tuned the new setting to optimize the explosion radius vs calculation performance. There will be 0 damage loss against blocks actually used in ships (systems, armor, etc), and extremely minimal losses against 25 HP block targets such as planets (the missiles will still do larger holes than they would against targets composed of higher HP blocks btw, so don't think you can start using dirt as armor).
The end result is that explosions calculations are now a lot more efficient, and it's effectively impossible to shut down explosion calculations on a server. Gone are the days where it would take 10 seconds for your missile hit to register just because someone happens to be spamming swarm missiles a half a galaxy away. In addition to that, missiles now have proper "uncapped" radius.
I did a lot of testing with the new mechanic, and can confirm that it works as advertised. For example, I spawned 200 missile drones and had them shoot a target. Each drone has a single missile output, meaning 200 missiles every 2 seconds. There was 0 delay in missiles registering hits and explosions calculating.
Note: There is still a soft cap of 64 radius on explosions due to how the game calculates them. Past that you will start losing damage efficiency. However, to reach such a radius against ship systems you need 110 million damage per missile, which requires hundreds of thousands of missile blocks dedicated to a single output (with QF configs). All in all it shouldn't be an issue.
Ps: Thanks to Zoolimar for pointing out math issues in the new radius formula that I originally gave schema (whoops). Those issues have been fixed as of the latest dev build.
Last edited: