Hi!
TLDR: I'm considering integration of ND with Godot. I'm comparing it against Rapier3D. Does ND have the ability to snapshot and replay deterministically?
I just discovered newton-dynamics and yesterday got a chance to play with the sandbox demos. Despite some issues, https://github.com/MADEAPPS/newton-dynamics/issues/234 I'm impressed so far!
I'm developing a physics based game using the Godot engine, which unfortunately / fortunately is undergoing a rewrite of its physics engine. https://godotengine.org/article/physics ... s-report-1 Bullet 2 has been integrated into Godot for 3D, but there's a whole host of issues related to it, and it's going to be replaced in Godot 4.0 by a custom one. I have limited visibility on when he'll complete the task. And given Godot's funding situation, it'd be terrible if the physics replacement is left in an unfinished state.
After a bit of research I found out that Demindiro had done some work integrating Rapier3D https://www.rapier.rs/ with Godot https://github.com/Demindiro/godot_rapier3d. https://youtu.be/yHeZfur1ivs Rapier has some great features over Bullet 2, better performance https://youtu.be/T4r_XUzX3Jc, better stability https://github.com/extrawurst/godot-vs-rapier, cross-platform determinism, snap shotting / replay which seems like that'd make be a great choice for debugging user reports or networked game. In my limited testing with a couple of friends, they've gotten in same results as me. Debug and release builds look identical except for performance.
Checkout the demos for the snapshotting https://rapier.rs/demos3d/index.html
But after using the godot_rapier3d binding I ran into several issues.
1. It's not a complete binding. There are missing features with regards to ray casting, kinematic control, interaction with godot. And recently I discovered a stuttering issue while running in the Godot editor. https://github.com/Demindiro/godot_rapier3d/issues
2. It's in Rust, and so I'd have to learn Rust to fix these issues / contribute. (not that I'm opposed to it, but it's another step). And to integrate with Godot it has to go through GDNative which is Godot's C interface plugin architecture. I'm familiar with GDNative too as I use Nim as my script binding, and debugging through it is not pleasant when trying to interact with Visual Studio since Godot is written in C++.
3. Rapier is relatively immature even though the author seems to have a good reputation as the author of nphysics and other physics and math related libraries.
Even despite these issues, Rapier3D is still a contender because of its performance, determinism, and some work has already been put into it.
But newton-dynamics was mentioned on the Nim discord, it looks like it has everything that Rapier offers except for the cross-platform determinism which doesn't seem to be a mentioned feature in any other physics engine. Is it possible to snapshot the state of the newton-dynamics engine and send it to someone else's machine which may have different hardware and replay it deterministically?
It's a long shot, but has anyone tried to integrate ND with Godot?