mirror of
https://github.com/italicsjenga/valence.git
synced 2024-12-23 22:41:30 +11:00
ae7eaf15fc
Closes #84 # Changes - Implemented new algorithm for tracking loaded entities and chunks. - The client does not need to maintain a list of loaded chunks and entities anymore, as this information can be inferred using carefully maintained data from the previous tick. - Chunks are used as a spatial partition for entities. Entity visibility is now based on chunk visibility rather than the euclidean distance to clients. - The BVH is no longer strictly necessary, so it has been moved to the new `valence_spatial_index` crate. - The API has been generalized to support things other than entities. The crate does not have a dependency on the main `valence` crate. - Chunk, entity, and player list packets are now aggressively cached to increase performance. - Chunk packets now include some filler light data. This makes the vanilla client lag a lot less. - Entities and chunks must now be marked as deleted before they are removed. - Improved `ChunkPos` interface. - Added function to get the duration per tick. - Added `Index` and `IndexMut` impls to collection types. As a result of the above changes, performance under heavy load has increased significantly. With the rust-mc-bot test on my machine, I went from a max of ~1000 players to ~4000 players. |
||
---|---|---|
.. | ||
entity.rs | ||
entity_event.rs | ||
main.rs |