Precise first person camera movement with mouse

Godot Version

4.2

Question

Hi! I’m working on an FPS controller, specifically on the aiming. I’m trying to make it as responsive as possible. I disabled accumulated input to make sure it captures as much detail from my mouse as it can.

The issue is that event.relative is pixel dependent. This causes two issues:

  • mouse sensitivity changes with resolution: I can compensate for that dividing the input, which is pixel dependent, by the total size in pixels of the game.

  • The minimum possible unit is a pixel. That means that, even if my mouse input is working fine, it will lack fine detail and appear jittery while doing small camera movements. The only way i found to improve this is to make the game render at a bigger resolution. The opposite is also true: Playing the game at a lower resolution means there are less pixels and therefore less detail on the input, making the experience really bad.

I been trying to improve the situation for years, but i could only find people with the same problem and no answers.

So, my question is, is there any way to create a responsive camera regardless of resolution like the one your would find in other engines or big games? or is this something that i just have to accept?

Thank you for your time,
Freeman.

3 Likes

Yes, you can get the DPI of the monitor from the display server to make a uniform sensitivity variable for all resolutions.

1 Like