Shooting players right when they die causes them to respawn with lower health
If you shoot players who have just been killed by another player and they respawn right away, they will still take damage from the player's shot. I have been told that this is a client issue and that they are actually at full health, but can someone confirm this? I haven't been able to extensively test it.
I have analyzed several netdemos of this nature, mostly from players who tend to have connection quality issues. Based on the analysis of the netdemos, it appears that the following sequence of events happens:
*The server sends the client a message that their player received damage, say in packet 100.
*In packet 101, the server sends the client a message that their player has died.
*The player was anticipating they were going to die and were holding down the +use button to quickly respawn and in packet 102 the server sends the client a message to respawn the player.
*The server notices that packet 100 was lost and thus resends the data in the packet.
*The client then receives the first message that the player was damaged after it was resent and after the player had already respawned.
Addressing this bugs and similar ones is something that will require more robust network serialization architecture, which is being addressed in the net3-base branch.
Some additional information on how Odamex is going to change the architecture can be found in this paper: http://www.pingz.com/wordpress/wp-content/uploads/2009/11/tribes_networking_model.pdf The section on Ghosting (also called Replication) describes how the server sends the actor variables that have changed since the last acknowledged packet, eliminating the need to resend missing messages and avoiding the issues mentioned in this bug.