Avi Weinstock
be39054767
Make terrain compression a checkbox instead of a bandwidth (throughput?) heuristic.
2021-05-03 00:09:44 -04:00
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