New Feature – High Precision Mouse Input (Gameplay Option)

Hi everyone! I’m Derek, a gameplay engineer on Overwatch and wanted to run through this new feature in version 1.42, and exactly what it does and how it works.

First, a quick summary on how aiming and shooting happens in Overwatch. Overwatch simulates (or ticks) every 16 milliseconds, or at 62.5Hz. Each tick, we update the players aiming direction based on whatever raw inputs we’ve received from the mouse hardware since the previous tick. If the player has pressed primary fire, we then launch their shot in that direction (assuming they are alive, have ammo, aren’t in the middle of some other action, etc.)

Despite this being a conventional way of handling mouse input in a first-person shooter, we wanted to do better. Many gaming mice these days support 500Hz, 1000Hz or even more in terms of polling rates. At 1000Hz, this means the mouse movement done between game ticks can be done by as many as 16 discrete mouse movements delivered from the hardware. An example here may help.

This is a simulated flick in Overwatch. By simulated I mean uniform mouse movement per mouse polling frame, which isn’t how humans move a mouse, but is helpful for purposes of explanation.

From above, here’s what it looks like:

The white lines are where the player’s aim direction is pointing every 16ms.

Now we add in red lines, drawing where the player is aiming after every received mouse input @1000Hz:

With the new High Precision option enabled, projectiles can now travel down any of the red lines! This means you can also functionally shoot between rendered frames (or at high fps, on rendered frames that are in between ticks):

Some additional things worth noting:

This will not change how it “feels” to look around. Looking around will feel the same as it always has, since the final rendered view always took into account any and all raw input messages received from hardware prior to that frame.

Enabling this option does come with a small CPU cost overhead.

Subframe aiming only takes place when a mouse button is either going down or up, and only when using primary or secondary fire. Ie: Holding down primary fire for tracking type weapons will not have any changes to how it behaves.

We hope you enjoy this new feature! We’re always reading and looking for feedback, so please let us know what you think!

208 Likes

Mindblown Hopefully it helps me get out of bronze :rofl:

64 Likes

I have a Logitech G Pro Wireless so can’t wait to try this out, thanks :smiley:

19 Likes

This is great! I commend the effort here and am stoked to try this out. Any plans to bring average user latency down anytime soon? I’d love to see a few new hosts to accompany the new sequel.

19 Likes

This is honestly pretty amazing in it’s own way, and am very keen on trying this thoroughly!

On a related note, Derek, do you happen to know how the gameplay engineers view users using 400fps in-game via the settings.ini file? I am especially wondering this as this seems like it would interact with that, and I wonder how the server would interact from receiving “off-paced” inputs…? I’m not certain how this has been implemented on the networking side of things, and ideally nothing will impact it at all, but felt worth asking.

Regardless, I appreciate your efforts working on this!

23 Likes

So will this give an advantage over those people who choose not to/cant use this feature?

Is this a must have mechanic to stay competitive?

Does this also buff snipers more so than other heroes?

7 Likes

i just climbed to silver with healers, still stuck in bronze with DPS and tanks. I hope so too.

3 Likes

Hello fellow gamers!

1 Like

So this does not affect console players i assume?

3 Likes

So that’s why I was missing all the shots

13 Likes

Thanks for this update I just got a 60 hz monitor do i need to get a 1000 hz for this to work? Thanks!

3 Likes

No, this will only effect your mouse and CPU.

2 Likes

so how do you activate it?

I don’t see it under ‘Controls’

Edit: Nvm it’s under gameplay. So how do you modify it? I am using a corsair mouse so do I go to iCue to modify polling settings? Or is it best done within WIndows?

1 Like

My understanding is that this really doesn’t change much of aiming. The only way I can see this helping at all is for latency reasons or helping no reg issues.

5 Likes

This is so good, buffs everyone who has good aim and flickers too
tyyyy

3 Likes

it really helps all fast shooting and beam heroes

2 Likes

How did you activated it? I can’t find the option.

2 Likes

I’m really curious how this is actually coded. Been thinking about this for 10 min and still not grasping it, and beam weapons aren’t making it easier.

Coming from mostly C#/Unity, the best I can think of is that input calls, rather than running intertwined with normal rendering updates, instead runs independently with its own special update function that simply runs at higher frames. Seems like too simple of an explanation though.

4 Likes

I dont really understand what this saying. Can someone reword it for me in English? :slight_smile:

4 Likes