Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Godot Physics 3D constraint solving more deterministic #48303

Open
Tracked by #45333
pouleyKetchoupp opened this issue Apr 29, 2021 · 3 comments
Open
Tracked by #45333

Make Godot Physics 3D constraint solving more deterministic #48303

pouleyKetchoupp opened this issue Apr 29, 2021 · 3 comments

Comments

@pouleyKetchoupp
Copy link
Contributor

Godot version:
Master

OS/device including version:
n/a

Issue description:
PR #44112 has improved determinism for constraint solving in Godot Physics 2D.
A similar patch needs to be applied to Godot Physics 3D to make things consistent.

Note: Performance needs to be investigated too, as it seems this patch causes some slow down in physics steps in some cases.

Steps to reproduce:
n/a

Minimal reproduction project:
n/a

@narcissawright
Copy link

can confirm this is still random. did some tests earlier using move and slide across simple flat triangle meshes

I simulated the same physics step many times and had two potential results, one happened ~8400 times and the other happened about ~4000 times

image

@Calinou
Copy link
Member

Calinou commented Feb 29, 2024

@narcissawright Can you upload a minimal reproduction project somewhere?

Note that while we welcome efforts to improve determinism, there are no plans to make GodotPhysics 100% deterministic (and godot-jolt is not 100% deterministic either).

@narcissawright
Copy link

@narcissawright Can you upload a minimal reproduction project somewhere?

Note that while we welcome efforts to improve determinism, there are no plans to make GodotPhysics 100% deterministic (and godot-jolt is not 100% deterministic either).

Sure here is the test project. Uses left joystick input (device 0) to move, once the player capsule touches the blue goal, it then replays all the inputs and compares each frame. Sometimes when the player object passes over the floor triangles the collision result is different, and if so it will stop replaying and simulate that frame over and over, printing the differing results.

godotphysics3D_nondeterminism.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants