Skip to content

Manual packet fragmentation #116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 63 commits into from
Dec 17, 2023
Merged
Changes from 1 commit
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
a9ee35a
Early draft [skip ci]
Shatur Dec 4, 2023
fb8ce9f
Fix tests
Shatur Dec 4, 2023
56fb26c
Update changelog
Shatur Dec 5, 2023
77e8e18
Remove trackers
Shatur Dec 5, 2023
388a542
Apply formatting
Shatur Dec 5, 2023
c204fb0
Add test and fix discovered issues
Shatur Dec 5, 2023
b1d4265
Refactor working with ticks
Shatur Dec 5, 2023
1a39f0f
Fix clippy
Shatur Dec 5, 2023
86bd689
Fix splitting logic
Shatur Dec 5, 2023
7a99595
Undo diagnostics changes
Shatur Dec 5, 2023
689cacd
Update deny.toml
Shatur Dec 5, 2023
9ec9ef2
Update docs
Shatur Dec 5, 2023
9bf14bc
Trigger change detection to fully cover diagnostics
Shatur Dec 6, 2023
34cff3f
Add test for update replication buffering and fix the discovered bug
Shatur Dec 6, 2023
cbf0116
Refactor event queue test in similar way to test more
Shatur Dec 6, 2023
7408bf9
Use tick from the message when apply an update from buffer
Shatur Dec 6, 2023
58b6592
Store replicon tick inside update message too
Shatur Dec 7, 2023
bbf5db4
Do not store position in buffered update
Shatur Dec 7, 2023
8014108
Drop extra retain buffer
Shatur Dec 8, 2023
ce9e7e4
Remove wrong comment
Shatur Dec 8, 2023
33669b3
Hide `ServerEntityTicks` from public API
Shatur Dec 9, 2023
6a0d92b
If there is any insertion, include all updates into init message
Shatur Dec 9, 2023
61d8d46
Properly disconnect the client to cover this case
Shatur Dec 9, 2023
9af3e8c
Remove extra check
Shatur Dec 9, 2023
1566c3a
Update tracing messages
Shatur Dec 9, 2023
6939114
Panic if update references a non-spawned entity
Shatur Dec 9, 2023
d2bed64
Fix comment
Shatur Dec 9, 2023
b711ab6
Reverse condition
Shatur Dec 9, 2023
af8ec14
Fix replication buffer slicing
Shatur Dec 9, 2023
6aeed9f
Update docks
Shatur Dec 9, 2023
ccf9c9c
Compare ticks before acknowledgment
Shatur Dec 11, 2023
0c5c3e7
Simplify logic
Shatur Dec 11, 2023
6e440e2
Rephrase panic message
Shatur Dec 11, 2023
169296d
Apply suggested docs
Shatur Dec 13, 2023
ab3387b
Use while instead of loop
Shatur Dec 13, 2023
1b2c7c4
Move buffered updates into resource to be able to reset them
Shatur Dec 13, 2023
7a5510f
Remove extra map lookup
Shatur Dec 13, 2023
c21f454
Use more correct check
Shatur Dec 13, 2023
e5f428c
Add debug assertion
Shatur Dec 13, 2023
d961f36
Fix wrong condition
Shatur Dec 13, 2023
9e24aba
Apply docs suggestion
Shatur Dec 15, 2023
b262977
Get messages for fist client instead of last
Shatur Dec 15, 2023
a706c4b
Move replication buffer into a server submodule
Shatur Dec 15, 2023
65240e3
Improve group strategy and test it properly
Shatur Dec 15, 2023
16e3c18
Add `is_sendable` helpers
Shatur Dec 15, 2023
ded251e
Apply clippy suggestion and update description
Shatur Dec 15, 2023
d0a2459
bug fix: client should skip component updates that aren't needed
UkoeHB Dec 16, 2023
9268d99
Refactor component writing
Shatur Dec 16, 2023
e396693
Refactor applying on client
Shatur Dec 16, 2023
e215ba2
Add test
Shatur Dec 16, 2023
eba3366
Fix message packing
Shatur Dec 16, 2023
bef9b1a
Refactor connection handling
Shatur Dec 16, 2023
9a5a349
Apply docs suggestions
Shatur Dec 16, 2023
0fde075
Reuse memory for entities
Shatur Dec 16, 2023
305569b
Clarify events despawned entities
Shatur Dec 16, 2023
d7b27e3
Fix old entities replication
Shatur Dec 16, 2023
a06da4e
Move update replication tests after init tests
Shatur Dec 16, 2023
5e58ac0
Move clients info into a separate module
Shatur Dec 16, 2023
9becc14
Apply doc suggestion
Shatur Dec 16, 2023
4612fea
Make systems dependent
Shatur Dec 16, 2023
7f923a3
Improve docs
Shatur Dec 16, 2023
6d2e80b
Keep memory for `ClientInfo`
Shatur Dec 16, 2023
7834cd8
fix typo
UkoeHB Dec 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,8 @@ then the client is guaranteed to see the spawns at the same time, but the compon
If a component is dependent on other data, updates to the component will only be applied to the client when that data has arrived.
So if your component references another entity, updates to that component will only be applied when the referenced entity has been spawned on the client.

Updates for despawned entities will be discarded automatically, but events could reference despawned entities and users should discard them manually.

Clients should never assume their world state is the same as the server's on any given tick value-wise.
World state on the client is only "eventually consistent" with the server's.

Expand Down