Okay. So, to have it written as straightfoward as possible, for each room there are 1 host and X peers, right ?
Yes
Ah ! Another question while I'm here : the multiplayer objet can sync instances positions and variables.
So, what's the best way to synchronize attributes like visibility ?
Send a broadcast message to the peers, the peer receives it and changes the instance visibility ?
Or just to add an instance variable "visibility" on the object which will synchronize automatically, and add a global event (availble for the host and peers) like "if sprite visibility = true -> sprite ; set visible" ?
For those kind of actions I often just send a message to the peer.
send to peer xxxx, tag "setVisible" message = "no" (or yes)
Peer on received message "setVisible"
sub compare 2 values: Multiplayer.Message = "yes" , action set visible
sub compare 2 values: Multiplayer.Message = "no" , action set invisible