Networked game collision detection (overlap events) and hit sounds
I am currently working on a networked game with swords. Since the server is authoritative it makes sense that collision detection of any sort should be done on the server. I was wondering if my solution for playing sounds when being hit (or hitting somebody) make sense.
I check for an overlap between the weapon (a sword) and the mesh of a character. OnBeginOverlap I apply damage (if HasAuthority()) and play the right sounds. The problem is that I reset to server state once I receive it (and do client side prediction) which constantly moves a simulated proxy, even if the position doesn't change. This triggers the Begin and EndOverlap events each time the character gets an update, causing the sounds to be played very fast and a lot too.
Right now I have solved this by just completely moving the collision to the server and checking the server state if damage was received and then playing the right sounds. This works as intended, but when lag is turned on you can literally hear the lag.
Is there a way to circumvent the problem with overlap events so that I can simulate the collision on the client side ? Should I even try to do so or is my setup right now acceptable? I was thinking of games like CS:GO but those are a little different, you don't constantly hear when you hit someone, and when you are being hit it is fine anyway since that is in sync with the lag.
asked Mar 13 '18 at 11:16 PM in C++ Programming
Follow this question
Once you sign in you will be able to subscribe for any updates here