I am currently working on implementing something heavily inspired by what I know about how PA works and I just wondered: In what way does PA transmit bullet positions? For homing missiles I guess it isn't as easy, but looking at dox shooting I would say to correctly describe the full flight of a dox bullet it only needs the "starting parameters" of the bullets flight and a timestamp for when the bullet is to be removed. Everything in between can be interpolated based on the starting parameters, since the flight of a bullet is pretty deterministic from there. So how much curve changes are in the movements of a dox bullet?
We had a couple of people work on attempts at that over the development of PA; non-seeking projectiles just pass starting time, position, and velocity, and use the ammo spec to figure out the flight path. Send end time on hit. Unfortunately none of them worked quite right, and there were too many questions about what happens if the ammo definition changes on the client, etc. So, projectiles send all their positional information from the server to the client just like units.
Damn, that's a shame :-( I guess, getting rid of projectile curves would reduce network traffic considerably, assuming a single unit can spawn several projectiles in its lifetime. @cola_colin It is for sure worth a try, but just keep in mind that there are really subtle pitfalls, like the IEEE 754 floating point specification that gets differently interpreted on different platforms.
Projectiles take a good chunk of the bandwidth, and thus the server time, but are actually fairly cheap on the sim. Unit pathing and AI take most of the sim cycles. That and if we did use the other method of passing information to the client it either wouldn't change the sim or would actually make the sim slower.
Interesting. I'll see if I can manage better, my scenario is *a little a lot* simplified in many aspects compared to PA