godotengine / godotengine/godot

Jittery movement with Engine.max_fps lower than screen refresh rate

Open
#115,201 4 comments 0 reactions 0 assignees View on GitHub
bug needs testing topic:physics topic:rendering
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

4.5.1, 4.6.rc2

### System information

Windows 11

### Issue description

A simple CharacterBody2D and two StaticBodies, using move_and_slide() to move and change direction when hitting a wall.
Tried with and without Physics Interpolation but if Engine.max_fps is lower than my monitor refresh rate (120), this happens.

https://github.com/user-attachments/assets/cfa8f83e-4c58-4687-b915-3710c27f4c73

### Steps to reproduce

Just run the main scene. If there is no jitter, keep trying. Happens randomly.

### Minimal reproduction project (MRP)

[jitter-test.zip](https://github.com/user-attachments/files/24760062/jitter-test.zip)

Contributor guide

Open the contributing guide

Research direction

Start by running the attached jitter-test.zip minimal reproduction on Windows 11 with a 120 Hz display, then vary Engine.max_fps and Physics Interpolation as described. Compare the movement when the cap is below the refresh rate; done means the reproduced jitter is explained and the relevant engine behavior is corrected without breaking wall-direction changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.