Die Godot Multiplayer-API basiert auf RPC (Remote Procedure Calls). Wenn der Server die Scene wechselt sender er einen RPC an alle Clients und übermittelt ihnen den neuen Scenenamen damit diese die Scene in ihrer lokalen Instanz wechseln.
func switch_scene(scene_name: String) -> void:
if get_tree().is_network_server():
rpc("change_scene", scene_name)
change_scene(scene_name)
RPC für die Clients.
@rpc("any_peer")
func change_scene(scene_name: String) -> void:
if scenes.has(scene_name):
var new_scene_path = scenes[scene_name]
get_tree().change_scene_to(FileAccess.open(new_scene_path, FileAccess.READ))
else:
print("Scene not found: ", scene_name)