In general, for a peer-to-peer system, the bandwidth usage is:
out: R * (S + O) * (P - 1)
in: R * (S + O) * (P - 1)
For a client/server system, the bandwidth usage is:
client, out: R * (S + O)
client, in: R * (S * (P - 1) + O)
server, out: R * (S * (P - 1) + O) * (P - 1)
server,in: R * (S + O) * (P - 1)
R = send Rate (packets per second)
S = Size of data per player
O = per-packet Overhead
P = number of Players
As you see, client/server trades slightly more efficient client input (less pakcet overhead), and a lot more efficient client output, for a higher server output requirement. Exactly how this ends up mattering depends on your variables S, R and P. "O" is on the order of 40 bytes for Xbox Live! (there's some additional framing on top of the 28 bytes for UDP).
Note that what the others said is true: there is no reason to send full 32-bit floats for any value. For positions, you can probably get away with 16-bit shorts, quantized. For quaternions, you may even get away with 4 bytes (or, perhaps, 3 bytes, treated as Euler angles).
--
Jon Watte, Direct3D MVP
kW X-port 3ds Max .X exporter
14 days after getting my RROD box back, it's going back for service again. Grr.