godotengine / godotengine/godot-docs

Need more clarity on the role of call_local vs call_remote when client and server are NOT the same executable

Open
#8,649 0 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
reStructuredText
Stars
5.7k
Forks
3.8k
Avg merge
1d 20h
Merged PRs (30d)
25

Description

**Your Godot version:**
4.2.1

**Issue description:**
The documentation for call_local and call_remote only work when the semantics are that of a single executable being both the client and the server. This is discussed in some level of detail in this forum post

https://forum.godotengine.org/t/how-to-get-detailed-debugging-on-rpc-calls/38139

Essentially if you have a server that is making a call to a client using rpc_id(), if the signature of the rpc on both parties is not call_local, the client will never receive the RPC call because it is being trivially rejected in the code as an RPC without call_local will not be executed on the client even if it is being called from a remote rpc caller TO the client.

In the context of the documentation what really needs to be stated is that if this multiplayer entity is the target of an RPC call, it needs to have call_local specified in the signature of the RPC call or it will never be called. This gets messy since both the server and the client have to have a method with the same name. This becomes even messier when you have the client calling a server which calls another server (i.e. client -> gateway -> authserver or client -> worldmanager -> ecommerceserver ). These scenarios which are fairly common architectures for any advanced networking are simply not explained well in the documentation.

The documentation

**URL to the documentation page (if already existing):**
https://docs.godotengine.org/en/stable/tutorials/networking/high_level_multiplayer.html

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.