Packet loss causes actions to not happen and that degrades the gaming experience. Some of it can be remedied and some of it can not.
If you shoot a bullet and that gets lost then there isn't much you can do. A lot has happened in that time, players have moved and shot more bullets. Only fix would be to make the game client authoritative and that is not going to happen.
Other stuff that gets lost is picking up and dropping items. It is very noticeable and disruptive to gameplay if you need to pick up or drop an item multiple times or do some other action.
I haven't looked into it but I assume DayZ uses UDP for communication. In UDP if packets get lost then they are lost, if packets arrive out of order then they are accepted out of order.
In the case of you dropping an item but that packet being dropped DayZ can do the following.
- Player drops an item
- Client keeps track that it has dropped an item and sent out packet
- An acceptable amount of time has passed and there is no confirmation from server that the player has picked up an item (500-1000 ms?). This can be dynamic depending on client ping.
- Client resends the packet, inside the packet it is indicated that it is a resent packet.
- Finally server receives packet after however many resends.
- If the item has not been picked up by anyone else during the packet loss and the player can pick it up then server sends packet to client telling them they have picked up item.
- DayZ has restrictions on distance of picking up items to combat hackers picking up items across the map. There should be a distance leeway to picking up items if they are done with resent packets. The leeway should be equivalent to the possible distance someone could have moved during the packet loss period.
- If server confirms packet loss then it can send out a packet to client to display packet loss symbol. Client can then take steps to fix their issue. It can be wi-fi, network issues between the client and server or the server can be bad. Because the validity of packet loss is not crucial then the client can indicate packet loss if they start resending packets.
- When client receives a corresponding packet for their resent packet it stops resending that packet.
This should be done for all actions that make sense.
Off the top of my head that is dropping and picking up items. Crafting items. Interacting with items in the world like doors, wells, snow, fishing, garden plots, getting into cars.
It will improve player experience.
It will allow issues to be noticed and fixed that have nothing to do with client or server software.
Over time it will take blame off of the game and devs of being bad and will improve the reputation of the game and game studio.