• Godot HelpProgramming
  • High Level Networking - Newbie needs confirmation that he understood the concepts correctly

Hello,

I'm exploring godot the first time for a few days with quite a lot experienced from other programmable 3d engines / games but I never dealt with networking for now, that is about to change.

As far as I understood from the networking demos and some tutorials I saw online when I change something on a network master I have to make sure myself using GDScript or similar, that the "puppets" on the other machines in the network reflect what is done on the master machine.

This means there is no "magic" available that for example automatically starts and synchronizes animations when I do this on the master or when a master translates a node and such?

That's what I started doing in some small test already, but I'm concerned that I miss something important which could maybe save me a lot of time, since the official documentation sounded like this should be the case and "puppets" would reflect what a master does.

I hope someone can confirm my assumption or otherwise give me hints / pointers to what I might have missed.

Greetings, Daniel

I have not done very much networking with Godot myself, though I ideally want to change that in the future, so please take the following with a grain of salt!

This means there is no "magic" available that for example automatically starts and synchronizes animations when I do this on the master or when a master translates a node and such?

As far as I know, this is the case. Any synchronization over the network has to be done manually through code. You can sync variables through commands like rset and call functions through rpc though.

As far as the master/puppet keywords, I believe it only applies to which function gets called through rpc. Functions with the master keyword will only be called on the computer that created/instanced the node with it's server ID, while functions with the puppet keyword will be called on all of the computers that are NOT the computer that created/instanced the node.

That said, this is just from my assumptions. When I was doing networking code, I didn't use the master/puppet keywords, and instead just used remote and sync and did some minor processing to detect who sent what.

Hopefully this helps a bit! I would offer hints and advice, but honestly I know only the barest amount about how networking in Godot works.

(Side note: Welcome to the forums)

Thanks for the response!

After I also had a look in some more demo projects I found I think this and your post are confirmation enough, I already started implementing synchronization code, works great so far!

3 years later