-
-
Notifications
You must be signed in to change notification settings - Fork 58
Open
1 / 81 of 8 issues completedLabels
epicTracks multiple features / issuesTracks multiple features / issues
Description
✨ Description
Servers in this case refer to a pattern inspired by the pattern of the same name used in Godot: server pattern
This enables the centralization of all data kept by netfox, and extracting the actual logic from the individual notes like RollbackSynchronizer and StateSynchronizer. This way, nodes act only as a convenient frontend to the lower level APIs implemented by the servers.
As a result, recurring functionality is easier to share between nodes, and users can levarage unique combinations of functionality using the servers.
This epic tracks all the tasks introduced in #549, which will be split into multiple PRs based on the tasks.
📓 Tasks
Initial rewrite
- Implement NetworkCommands #557
- Implement NetworkIdentifiers #558
- Implement rollback servers #559
- Supersedes Batch RPCs for synchronization #432
Improvement follow-ups
- Implement packet size limit for encoders
- Target a configured packet size to avoid packet loss due to packets larger than MTU
- Redundant snapshots with diffs #560
- Encode the first snapshot as full, and then the rest are just diffs compared to the first
- Cleanup identity data on peer disconnect #561
- Non-prefixed string serializer #562
- Godot's
put_utf8_string()prepends a 4-byte length marker, implement one that doesn't - Also check for performance
- Godot's
- Buffer data for unknown subjects #563
- In case data arrives for an unknown node, save it for later
- Once the node is spawned, apply data
- Implement test for non-simulated nodes with state #564
Unlocked features
- Rollback liveness #468
- Support nested RollbackSynchronizers #414
- RollbackSynchronizer removes mutated states on rollback #383
- ❔ Respect processing order
- After the rewrite, netfox should honor scene tree order
- Check if also honoring processing order is feasible
- ❔ Force update for colliders
- Expose method to register colliders
- netfox force updates their state before every tick
- See Rollback caveats
- ❔ Arbitrary object support
- Instead of only allowing nodes to participate in rollback, allow objects as well
Reactions are currently unavailable
Sub-issues
Metadata
Metadata
Assignees
Labels
epicTracks multiple features / issuesTracks multiple features / issues