Precise first person camera movement with mouse

Godot Version



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,


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

1 Like