* WebSocket-based data transfer system
* Move resource downloads/uploads to the new transfer system
Should drastically increase the permitted practical size
* Transfer impl for Lidgren
* Async impl for receive stream
* Use unbounded channel for Lidgren
* Add metrics
* More comments
* Add serverside stream limit to avoid being a DoS vector
* Fix tests
* Oops forgot to actually implement sequence channels in NetMessage
* Doc comment for NetMessage.SequenceChannel
* Release notes
This usage really doesn't make sense, and it makes the usage invalid if the size is zero. Now realistically I don't think this happens except in edge-case replay files, but it's still silly.
Removed if for no other reason than spite for making me look at this code and reason about it.
* Perf: Avoid a copy of ComponentChanges every tick within Checkpoints
- Also remove temporary Dictionary created every tick * every change
- Reduces GC load, 6GB less temporary allocations on typical replays.
* perf: Checkpoints: Apply state changes in-place when possible
- Avoids >1GB of gas tile allocations.
* Revert "perf: Checkpoints: Apply state changes in-place when possible"
This reverts commit 1a478944a6.
* Fix delta state merge issues
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* Remove full "delta" states
* Update MapGridComponentState
* abstract ComponentState
* Release notes
* Fix tests
* Fix nullable errors
* A
* typo
* Turns out testing my own PRs is a good idea
* too many warnings
* perf: Replays use less memory for checkpoints (#28052)
- Simple change of the CVars and some stats
- Based on a Lizard replay, checkpoints move from on average every 70 ticks to every 350.
* Set a minimum number of ticks that must pass between checkpoints
* Fix stat collection, split _checkpointMinInterval, more CheckpointState
* update release notes
Things like .NET bumps and engine minor version updates break the hashes. Just allow mismatching hashes, printing a warning to the log at least.
If the hash mismatches it'll explode with some weird error like invalidcast/index so whatever.
It'd be better if there was a "hey this might not work, you sure you want to load this?" screen, but I don't feel like rewriting the entire replay loading system right now.
Fixes https://github.com/space-wizards/SS14.Launcher/issues/142
* Add ISawmill.Verbose log helpers
* Verbose logs for server-side networking handshake.
* Replays: final boss
It does zippies now. It fucking works. Amazingly, in fact.
* Add ZipArchive to sandbox