Commit Graph

12 Commits

Author SHA1 Message Date
Avi Weinstock
c199d12f2d Address MR 2207 review comments.
- Add metrics for which branch of the compression heuristic was taken.
- Reduce the threshold for the heuristic.
- Deduplicate code for dealing with lazy messages.
- Make jpeg dependency only scoped to the compression benchmark.
- Remove commented code.
2021-05-03 00:09:24 -04:00
Avi Weinstock
30cae40b82 Add a bandwidth-based heuristic for chunk compression. 2021-05-03 00:09:24 -04:00
Avi Weinstock
cdc2eccda8 Improve quadpng by adding WidePacking, which makes a wider image, which is faster due to PNG compressing by row. Heuristically switch between quadpng and deflate based on chunk height to reduce variance. 2021-05-03 00:09:24 -04:00
Avi Weinstock
f81539cb00 Get PngPngPngJpeg terrain working in the actual game. 2021-05-03 00:09:24 -04:00
Avi Weinstock
57aee57d82 Downgrade deflate from level 5 to level 1 in the terrain system to match LZ4's worst-case encoding time. 2021-04-25 16:18:57 -04:00
Avi Weinstock
308ad4d81e Cleanup errors introduced in rebase. 2021-04-20 23:34:17 -04:00
Avi Weinstock
15e32e5655 Move terrain compression code to common_net and disable redundant LZ4 compression on the terrain stream. 2021-04-20 23:24:24 -04:00
Avi Weinstock
6d9de520f3 Compress terrain chunks with deflate. Includes a benchmark showing that this makes them around 70% smaller, and is the same speed as LZ4. 2021-04-20 23:23:53 -04:00
Imbris
e17477979f Remove extra chunk cloning and parallelize serialization in the server terrain sys 2021-04-20 15:25:05 -04:00
Marcel Märtens
6e77028605 make msg::terrain parallel via rayon, we parallelize over the number of clients, so this is a change servers with more than 1 player profit from. 2021-03-28 21:08:40 +02:00
Marcel Märtens
a3e6cf3815 handle msg as part of the servers state for best parallelisation. also include agent there 2021-03-11 19:09:21 +01:00
Marcel Märtens
f8b7d96066 git push -fTransport ChunkRequests and Chunkupdates in a own stream. ChunkUpdates are very big and having them in a own stream, helps slow clients to keep up with entity syncs and
lagging a bit behind on terrain. Which is fine. Block Places and Block Pickup are not handled in this stream, as they go through the standart route of event handling.
2021-03-11 14:50:46 +01:00