Commit graph

153 commits

Author SHA1 Message Date
Fabio Alessandrelli
531c72f30d [MP] Avoid error spam in relay protocol when clients disconnect
When multiple clients are connected, and the server is using the relay
sub-protocol, it might happen that a client disconnects while a packet
sent to it from another peer is still in transit.

In that case, when the packet reaches the server for relaying, it used
to generate an error (as the destination client did no longer exists).

This commit changes check to suppress the error message while still
skipping the packet.
2024-08-06 09:51:28 +02:00
Rémi Verschelde
019cf2b40c
Merge pull request #94984 from Faless/mp/fix_safer_cache_cleanup
[MP] Partially revert cache cleanup, track paths as fallback
2024-07-31 22:33:07 +02:00
Rémi Verschelde
9559330187
Merge pull request #91011 from Faless/mp/fix_disconnect_on_change
[MP] Fix `disconnect_peer` not doing the proper cleanup
2024-07-31 22:32:55 +02:00
Fabio Alessandrelli
90d5d26026 [MP] Partially revert cache cleanup, track paths as fallback
Cleaning up remote NodePath cache is not trivial since the visibility
API allows for certain nodes to be despawned (and re-spawned) on some
peers while being retained in the authority.

This means that from the server point of view, the node has not changed,
and the path simplification protocol won't be run again after
respawning.

While we can track this information for synchronizers via the
replication API, we can't easily track this information for potential
child nodes that use RPCs (I'm convinced it is doable, but we need to
track the whole dependency tree which would require some more complex
refactoring).

This commit partially reverts some of the cache cleanup logic to always
retain remote IDs, and adds a NodePath lookup fallback when the ObjectID
is invalid.
2024-07-31 19:32:32 +02:00
Rémi Verschelde
6b8029414c
Merge pull request #93374 from hakro/fix-replication-config-error-flood
Instantiate a replication config on synchronizer creation
2024-06-22 16:22:11 +02:00
Rémi Verschelde
e5c0f60c59
Merge pull request #91084 from OwenAEdwards/master
Modify MultiplayerSpawner scene path error checking.
2024-06-21 10:14:06 +02:00
Hakim
fc4206b603 Instantiate a replication config on synchronizer creation 2024-06-20 01:14:50 +02:00
A Thousand Ships
fbb879debd
[Scene] Add SceneStringNames::text/value_changed 2024-06-19 09:44:38 +02:00
A Thousand Ships
ca18a06ecb
[Scene] Add SceneStringNames::confirmed 2024-06-19 09:40:54 +02:00
A Thousand Ships
d519715d94
[Scene] Add SceneStringNames::font(_size/_color) 2024-06-18 17:24:27 +02:00
A Thousand Ships
926afccbd8
[Scene] Add SceneStringNames::panel 2024-05-30 22:54:50 +02:00
Daniel Snd
1a9d95f933 Fix Multiplayer Spawner freeing node after client disconnected Issue 2024-05-25 13:34:33 -03:00
A Thousand Ships
ee79386f7b
[Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +02:00
kobewi
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi
a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
A Thousand Ships
b4c6cc7d82
[Core] Add case-insensitive String::containsn 2024-05-08 12:48:01 +02:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
K. S. Ernest (iFire) Lee
f9b488508c
Add PackedVector4Array Variant type
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-03 00:58:27 +02:00
Aaron Franke
1bcbbe96c4
Organize existing code for editor plugins 2024-04-27 11:59:58 -07:00
Owen Edwards
2343c4208c
Modified MultPlayer spawnable scene path error checking. 2024-04-23 18:51:33 -04:00
Rémi Verschelde
ad4dff27ba
Merge pull request #90027 from Faless/mp/cache_no_spam
[MP] Gracefully handle cache confirmation of deleted nodes
2024-04-23 19:11:05 +02:00
Fabio Alessandrelli
c6be5f130c [MP] Fix disconnect_peer not doing the proper cleanup
Lower layers (cache, replication) were not being notified about the peer
being disconnected.
2024-04-22 14:58:45 +02:00
Rémi Verschelde
08803e7d83
Merge pull request #89839 from timothyqiu/meanwhile
Fix node config warning not updating for `Multiplayer{Spawner,Synchronizer}`
2024-04-08 11:20:25 +02:00
Rémi Verschelde
c97885be7d
Merge pull request #89811 from timothyqiu/missing-i18n
Fix missing i18n for some editor strings
2024-04-04 14:31:43 +02:00
Haoyu Qiu
91204f6f3f Fix missing i18n for some editor strings 2024-04-03 16:42:28 +08:00
RedMser
9cd30208d6 Improve SceneTreeEditor usability
- Mark contextually relevant node
- Remember/Clear selection as appropriate
- Scroll to marked/selected node
2024-03-31 21:35:10 +02:00
Fabio Alessandrelli
4b973f451e [MP] Gracefully handle cache confirmation of deleted nodes
It's possible that after sending a cached node reference (e.g. RPC or
static MultiplayerSynchronizer) the reference node is removed from tree
before the remote peer(s) can confirm the referenced path.

To better detect that case, and avoid spamming errors when it happens,
this commit modifies the multiplayer API caching protocol, to send the
received ID instead of the Node path when sending the confirmation
packet.

**This is a breaking change** because it makes the runtime multiplayer
protocol incompatible with previous versions of Godot.
2024-03-29 23:11:04 +01:00
Haoyu Qiu
8cfded5934 Improve replication editor's pin button
- When unpressed, only hide the editor if MultiplayerSynchronizer is not
  selected.
- Add tooltip text.
2024-03-25 23:12:26 +08:00
Haoyu Qiu
6feb43200b Fix node config warning not updating for Multiplayer{Spawner,Synchronizer} 2024-03-24 13:53:09 +08:00
Thaddeus Crews
9903e6779b
Enforce template syntax typename over class 2024-03-07 22:39:09 -06:00
Hugo Locurcio
8221e7546b
Add editor shortcuts to toggle bottom panel visibility
Default shortcuts use the first or second letter of each word.

This also adds a new shortcut to toggle the last opened bottom panel.
On editor startup, this defaults to the first panel in the list
(which is the Output panel).
2024-03-05 15:53:15 +01:00
Fabio Alessandrelli
45e8fa10c1 [MP] Fix replication config reload error
Override the `reset_state` method to properly handle reloading the
resource from disk.
2024-03-03 11:13:00 +01:00
Max Hilbrunner
bd8380db55 Fix removing connected peer during disconnection 2024-02-25 18:44:02 +01:00
Robert Yevdokimov
13e82094ee Remove word duplicates in comments and strings, and fix casing and punctuation 2024-02-23 17:28:28 -05:00
Rémi Verschelde
4582ee1a0f
Merge pull request #87760 from kitbdev/extract-bottom-dock
Extract BottomPanel from EditorNode
2024-02-23 22:18:50 +01:00
Rémi Verschelde
b15105a358
Merge pull request #88641 from Calinou/doc-add-keywords
Add keywords to improve search in the class reference
2024-02-22 16:53:59 +01:00
Hugo Locurcio
f781571d07
Add keywords to improve search in the class reference 2024-02-22 16:16:49 +01:00
Rémi Verschelde
48a1a78390
Merge pull request #86260 from Faless/mp/fix_2way_auth
[MP] Fix auth not waiting for confirmation in some cases
2024-02-21 15:22:46 +01:00
kit
eb6ca91ba6 Extract BottomPanel from EditorNode 2024-02-20 15:09:07 -05:00
Rémi Verschelde
6037500219
Merge pull request #69032 from KoBeWi/check_every_changed_setting_in_every_group_everywhere()
Use `check_changed_settings_in_group()` everywhere
2024-02-20 19:34:30 +01:00
Rémi Verschelde
07254d9b1b
Merge pull request #88443 from Mickeon/documentation-hunting-for-deprecated
Update many Deprecated/Experimental descriptions for consistency
2024-02-20 11:12:07 +01:00
kobewi
a031911c82 Use check_changed_settings_in_group() everywhere 2024-02-19 21:34:45 +01:00
Micky
f9a758772a Update many Deprecated/Experimental descriptions for consistency 2024-02-17 21:33:12 +01:00
Rémi Verschelde
21f0529aa9
Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
Rémi Verschelde
39fcef1b2f
Merge pull request #88326 from brennennen/cmd_mask_comment_typo
Fixed binary representation typo in comment
2024-02-15 15:45:11 +01:00
Danil Alexeev
af28f87791
Documentation: Add support for deprecated/experimental messages 2024-02-15 15:59:50 +03:00
brennen
26d9fbaf52 Fixed binary representation typo in comment 2024-02-14 07:59:12 -06:00
A Thousand Ships
684752e75b
Replace error checks against size with is_empty 2024-02-09 12:50:15 +01:00
RedMser
d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
Rémi Verschelde
8b0c5f2fca
Merge pull request #87186 from Faless/mp/fix_remote_sync_cleanup
[MP] Fix remote net ID cleanup
2024-02-03 23:18:35 +01:00