Garrett Blacknova wrote:The mechanics behind hit detection and registration have been known for quite some time, and to put it bluntly, you're flat wrong.
The problem is nothing to do with a direct randomised "miss chance" built into lighter suits.
The problem is that you're used to client-side hit detection, and DUST handles everything server-side.
Client-side hit detection: The server (or host in player-hosted games) just passes information back and forth between players. If you see an enemy and line up a shot on a target, when you pull the trigger, your copy of the game (a.k.a your client) tells the server/host "I fired in this direction. It hit this person" and the server passes on the damage to your victim. In laggy games, the laggy players will fire shots after they should have already been killed, and the server will apply the damage. Non-laggy players will be able to run through an exposed area, but die a few seconds later to shots that were fired by someone who can still see them because of lag.
Server-side hit detection: Instead of letting the (more easily hacked/modded) client to determine everything, DUST handles most things via its server. When you move, your client tells the server, "I'm at X position, moving in Z direction at Z speed" and the server checks the details based on your suit's capabilities, then reports back to you saying "you end up here" - sometimes you'll get teleported from one place to another if the server doesn't verify a turn you made, or decides your client had you moving too fast or sprinting for longer than your stamina will allow. When it comes to firing, all your client provides is your position, the direction of your shot, and a timestamp. When the line produced by a hitscan weapon meets a target, that target has damage applied by the server. If the server and your client see an enemy in two different positions, it doesn't matter how many bullets you fire or how "perfect" you THINK your aim is. What matters is that THE SERVER doesn't see the target in the same place.
Aim assist throws a spanner in the works a little, because it adjusts your aim to match the server's detected hitbox, rather than your client's rendered character model. As a result, you'll occasionally see your aim focusing a short way ahead of (or behind) a moving target to match what the server is seeing rather than focusing on what your game client is rendering.