Bug Tracker – Bug 1019

Shooting players right when they die causes them to respawn with lower health

Last modified: 2013-09-30 16:49:29 CDT
Bug 1019 - (ARRAY(0x5e00cf8)) Shooting players right when they die causes them to respawn with lower health
(ARRAY(0x5e00cf8))
Shooting players right when they die causes them to respawn with lower health
Status: NEW
Product: Odamex
Classification: Unclassified
Component: Server & Client
0.6.x
All All
: P1 major
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2013-09-30 02:54:40 CDT by Ivan T
Modified: 2013-09-30 16:49 CDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan T 2013-09-30 02:54:40 CDT
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.
Comment 1 Dr. Sean 2013-09-30 16:45:20 CDT
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.
Comment 2 Dr. Sean 2013-09-30 16:49:29 CDT
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: ﷒0﷓  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.