This post is meant for CCP devs. Please forward to relevant parties.
I was digging around the internets about mouse lags in Unreal Engine 3, and it seems that Dust 514 doesn't suffer from this problem alone.
Here is a summary of contributing factors to lag, and their fixes:
1. Jumpy framerate - irregular framerates, sudden framerate drops, they all make it harder to aim (because your vision of motions is disrupted).
Solution: A better and more responsive adaptive degradation to compensate framerate drops. Also see 3.
2. Data streaming - it means the game loads data while playing. Evident from the textures and polygons popping up. This loading contributes to performance issues and influences the framerate.
Solution: Turn this off, or limit how much system resources it uses.
3. V-sync - PC FPS players will know this. V-syncs add buffer frames to the output so you are always lagging behind by several frames, usually this must be turned off for competitve gameplay because it is a high contributing factor towards mouse lag.
Solution: Turn v-sync off.
4. Post-processing - Dust 514 definitely utilizes post-processing... look at the edges of polygons, the game definitely has some sort of sharpening filter going on, or maybe something else. Like v-syncs, post-processing adds buffer frames that will contribute to lag.
Solution: Turn it off.
5. Framerate smoothing - turn it off. Wait a minute, didn't you just say you want a smooth framerate? Yes, but the "framerate smoothing"
feature adds lag to the game. CCP you will need to achieve a more consistent framerate with other means.
Solution: Turn it off.
6. In Unreal Engine, "[...] mouse is done through the UI (scaleform) and not using a hardware cursor like most games. this makes it FPS-dependant so if the game runs slow the mouse runs slow too." (
Source) "Since the crappy unreal engine 3 (yes I went there) doesn't have hardware mouse support, you'll see the response time of the mouse cursor going down with frame rate." (
Source) This is disappointing. This means we will never see the day of having raw input. Dust is crippled by the Unreal Engine.
Solution: Maintain a good framerate and eliminate any framerate drops or fluctuations. Personally I think 24 fps is a good compromise - it is not hard to maintain an all-time 24fps (Dust is not far from that level of performance despite the fps drops) and 24fps looks somewhat acceptable to the human eye, although a bit slow and definitely cannot be compared with 60fps gaming.
7. Mouse smoothing - it adds buffers to your input (aka lag) so turn it off.
Solution: Turn it off.
8. Mouse acceleration - it destroys linearity and make movements inconsistent. Turn it off.
Solution: Turn it off.
9. Speed limits - "Jump suits limiting turning speeds" completely destroys smaller twitch movements (usually small adjustments while aiming). Only someone who has never played competitive shooters would suggest such a stupid idea. TURN IT OFF.
Solution: Turn it off. Review your design philosophy, CCP, do you want this little RPG gimmick ruin the FPS gameplay? It is definitely not worth it.
10. "Enter OneFrameThreadLag.... what is this, you say? I'm not sure, but it has something to do with the mouse lag in Unreal 3 games. Go into the BaseEngine.ini file in the config files, find the variable OneFrameThreadLag, and set it to "False"." (
Source) This seems highly relevant. Perhaps CCP forgot to turn it off when they release the game.
Solution: Turn it off. (Set it to false.)
TLDR: CCP you have too many things that lag the controls. These are all proven to contribute to lag in other games, and they are all well known to PC gamers who have access to those tweaks. Now that you know what is causing the lags, CCP you will need to simply eliminate them.
Remember, a game is about gameplay before pretty graphics. You game is sheet if it looks pretty but have laggy and jerky controls. Also, don't forget to fix your hitboxes and hit detection.