Age | Commit message (Collapse) | Author |
|
|
|
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
|
|
* Very old macros from the time Godot was created.
* Limited arguments to 5 (then later changed to 8) in many places.
* They were replaced by C++11 Variadic Templates.
* Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard.
* Also added a dereference check for Variant*. Helped catch a couple of bugs.
|
|
It used to always cycle all the peers when checking which one needed to
be notified, now it only does that when the target is multiple (i.e.
broadcast or exclusion).
|
|
It used to check if a net_id was ever assigned to that node to detect
when to send the path confirm to the remote peer.
This is wrong, because the same net_id is shared for all the remote
peers, but sent one by one.
Instead we now check if it's either not assigned or if the assigned
net_id is a cache ID, and in that case ensure that the remote peer has
been notified.
This can be further improved by unifying the cache interface, but for
now it's a fast fix to get path-only sync to work.
|
|
|
|
[Net] Clarify RPC error when method is missing.
|
|
|
|
Also splits bandwidth/rpc profiler (RPCProfiler is now in
SceneDebugger).
|
|
Now uses two interfaces so it can be overridden in the future, and
core no longer depends on Node.
The interfaces are implements in scene/multiplayer.
Replaces root_node with root_path.
Remove all Node references from MultiplayerAPI.
|
|
Initial implementation of the MultiplayerReplicationInterface and its
default implementation (SceneReplicationInterface).
New MultiplayerSpawner node helps dealing with instantiation of scenes
on remote peers (e.g. clients).
It supports both custom spawns via a `_spawn_custom` virtual function,
and optional auto-spawn of known scenes via a TypedArray<PackedScenes>
property.
New MultiplayerSynchornizer helps synchronizing states between the local
and remote peers, supports both sync and spawn properties and is
configured via a `SceneReplicationConfig` resource.
It can also sync via path (i.e. without being spawned by a
MultiplayerSpawner if both peers has it in tree, but will not send the
spawn state in that case, only the sync one.
|