Tuesday, November 24, 2015

Introduction to Mouse Accel for competitive gaming

Hey guys,

So, this blog will be about mouse acceleration and how it's actually a good thing for competitive level gamers.  I'm not talking about Windows "enhance pointer precision" or any mouse manufacturer's settings for mouse acceleration - they are all absolutely terrible and should never be used.

As a quick background, the first "good" acceleration (to my knowledge) was from Quake 3.  You could set a console variable to determine how much linear increase your sensitivity raised based on how fast you were moving your mouse.  Notably, Quake 3's mouse accel was independent of frame rate.  Many games that implement mouse accel fail to make it consistent when your frame rate flucuates, so you should avoid it in most titles.  Years down the road, QuakeLive added two other variables related to mouse acceleration that made it more than just good: an offset, and a sensitivity cap.



With an offset, you can specify that your mouse should feel like it has no acceleration when moving slowly.  Admittedly, I'm not using an offset these days, but it helps people ease into the world of mouse accel.  With a sensitivity cap, you can specify that your sensitivity should stop being raised past a certain point.  This means that in an FPS you can maintain your muscle memory for how much it takes to do a 180 degree flick and still tweak your sensitivity for the purposes of long to medium range tracking.

The options available in Quake3/QuakeLive were enough to have more than half of the top level pro players use it.  But, it was limited to just those games... until povohat wrote a driver that gives the same mouse acceleration options available to anyone in any game.  This blog is about that driver - installing it, configuring it, and any updates on it.  The driver has been available since 2013, but it is only recently picking up in popularity.  I'm finding myself answering a lot of the same questions over and over (it's very cool that people like the driver, but it's taking more of my time than I'd like - hence this blog).

And to introduce myself: I'm KovaaK.  I wrote the GUI to the driver that shows the curve of your mouse sensitivity and lets you save/use different profiles.  In gaming, I'm best known for playing QuakeWorld and Reflex competitively and my Youtube channel where I put out content teaching people how to play said games.

19 comments:

  1. This is awesome, it's working perfectly for me under Windows 10.
    One question (and sorry if you've answered this elsewhere) but what units is the mouse movement per update axis using? Is it the number of "dots" as in dpi covered in a single update?

    ReplyDelete
    Replies
    1. It is indeed the number of dots per update. There have been requested to convert that axis to something like "inches/sec" or "cm/sec", but it would be a little funky. Still, I might do that in the future...

      Delete
  2. Great software! but what numbers are valid for the "angles" parameter as I have tried numerous variables and still not getting the desired effect.

    ReplyDelete
    Replies
    1. I keep my "angle" at 0. If you try to move your mouse perfectly left/right and see that your cursor isn't going left/right on the screen, that's a good time to tweak the angle variable. At the extreme, set it to like 45 to see what it does.

      And AngleSnapping is useful for drawing straight lines, but not so much for most games.

      Delete
  3. Hello KovaaK & povohat!

    I'm glad to have found you, and with you this unique driver. I'm excited to try it out, but at the same time I slightly feel anxious, and would have a question:

    Is there a way to pause the driver, for example when tabbing out of a game? While I'd love to have linear scaling in First-/Third- Person Shooters, I'd prefer to keep my old settings for the desktop.

    ReplyDelete
    Replies
    1. Currently, I have an option in the GUI where it can automatically change profiles based on if an exe of a given name is running or not. So it would change when you run the game, but alt-tabbing would have it still on the game profile. I was thinking about making an option to have it only care about what exe has focus (pretty much what you are asking for), but I have been pretty busy lately.

      There's also an option to have global hotkeys change your acceleration profile, so you could have ctrl+F1 turn on accel and ctrl+F2 turn it off, or whatever you want.

      Delete
  4. I'm afraid to install this. Have anyone reported VAC bans with this ?

    ReplyDelete
    Replies
    1. So far, I haven't heard a single report of someone being banned from VAC, PB, or any other anti-cheat vendor due to using this driver. I also sent out emails to each of the major anti-cheats, but didn't get anything back from them in response.

      Delete
  5. Hello! Very nice I would love too try, im pretty consistent with cs:go accel in testmaps so i guess i must love this!

    I guess by now we can say it
    Is totally safe of VAC? Or could it be that not enough cs:go players tested or use it?

    ReplyDelete
    Replies
    1. At this point, I'm quite certain VAC isn't going to cause any problems. ESEA is finnicky in that they don't allow you to use Test mode for the old version of the driver, but there have been a lot of reports of people using the interception driver in ESEA without issues.

      Delete
  6. hey Kovaak :)

    are maybe some updates planned or incoming ?! :D

    greets abraxas

    ReplyDelete
    Replies
    1. Nothing planned at the moment. Too busy with other things in general. Sorry.

      Delete
  7. I don't usually post on these types of things but may I just say thank you so much for this. I played ut99 for years since 2001 and not since before ut4 came out have I found a ut that was comparable to the look and feel of the original but since it uses raw input and the mouse accelleration in game is broken, I had not been able to play anywhere near the same skill level and it was really frustrating me! Thankfully, I found this driver. It will take some experimenting but I firmly believe I will get my shot back, thanks to you. I played once since installing it and am already playing much better. Thanks again!

    ReplyDelete
  8. Do you change the driver sensitivity to your quake sensitivity if your playing other games? For example if my sensitivity in quake is .8 and I want that in overwatch should I change the driver sensitivity to .8 or try and find the cm/360 conversion from quake to overwatch?

    ReplyDelete
    Replies
    1. I leave the "sensitivity" variable at 1. I found out povohat added that variable so people coming from QL can more easily copy their settings into the driver without doing any manual calculations (or using the utility I have on the blog to convert).

      Once you've got your driver settings correct, assuming you have m_pitch and m_yaw at the defaults (0.022 or -0.022 for invert), then all you need to do to get the same sens in Overwatch is take your Quake sensitivity * 10/3. I use 1.15 in Quake, which is 3.88 in Overwatch.

      If you don't have m_pitch and m_yaw at their defaults in Quake, then you'll need to move those adjustments to the driver's post-scale variables. I think what you do is multiply post-scale x by and set m_yaw to 0.022. Then multiply post-scale y by and set m_pitch back to 0.022 (or -0.022 if you use invert). I'm not sure how that affects accel/sens cap right now because I've been working 60 hour weeks since the last week in September, and my brain is fried ;p.

      Delete
    2. How does DPI affect all of that?

      Delete
    3. It's pretty much a multiplier to post-scale, acceleration, and offset. I.e.: if you double your DPI, you can get the same effective mouse accel curve by dividing those three values by two.

      Delete
    4. Oh really, even dividing post x and Y by the dpi multiplier?

      Delete
    5. I find that's the best way to get the same sensitivity. Either you have to change it there or you change it on pre-scale, which affects things quite strangely (especially if you are using a power). Again, the "sensitivity" variable is only for mimicing QuakeLive settings - it doesn't actually change your effective mouse sensitivity so much as it is a multiplier for your acceleration and offset.

      Delete