Hi,
I’m working on a game where players need to avoid zombies in a maze.
I’m trying to get the best solution for collision detection between players and zombies.
At first I had server based detection, to see when a player hits a zombie. This is OK most of the time, but players with lag can be killed by a zombie that seems to be several blocks away on their screen, which does not feel good.
I’ve currently moved it over to be client based, it’s taken away the lag issues and game play is much better. However I’m worried that this would be exploitable.
I know the usual advice here is “double check on the server”, but I think often that is to stop people faking collisions that were impossible (e.g. shooting another player through a wall or hitting someone from miles away). That’s not the problem here.
I can’t see a good way to sanity check on the server for anyone who should have hit a zombie, but who somehow exploited to not.
Just to confirm, for the laggy players, I would want to give them the benefit of the doubt, so if on their screen they didn’t hit anything, I don’t want them to die. Even if the server thought that was a hit.
So the client side detection is behaving exactly as I want.
My concern is how to keep this, but prevent, as much as possible, it being exploited.