Btw: Firing weapons happens so often and with such low latency in an FPS, that reliable messages for that doesn't seem like a good idea to me. The really important events that need reliable packets are mainly main entity creation/deletion -- player spawn, death, perhaps health pack pick-up, etc.
Agree -> UDP :-) Also didn't Quake3 use some kind of repetition of previous game states (in each packet transmitted) with unreliable sends? Kind of best of both worlds.
They used input duplication (cl_packetdup), but not state duplication, as it's unnecessary.
Thanks, yes makes sense.