Hey, that sounds very intresting, I tried doing this myself once on my game data I send to clients, but found out it was actually adding more bytes than removing (from the header i suppose) I even tried experimenting with the dictionary function for LZ4, by logging data im sending to clients, then training the LZ algoritm on that to create a dictonary, it didenāt give any benefits either.
Maybe Iām already at maximum compression, and cleverness with data, since iām working on bit level on every piece of data and so on, but anyway, perhaps allowing enet lz4 implementation work with supplied dictionary might be a great idea, what do you think?
It depends on compression level, but in general, this happens when the buffer doesnāt contain enough repetitive data, and the algorithm is not able to do anything with it. The plain text for example.
Hard to say actually, trial and error until we found what works best for our data, this is how we are doing it.
Iāve tried several solutions, and in terms of speed and compression ratio, LZ4 works best in my tests. The closest competitor is Density.
@nxrighthere , my end goal to find if there is any of open source library which works well during intermittent worsening of network conditions (packets larger than MTU during abrupt world change while playing during bus ride) in constrained device (iOS or Anrdoid IL2CPP) with .NET Standard 2.0 Unity target (forward looking compilation target). And that knowledge somehow shared with community (right now, I guess, somebody knowŃ what open source libraries work well in that setting, but I did not found yet).
If you or anybody else will test that and share(at least part of setup - like Android IL2CPP .NET Standard 2.0 with tests from BenchmarkNet with no network issue) - would be very cool. Right now I am trying to finger point best open source by reading issues and test only one against Photon. That may not work.
This is where the concept has already failed. Read this thread, you can find there useful stuff, regarding this. And hereās some advice from the creator of ENet.
LiteNetLib support .NET Standard 2.0 if I remember correctly, so you can try it.
Trying to fix two bugs that I found a few days ago, and then pushing the code to the repository. Documentation and API reference is not finished yet as well, so it will take time.
@Prodigga If you are talking about a repository that related to the ScionNet, then yes, I didnāt upload the source code yet. Iām trying to fix a bug which reveals when a high parallelism degree used to consume batches of network messages in multiple threads.
First option. In this demo, synchronization functions/state updates called per entity, and every frame batches of network messages consumed and processed in the main thread.
Hi @nxrighthere first of all you did a such amazing job on ScionNet. Iām just curious you wrote this on scionnet github repository
can you please explain why scionnet is limited to these platforms ? if i remember correctly scionnet use a modified version of Enet which is compatible with Android and IOS
I donāt know anything about ARM processors/operating systems, this is not my area, and Iām not interested/motivated to work in this direction. Also, I donāt have appropriate devices/resources. However, everything should work in constrained environments, but how well it will work there is a question.