Mouse Input Lag - Struggling for years with this engine
ball2hi
Join Date: 2012-10-22 Member: 163128Members
I'm not sure what the issue is, but I can't seem to be able to solve it and am looking to solve this issue so i can hopefully play the game better.
I've played this game for years and participated in a low-end team during Season 4, and became one of the stronger fraggers on that team. I would say that this game single-handedly made me incredibly great at FPS games in general due to it's intense aiming and positioning mechanics. Still though even when I played I always suffered from one thing that made me quit the season... Lerks. I absolutely can not shoot Lerks. They are so small and fast and unpredictable so I have to either catch one off-guard or track it in real time rather than predicting a path like every other life-form. The problem here is that when it comes to tracking in real time for me in this game it's near impossible as I feel my mouse just doesn't keep up.
DXDiag - Pastebin Link
List of mice I've used/owned for NS2:
Razer Deathadder 3.5g
G400
G402
G502
Zowie FK2 (current)
List of GPUs used/owned for NS2:
GTX 480
GTX 760
R9 280
RX 480 (current)
List of CPUs used/owned for NS2:
i7 4770k
i7 4790k @ 4.5GHz (current)
Though NS2 defined and bettered my aim across all FPS games, I frankly, have trouble aiming in it compared to other FPS games because it just feels like my mouse is floaty/unresponsive. Outside of a few games like Evolve or console-ported games, I aim really damn well in almost every engine.
Left4Dead 2 - Vertical Sync using RivaTuner FPS cap
Left4Dead 2 - No Vertical Sync or FPS cap
I can't aim like this in NS2, at all. Regardless of whatever FPS I get in Left4Dead 2 I am still able to aim marginally as good as in those videos, and in NS2 I can get around 80 - 160 fps but even then I have trouble shooting the simplest of things. I've tried raw input on or off, made sure acceleration is off, different polling rates and DPI, sensitivities, different graphic options, different resolutions, and different flip queues(max-prerendered frames). I'm not sure what is the cause of my amateur-like aim in NS2.
I can aim a hell of a lot better than this -
Highlight from 2014 in scrim:
I've played this game for years and participated in a low-end team during Season 4, and became one of the stronger fraggers on that team. I would say that this game single-handedly made me incredibly great at FPS games in general due to it's intense aiming and positioning mechanics. Still though even when I played I always suffered from one thing that made me quit the season... Lerks. I absolutely can not shoot Lerks. They are so small and fast and unpredictable so I have to either catch one off-guard or track it in real time rather than predicting a path like every other life-form. The problem here is that when it comes to tracking in real time for me in this game it's near impossible as I feel my mouse just doesn't keep up.
DXDiag - Pastebin Link
List of mice I've used/owned for NS2:
Razer Deathadder 3.5g
G400
G402
G502
Zowie FK2 (current)
List of GPUs used/owned for NS2:
GTX 480
GTX 760
R9 280
RX 480 (current)
List of CPUs used/owned for NS2:
i7 4770k
i7 4790k @ 4.5GHz (current)
Though NS2 defined and bettered my aim across all FPS games, I frankly, have trouble aiming in it compared to other FPS games because it just feels like my mouse is floaty/unresponsive. Outside of a few games like Evolve or console-ported games, I aim really damn well in almost every engine.
Left4Dead 2 - Vertical Sync using RivaTuner FPS cap
Left4Dead 2 - No Vertical Sync or FPS cap
I can't aim like this in NS2, at all. Regardless of whatever FPS I get in Left4Dead 2 I am still able to aim marginally as good as in those videos, and in NS2 I can get around 80 - 160 fps but even then I have trouble shooting the simplest of things. I've tried raw input on or off, made sure acceleration is off, different polling rates and DPI, sensitivities, different graphic options, different resolutions, and different flip queues(max-prerendered frames). I'm not sure what is the cause of my amateur-like aim in NS2.
I can aim a hell of a lot better than this -
Highlight from 2014 in scrim:
Comments
Shooting lerks for example is not easy against the better lerks. The best thing you can do while you're trying to get better at shooting lerks is to not shoot (or barely shoot) when the lerk is dodging. When they are doing the crazy movement/up-down movement just avoid shooting or do quick burst fire. Unload/fire into the lerk when they go for a bite/straight line. If you waste your ammo when a lerk is dodging, you're in trouble. Doesn't mean you can't go for the kill when they are dodging trying to leave, remember the pistol does good damage against an alien without armor left.
Another thing you can try against lerks is getting to a wall or corner (strafe jump quickly to that position) of a room and crouching so the lerk has to travel far to bite you. It also might keep your aim more centered if you're at a 90 degree room corner. This has the negatives for the marine of not being able to dodge/strafe, but lerks are scared of consistent fire into them. So best times to shoot lerks - when they are spiking or going for a bite or straight lining. Worst time to shoot a lerk - when they are dodging and they aren't really hurt. If you can still hit them with burst fire go for it, but don't waste your ammo - lerks love that.
Shooting lerks is not the issue here. It's the fact that my mouse seems to lag behind and not keep up with the Lerk where in other game engines I can fire at things that move as fast as lerks just fine. Please read my post/watch my videos for better examples.
I am not a newbie...
I've messed with so many of them. Nothing seems to have gotten better.
vertical sync (which is off)
windowed fullscreen mode (fullscreen is the one that works best)
and you should set to directx9
If you got that already then I can say that I needed to disable mouse acceleration in 4 different areas for it to work in ns2 which are:
Windows settings
Registry files
Mouse Driver
NS2 menu
well if you have that on other games aswell (which I doubt) it can also be a problem with the screen being too slow
This is all I can think of atm
I had a similar issue a while ago, here's the thread where I discussed and managed to resolve it: http://forums.unknownworlds.com/discussion/132776/mouse-input-lag-based-on-fps/p1
It had something to do with the way the mouse was sending data to the CPU.j
Update:
Somehow I managed to not post my solution within that thread... so I'll figure something out and get back to you.
found it:
http://forums.unknownworlds.com/discussion/131701/microstuttering-input-delay-fixes-to-try it's in this thread, by Obraxis.
Update:
that file is gone, never to be seen again. I found this: http://www.ngohq.com/news/15043-how-to-increase-usb-sample-rate-in-windows-vista-7-a.html
but you use it at your own risk as I haven't checked it at all.
@Ironsoul
I'll look into that, but that would be weird. Windows 7 locked at 125hz, but how come my 500hz and 1000hz options are noticeable more responsive (in any game or on desktop)?
It seems I'm not really having issues maintaining over 125hz polling rate.
In the sprite hardware era, games literally chased the beam; things were drawn by specialized raster hardware exactly when the beam passed that point on the screen. Even at just 60 FPS it felt very responsive; it did not look entirely smooth, but the resolution was so low that there were bigger fish to fry.
Then came systems like the amiga which utilized a blit and framebuffer and the IBM PC which rendered everything in software. This added an additional half frame of latency on average and things became a lot iffier. Then came early 3d hardware; we went from double buffering to triple buffering (real triple buffering like openGL does it, reduces latency; frames which have not been shown are discarded if there is a newer frame at vsync time).
Direct X uses flip queues, often three or more frames deep; frames are never discarded until they have been shown; when the framerate exceeds the refresh rate, frames pile up, the queue gets full and frames sit around waiting through several monitor refreshes to be shown. It feels terrible; it's no longer possible to play games with vsync unless you can guarantee your framerate won't be too high or too low; or you use adaptive sync (e.g. gsync) and set it to turn vsync off if your framerate goes too high.
Games designed for single core CPUs did all the work in one frame. First you take input and update the world, then you render the world, the graphics driver takes your commands and instructs the GPU what to do and then you do it all over for next frame.
Then came multicore. To extract more parallelism and make use of multiple cores, the workload could be split across several frames! Instead of processing one frame at a time, they can be pipelined; resulting in significantly improved framerates and terrible latency.
Thread A is working on frame 5, taking input, doing physics, updating AI.
Thread B is working on frame 4, issuing all the commands to do rendering to the driver.
Thread C is working on frame 3, interpreting the commands in the graphics driver and instructing the GPU what to do.
GPU is rendering frame 2 from a buffer of commands issued by the driver previously.
Display is showing frame 1.
Thread A, B and C all run at the same time, so they can independently use CPU cores. A frame moves through each of the pipeline stages like an assembly line.
It's certainly possible to do this with much less latency and there are many clever tricks. Since aiming is the most latency sensitive thing, you can do mouse look and hit scan weapons on thread B in the example above; updating only a small part of the world state. You can't react to being shot in one frame anyway, so the monsters do not need to know that they have been hit until the next frame. Online things get complicated very quickly (it would be very easy to accidentally do hit detection on the state that existed in thread A, while the view and hit prediction on the client is as from thread B; AKA terrible hit reg).
VR needs < 20 ms latency or you make people physically ill without having any drastic unnatural movements; just from latency issues alone. You can do this, but you leave performance on the table so most developers for monitors don't; you end up needing 144 FPS to get the same lag free experience 60 FPS used to provide.
---
As for you fixing it, instead of the NS2 developers fixing it. I don't think there are any easy fixes. There are some hard things you can do to alleviate the problem a little bit. Only the developers can concievably reduce the number of frames it takes from pushing a button to showing the result on your screen, but there are additional latency sources you can reduce.
You can get the highest framerate you can (better hardware or uglier game; pick one). A frame at 60 FPS is 17 ms, at 100 FPS it is only 10 ms.
You can avoid windowed mode (even borderless 'fullscreen' windowed) toghether with aero, which supposedly adds another frame of latency.
Vsync is obviously terrible, but you already have it turned off.
You can find a better monitor. This one is huge. Response time is not what counts; display lag is. LCD monitors have between 10 and 100 ms of latency from internal buffering; where the 30-100 ms segment is mostly TVs and 10-30 ms segment is monitors. Good gaming monitors are usually in the 10-15 ms range. At 100 FPS, 30 ms is 3 whole frames of latency! If the game is super responsive, you might not easily notice 15 ms extra latency; but on a game that's already kind of laggy, it's bad.
Do you have hyperthreading enabled?
Do you have speedstep (or equivalent) enabled?
Do you have any Ambient occlusion settings enabled?
Do you have have fullscreen windowed enabled?
Do you have anything other than DX9 fullscreen enabled?
Do you have Windows Aero enabled?
Do you have any Vsync settings enabled either in game or in your graphics options?
Do you have the maxfps cmd active? Or any other 3rd party FPS limiter? (any will introduce input delay)
Do you have any overlay apps active like MSI afterburner or Riva Tuner? (they dont play well with NS2)
Do you have any custom Max rendered ahead frames set in your GPU driver profile for NS2? (keep it default)
What is your monitor brand and model?
Keep your polling rate no higher than 500... as spark seems to have issues with 1000 hz polling occasionally dependent on the CPU.
By default you should be getting input delay equivalent to quake 3/live ... 3 frames buffered. Which is pretty low.
Yes.
I'm not sure what this is?
Yes, but I have played with it off. I notice I aim better with it on since Skulks are easier to see.
Fullscreen, always. I do have 2 monitors though.
What do you mean, like windows applications? I livestream and have a bunch of apps open, but I have played NS2 without anything else but NS2 open and it still feels sluggish.
No.
No, it's disabled and I only use it for tournament streaming.
RivaTuner is currently active but doesn't hook onto NS2. Maxfps is by default 200 set by the game engine.
MSI Afterburner isn't an overlay, RivaTuner is. I'll disable it but I doubt it'll make a difference since I've played with it off.
I've used default, 1, and 3.
ASUS VH238H - Newegg Link
I can't aim as well without 1000hz.
I've played a tiny bit of Quake Live on steam, and Natural Selection 2 definitely does not feel as responsive as that game. I can make a video comparison of how snappy my aim is in Left4Dead 2 versus NS2 if you wish (I don't have an external camera, so it'd be showcasing game footage).
Always use raw input (with no mouse accel) Try disabling it temporarily.
It's Intel's bios setting where it automatically downclocks your CPU when it's not being fully utilized in order to save power. Disable it, or any equivalent to it, in your bios.
Always play with it off.. don't even play with the medium setting if you care about input delay.
Any Ambient Occlusion inherently adds input delay. There's some white paper research about some new super fast "Alchemy AO" being developed (By Max's twin brother no less!) but so far it's only been tested in one unreleased indie game, and even then it still adds a few ms of input delay. Always avoid AO in any game if youre sensitive to input delay for the time being.
Just for shits and giggles, try disconnecting your 2nd monitor from the back of your PC, restart it, and test NS2 for a while..
Also when you are using two monitors, the non-primary monitor is completely black while in game, right?
No I mean the ingame graphics settings should only ever be DX9 Fullscreen and nothing else.
That being said, always ensure to close down any livestream background processes, apps or overlays.
Afterburner most certainly has an overlay option, and yes so does RivaTuner.
Disable both unless you are diagnosing something temporarily.
Well try to adapt. Even @Deck_ Reported having far less input delay yesterday after reading my post and switching to 500.
Spark doesn't deal well with that high of a polling rate, depending on your CPU.
Lastly, type r_stats in your console and walk around in a typical game.. does "Waiting for GPU" ever say anything over 0 ms?
I have always jumped between multiple games at random, and jumping into and out of NS2 never felt normal. I could jump between source/unity/frostbite/cryengine games without issue, and even into other more console ish engines. The only other engine that I felt had similar, but not as significant input issues, was UE3. The best way I could describe the problem was it always felt like something was dragging my cursor back while aiming.
In my findings I have the following:
0 Raw Input - Most responsive, least accurate and microstutters.
SourceGL - Intercepts mouse movements into it's software and sends it to the game. More responsive than 1 Raw Input but less accurate. Seems to cause microstutters during intense CPU usage such as streaming.
1 Raw Input - Least responsive, 100% accuracy. Assuming it's properly done in the engine.
If I ever get my hands on a 144hz monitor and a 1000 FPS camera, I'll make sure to record the difference some day. Right now however my only test includes a very thin object in which I have to move my mouse up and down it while strafe spamming. It's much easier to keep your crosshair centered on such object without raw input.
I'll temporarily disable it, but if this is the root of the problem then this is going to be a pretty big issue considering I spent extra money for an i7 to stream.
Oh, it's called C-States on my BIOS. I have those disabled.
I got it. I think the reason I find it's easier to aim with it on is because it makes the Skulks stand out during high motion, and I got a 70hz monitor so things can get a bit fuzzy during all this dodging.
I can do this, but again this would defeat the purpose because I got a 2nd monitor for streaming. Also no, my secondary monitor doesn't become black while I am in game. It never has except for temporarily when I launch my fullscreen games.
I'll try and do a completely empty test again. Does this include steam overlay as well?
I believe Afterburner uses RivaTuner to display it's overlay. Regardless, I've closed them.
I used both. 500hz felt more consistent, but I still felt like I was dragging my mouse which is how I always feel when using 500hz on any mouse.
Will do.
I best describe it as like a floaty experience, like my mouse just doesn't keep up with what's on screen and it's very frustrating.
It's just a feeling, but NS2 does feel like walking in mud when it comes to aiming, and comparing it to UE3 is spot on.
I might be more prone to having input lag thanks to my 30-40 fps; my rig is for development not gaming (i7+8GB, but only a gtx 630 with passive cooling)
180 fps just didnt feel the same like 180 fps in other games.
Im sure a FCAT benchmark would show these issues but cause the fact that thiis a costly and time consuming precedure noone ever did this:
http://www.guru3d.com/articles-pages/fcat-benchmarking-review,1.html
I asked the guys from guru3d to bench NS2 that way but never got an answer.
11 ms display lag - www.displaylag.com/display-database/
That's a good display in regards to display lag. 60 Hz is ugly, but does not impact input latency unless you turn on VSYNC.
I remember the early beta, where skulks warped around you and everything was stuttering in an unpredictable manner at inconsistent low fps.
But even there we had people that melted skulks easy.
One great answer that time was "Hey, i am an NS1 veteran".
Yep, that explains everything.