Jump to content

Option for Client-Based NPC Attack Hit Detection


Recommended Posts

The Problem:
Currently in DST the hit detection for NPC attacks is based purely on the server. So, kiting is impossible for anyone with over 100 ping, and even with 50 it is a lot more annoying and inconsistent compared to local play. This essentially removes the core mechanic of combat in Don't Starve for laggy players, and makes combat very frustrating for players without a perfect connection. Many players before have complained about this, and generally the response they get is to tell them to turn off lag compensation. Ticking the option to remove lag compensation simply shows you how bad things are, without actually addressing this issue.

But Exploits!
Many users have previously argued that client-based hit detection opens the game up to exploits. Yes, it does, but the game's user-base primarily plays on smaller servers with active admins as well as limits on what users can join. Many people just want to play co-operatively with a known friend.

Most games with combat except MMORPGs just handle hit checks as well as NPCs on the client-side (although they are usually supplanted with sanity checks by the server). Project Zomboid, Monster Hunter being two examples of client-side hit-detection that come to mind, both of which have very sharp combat. Project Zomboid is a very good comparison, since both it and Don't Starve have very consequencial combat systems, and Zomboid's client-based combat system ensures that deaths are (almost) always fair. In a game where missteps and death has serious consequences for the player, and the opponents are mainly NPCs, it is beneficial to user-experience to focus on making the combat most fair to the player rather than to the NPC.

A Possible Solution:
A mandatory change now would be unfair to big servers which depend on server's control of combat to prevent cheating. This is why I believe the game would benefit most from an option on a server to allow clients to do the hit-detection check when an enemy attacks, such that your player's position on your screen with lag-comp on is what is checked by your client for the hit from the enemy. Large servers can remain secure against cheats by keeping the option set to server-side hit detection, and for people who just want to play the game with a trusted friend or group, they can set it to client-side and play the game and enjoy the full combat experience even if they aren't playing with <50 ping.

Caveats:
Because it could be introduced as an option, there would not be any downside to any users since it would be up to them to turn it on/off. However, for the developers this option may require significant changes in the code. I don't know what the code of the game is like, but I believe that a change could be done somewhat easily and without requiring a heavy re-write of systems.

Still, I think the benefits a change like this could grant would make the game's combat and the game in general a lot better for users who just like to play with friends, and would be worth it for increasing player retention. Don't Starve is one of my favorite games and I hate seeing that many times my friends get frustrated with the game due to the wonky hit-detection.

Edited by frootloopers
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
  • Create New...