- Joined
- Sep 14, 2017
- Messages
- 666
- Reaction score
- 928
So, Weapons 3.0 brought use some serious projectile speed optimizations, which are pretty cool, but in the process, AMS seems to be broken. My first assumption was that this was just an issue with AI not working, but based on various observations, I believe it is a side effect of how fast things are. Turrets often do not seem to be able to track fast enough to follow a missile, and even if they could, there is the secondary issue of lag displacement being massively amplified at higher speeds.
What this means is that in the past, if X amount of lag would cause a cannon's trajectory to have +/- 2m margin of error, with things moving 10x as fast, that same amount of lag creates a +/- 20m margin of error making everything miss wildly.
The idea here is to make AMS a pre-calculated hit/miss probability rather than follow true intercept physics. Instead of cannon-cannon turrets being AMS, make a new weapon primitive called AMS that will fire at missiles (and maybe mines?). It would look like a cannon-cannon or possibly a beam, but instead function very differently. Basically, if a missile is within its gimbal area, you just calculate a chance to hit based on how far away it is... you either hit, or you don't. With bullets and missiles both flying around at mach-26, no one is going to actually be able to tell if those bullet graphics are actually hitting the missiles or not anyway.
Appart from fixing the accuracy issues, this should also see a massive improvement in game performance since you only need to calculate to hit once between one output and one missile instead of having to run continuous hit tests for as long as each bullet is in the air.
[EDIT] After further consideration, I feel a specialized weapon block is likely unnecessary. This behavior could instead be initialized by the AI as an alternate behavior when firing at blockless entities: missiles, bombs, mines, etc.
What this means is that in the past, if X amount of lag would cause a cannon's trajectory to have +/- 2m margin of error, with things moving 10x as fast, that same amount of lag creates a +/- 20m margin of error making everything miss wildly.
The idea here is to make AMS a pre-calculated hit/miss probability rather than follow true intercept physics. Instead of cannon-cannon turrets being AMS, make a new weapon primitive called AMS that will fire at missiles (and maybe mines?). It would look like a cannon-cannon or possibly a beam, but instead function very differently. Basically, if a missile is within its gimbal area, you just calculate a chance to hit based on how far away it is... you either hit, or you don't. With bullets and missiles both flying around at mach-26, no one is going to actually be able to tell if those bullet graphics are actually hitting the missiles or not anyway.
Appart from fixing the accuracy issues, this should also see a massive improvement in game performance since you only need to calculate to hit once between one output and one missile instead of having to run continuous hit tests for as long as each bullet is in the air.
[EDIT] After further consideration, I feel a specialized weapon block is likely unnecessary. This behavior could instead be initialized by the AI as an alternate behavior when firing at blockless entities: missiles, bombs, mines, etc.
Last edited: