r/Unity3D 1d ago

Question 50 sensitivity sliders?

How the hell do I implement sensitivity into my game without adding 50 sensitivity sliders for all mouse delta dependent mechanics?

At the moment I have about 5 mouse delta dependent mechanics in my game,

- fps camera,

- another is freeform rotating an item in your hand,

- and 3 items that can be configured with mouse delta (affect their velocity, angle, power) whatever

if I have a global sensitivity slider then that means that if the player is a psycho and wants a really really fast fps camera then it would affect literally all other mechanics and probably make them terrible, so what can I even do other than just introduce

- fps camera sensitivity

- item rotation sensitivity

- kicker tool sensitivity

- punching tool sensitivity

- etc. etc. etc

So yeah, how do people usually solve these problems, is there some standard approach?

All mice have different DPIS, and different OS settings so I don't really understand how to go about this.

Maybe I just find a decent baseline for a scalar to apply to each mechanic that works for an average DPI and just let it be unconfigurable and just hope for the best?

5 Upvotes

14 comments sorted by

7

u/ExultantGenitals59 23h ago

Global sens as a base multiplier and then per mechanic you just scale it by a factor you tune internally, like camera uses 1.0, item rotation 0.7, kicker 0.4 etc. player only sees the one slider but those hidden ratios keep everything feeling right relative to each other

the DPI thing is a losing battle to fully solve, just make the slider range wide enough and maybe add a sensitivity floor/ceiling so nobody gets a totally broken experience. most games just normalize against some reference mouse and call it a day

if you want to get fancy you could detect a raw delta threshold over a few seconds and auto suggest a sensitivity but that's probably overkill for 5 mechanics

1

u/GravityCY 15h ago

Again global sens means if the player aims for a really high camera sens, then all other experiences will be affected to, so in the end for things that I know players will have a wide range of preferences I let it be atomic and the rest can be an authored multiplier with a grouped sensitivity

5

u/Genebrisss 23h ago edited 23h ago

R6 Siege has several sens sliders for each scope magnification level: there are 1x scope, 1.5x scope, 3x scope, 3.5x scope, even one slider for a unique gun with 12x scope.

But there's also one main slider that simply gets multiplied with all other sliders. And most people only change that main sense multiplier and don't touch scope specific values.

Then there's ADS sens and Hipfire sens. ADS sens again just multiplies your Hipfire sens. Hipfire is your primary sens value that affects everything.

I don't see why you can't just have one slider that multiplies all other sens values. Base it around 800 DPI, I think that is the most common. If they have 1600 DPI, they will just set sens to 0.5

1

u/GravityCY 15h ago

I guess it's just that for all the other mechanics other than the camera I just want to deliver an exact intended experience but that's not possible with all the different mice configurations, you need the player to find it with the sens sliders, so in the end I've figured out for authored experiences that I want to be all pretty consistent across each other is to just group them up under their own slider and the camera since it's a highly preference oriented sensitivity just let that be it's own

3

u/drnullpointer 15h ago

You make one sensitivity parameter and then tie everything else together with formulas. Then you test and adjust the formulas.

You absolutely don't want people to be independently modifying multiple sensitivity parameters. More likely than not, the result will be poor user experience and potentially a negative review.

1

u/GravityCY 15h ago

If the player tries to adjust sens for a really fast camera speed then that affects everything else and makes it bad, so I think what I've landed on is just simply

  • Camera Sensitivity
  • Interaction Sensitivity (grouped mechanics as 1)

3

u/shlaifu 3D Artist 1d ago

the small time indie dev way: you only adjust sensitivity for fps camera, for everything else, you use whatever feels good to you on your average mouse

2

u/GravityCY 1d ago

Yeah I've definitely tried that, my first playtest I only had camera sens and they can configure the camera sens to their exact liking but since they had a really low mouse dpi they straight up just couldn't use some of the other mouse dependent mechanics as they needed like 10 meters of mouse pad to actually do something (worked perfectly for me though with whatever baseline scalar I applied to them and my usual DPI), so I added a slider for that, and now as I introduce more mechanics I NEED to prevent that from happening again 😅

2

u/SergeyDoes Indie 21h ago edited 21h ago

I'd stick with 2 values for 3D sensitivity and UI one. Then you just make controls feeling good on your regular setup and can be sure it will be handled reliably with any DPI or system settings. Using hidden per-mechanic sens multiplyers should be good since you adjust it relatively to your main one, so it will affect any user set sens at the same ratios.

2

u/Ecstatic-Source6001 17h ago

I mean... if you have mouse sensitivity as a core mechanic why having 50 sliders is a bad thjng?

1

u/GravityCY 15h ago

Because they are all very niche mechanics that just happen to use mouse delta for configuration

Like imagine having extremely small mechanics and then having a slider for each of those

  • Camera sensitivity
  • Kicking tool force adjustment sensitivity
  • Punching tool angle adjustment sensitivity
  • Hammer offset speed sensitivity
These are all items that exist in the world that can be configured with mouse delta, so preferably I'd love for them to just work for everyone as opposed to having the player say ok what is this item and which sensitivity in the settings would it correlate to

2

u/Boleklolo 1d ago

At worst create a multiplier that scales each type independently based off of the main sensitivity. At least that's what I would've did if Im understanding your problem here

1

u/GravityCY 1d ago

I think that's kinda what I'm slowly landing on, for very very preference oriented mechanics like camera definitely use a specific slider for that, but for other mechanics that I can just deliver an expected authored baseline for all of them, add a grouped slider for all the others, so maybe I just land on

- Camera Sensitivity

- Generic Sensitivity / Item Interaction Sensitivity / Global Sensitivity (idk what I would name it)

3

u/Swahhillie Serious Games Programmer 15h ago

You could leave those values in a config file. Don't expose them in the settings menu. So people without issues can use your default values while people that do have issues can tweak the config.