You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to get rollback + client prediction working using godot-rapier-physics, which requires manually stepping the engine.
The manual stepping itself works fine, but the results of the simulation are different, at least when checking for area overlaps with Area3D.has_overlapping_bodies() -- the simulation ticks on which bodies overlap depends on how the simulation is stepped, not on the simulation tick on which the overlap check is made.
(I wonder if this has to do with syncing of transforms that are defined on the Godot side with transforms needed for collision checks on the rapier side?)
with the "advance kind" enum set to each different value:
Expected behavior
The logging that prints out which ticks the areas have overlap should print an identical set of ticks no matter how the simulation is stepped.
Environment:
OS: linux mint
Version: latest
Godot Version: 4.3
Type:
[plugin]
name="Godot Rapier 3D"
description="A 2D and 3D drop-in replacement for the Godot engine that adds stability and fluids."
author="appsinacup"
version="0.8.8"
flavour="godot-rapier-3d-single-enhanced-determinism"
script=""
This is a little subtle, so I thought it might hopefully help to include a screen recording explaining my experimental setup
rollback9.mp4
Feel free to ping me here or on discord. Also, if you have ideas about how this might be addressed, I don't mind trying to put together a PR if you can give me some pointers and orientation (though I know that explaining a project you've been building can take longer than just fixing things yourself :-) )
Describe the bug
I'm trying to get rollback + client prediction working using godot-rapier-physics, which requires manually stepping the engine.
The manual stepping itself works fine, but the results of the simulation are different, at least when checking for area overlaps with
Area3D.has_overlapping_bodies()
-- the simulation ticks on which bodies overlap depends on how the simulation is stepped, not on the simulation tick on which the overlap check is made.(I wonder if this has to do with syncing of transforms that are defined on the Godot side with transforms needed for collision checks on the rapier side?)
To Reproduce
run the main scene in this repo:
https://github.com/bcolloran/godot_rapier_physics_rollback_test
with the "advance kind" enum set to each different value:
Expected behavior
The logging that prints out which ticks the areas have overlap should print an identical set of ticks no matter how the simulation is stepped.
Environment:
Example project
here's a complete minimal repo:
https://github.com/bcolloran/godot_rapier_physics_rollback_test
The text was updated successfully, but these errors were encountered: