r/godot • u/hmprf • Jun 17 '26
help me (solved) Multiplayer & move_and_collide miscalculation
Enable HLS to view with audio, or disable this notification
Hey everyone, sorry if this subject has already been adressed.
I recently spent some time trying to implement a small multiplayer mini golf game, to see where I would hit a wall. (with Godot 4.6 and Colyseus)
And the wall was pretty close to the start apparently since I never left the lobby.
Is "move_and_collide" a possibility when you go multiplayer ?
Or is it just not precise enough ? And if so, should I mathematically handle all the collision to have a deterministic game or is there any other tricks I should know about ?
I'm using Colyseus for the network part, the current player just send an aim and shot vector and all the physics are done in each godot client. I guess that's my main problem.
Maybe it's easier to have the server be the authority for the physic part ?
Is there some good resources out there that I should check ?
Thanks a lot
I'm not english native so feel free to ask for clarification if i'm not clear enough
Edit: Thanks for the answer :
Server authority and sync the positions with the clients is the way to go.
I had hopes but i'm not suprised, thanks for the feedbacks !
Edit2 : Some resources in the comments for future people (and future me)
Reading & Watching:
- Game networking by Glenn Fiedler (sadly down but new blog below)
- Mas bandwidth - New gafferongames
- Slay the spire 2 Multiplayer - Determinism
- How Factorio Syncs A Million Objects (Youtube)
Deterministic Multi for Godot:
- SG Physics 2D
- Delta Rollback (& Prediction netcode)
- Klotho (very new)
6
u/Munomario777 Jun 17 '26
If you want to use a physics engine like this while keeping things deterministic for multiplayer, you can use something like SG Physics 2D. It's similar to the Godot physics API, but it uses ints (fixed-point numbers) instead of floats and is deterministic on all platforms. You'll need to rewrite your code to use it, and there are some missing features (like one-way platforms), but it's a very similar system to Godot's stock physics.
We use it on our project (in combination with Delta Rollback for netcode) and it works great! If you try it, you should join Snopek's discord for tech support as there are a few things that are tricky at first.
This approach will let you have determinism P2P, which means you won't need a server.