Leopardi wrote:I think you just didn't hit. It's the bf2 engine messed up hitboxes, the more your ping is, the more you have to hit BEHIND the target to catch up with the hitboxes, or it will not register the hits to the server.
This is true. The client (in it's infinite wisdom) always over-compensates for your ping by adjusting the visual aspect to the actual projectile. This leads to your client to say "w00t, I hit the guy" and give the appropriate graphic (in this case some sparks) but the server says that you missed and no damage is taken off your enemy. So you see the sparks bounce off his hull but he flys away undamaged. This bug is very apparent while flying jets in BF2, as it is near impossible to shoot down the other plane with just your guns. Same thing.
The only way to know for sure that you hit the other ship is if you get the gradient circle in the middle of your reticle (aimer). This means that the server has registered that you hit the other ship. Once you know where the sweet spot is, you can adjust your lead time accordingly and really start to own everyone on the space map. 
Unfortunately there is nothing we can do about it. We are stuck with it until we can figure out a better workaround, if we even can.