So, I’ve been reading through many posts about client or server sided hitboxes, and I still don’t know which one is better for my situation. I have a fast paced fighting game with hitboxes that uses Spatial Query (GetPartBoundsInBox). My game goes from Client Key Input to Server, which then hitbox detects (server) to then loop through and use a damage module on each enemy. I also Fire to all Clients to do VFX, SFX, etc.
With a lot of testing, I’ve found that the server delay or server hitbox detection is not too bad when everyone is at good ping. Rarely hitboxes can be a bit wonky, and with high ping players they usually cannot hit well with delays and get hit more often, they are at a bit of a disadvantage.
My question is, should I switch to client side hitboxes in the future and will it boost performance, and how? This will also take time, as it will complicate and reshuffle my order of VFX SFX and attribute setting, as I would have to fire to the server around 3 times, one for setting attributes, one for client hitbox detection to server, and one with waits and endlags, and CDs.
I’ve also heard from people who side with server hitboxes say that doing client hitboxes will just benefit laggy players and cause fast players to suffer. If a high ping player cast a hitbox on a low ping player, wouldn’t the low ping player see the hitbox being inaccurate or reach way farther than it is? And if I do a sanity check on the server with magnitude or something, aren’t server positions delayed or inaccurate to the client positions, and wouldn’t doing server hitboxes be the same then? Wouldn’t fast players just suffer more in client sided hitboxes? I honestly don’t know what to do, people will probably just say do client hitboxes but I need to know how it would actually help with performance, and if it actually works. I haven’t found any reasons other than “client is faster.”
Chart I saw from stef0206:
I’ve also heard about Instant Feedback on client hitboxes which is nice, but wouldn’t SFX and VFX have to go to the server anyway to then fire to all clients so that everyone can see and not just the player?