2,375 Commits over 731 Days - 0.14cph!
Rename variables inside `FullServerDemos.cs` to be as readable as possible
Add `upload_demos` convar to turn off uploading and keep it on disk
Missed one file for CS0197
Fix CS0197 warnings
- change static method `NetRead.Free( ref NetRead )` to `NetRead.RemoveReference()`
- move `Interlocked.Increment()` into `NetRead.AddReference()`
Fix the server recording inbound packets twice: once from decryption thread & once on the main thread
Don't split up PacketId and the rest of the packet
Cleanup variable names
Fix writing packet length directly to the FileStream instead of the Writer.BaseStream
Improve benchmark demo command
Merge from main -> full_server_demos
Disable global networked bases until we get a fully custom rendering pipeline
Add `benchmark_demo_upload` to ensure we don't overload the game server when uploading blobs
Prevent assets from reimporting (by calling AssetDatabase.StartAssetEditing) when calling `PreparePrefabs` during build
Cut down time from 1000s -> 30s: will it work in practice?
Fix NRE when trying to access null string ConVars (changed codegen)
Run codegen
▇▉█▋█ ▍▍▌▄█▆▇▇ ▍▅▌▄▅▅██▇▇ ▅▉█▉█ ▅▅▇▆▉▉▍ ██▉▄▄▉▄▄▌▇▋ ▊▆▄▉ ▆▄▅▇▋▍ / ▅▇▅▍▇▉▊▍▅ ▍▌ ▋▍▊ ▇▉▄▅▍▇
Merge from main -> full_server_demos
Try catch all parts of demo thread (incase of error on startup)
Try to create demo directory in multiple places (incase it gets deleted or changed by users)
(this will also kick off a new build)
Don't record raknet packets used to establish a connection
Change default flush interval from 1 min -> 5 min
Store session start timestamp (when demo recording started) in header
Use connection Guid instead of dictionary in player lookup (to avoid players reconnecting causing issues)
- change DemoPlayerInfo.SteamId -> Guid (ulong technically)
Change path to `server-demos/{serverid}/sessions/{sessionid}/{chunkid}.sdem` (to make it easier to navigate in azure)
Fix compressedSize in demo header being incorrect (FileStream.Length > FileStream.Position)
Switch from `demo_server_id` -> `server_id` convar
- save across restarts
- set server_id on startup if not set
Remove `upload_token` convar, rely on putting SAS token in upload endpoint for now (can polish later once we figure out how we want to refresh tokens)
Fix hardcoded "test" container and use the container from the SAS url
Merge from main -> full_server_demos
Refactor into multiple .cs files as the code has grown
Delete demos off disk past a certain quota to avoid consuming entire disk during upload failure
Add `server_demo_disk_space_gb` (default 30GB)
Allow server demos to be turned on and off at runtime
Only disable frustum culling if one of the mirrors cameras is enabled (to avoid an inactive/disabled camera turning off frustum culling)
Mark new building meshes as readable = true so they work with multidraw
Add `print_instanced_draw_calls` to print draw calls (including how many are batched by multidraw)
Allows us to spot materials that have the wrong settings to help reduce draw calls needing to be submitted by the CPU
Merge from gnb_shadow_material_improvements -> gnb_support_new_building_skins
Enable instancing on building skin materials
Re-run converter on building block prefabs to convert all new building skins to instanced rendering
merge from test_gnb_memory_leak -> main
(fix GNB memory leak)
Fix the shadow materials of a bunch of building block renderers
Add additional funcitonality to `List Shadow Materials` to fix the materials (convert all ShadowOnly materials to use "shadow" material)
Fix GNB memory leak (submitting draw calls to disabled cameras will leak memory)
Add `instantiate_test` command to test new InstantiateAsync() method
Update CurrentVersion.cs to 2022.3
12k .meta files after it reimported a bunch of textures
ProjectVersion 2021.3.35f1 -> 2022.3.20f1
Manually commenting out audio import deprecation so it compiles
Unity auto-upgrading C# from 2021->2022
Cache ItemModCookable and ItemModBurnable inside ItemDefinition
Regenerate protobuf and move some code to partial class
Reimplement PostSave() but rename to `PostSaveToDIsk()` to make it clearer
Implement bool `isAuthed` on client to fix pooling of SimplePrivilege
Serialize Protobuf.Entity on the outbound network thread on the server
Deserialize Protobuf.Entity in the inbound decryption thread on the client
Change _NetworkCache from MemoryStream -> ProtoBuf.Entity
RefCount ProtoBuf.Entity so we can keep it on the main thread as a cache as well as serialize it on network thread
Initialize ProtocolParser.staticBuffer on each network thread (can do it automatically later)
Remove `netcachesize` convar on the server since we aren't pooling memory streams
InvalidateNetworkCache() will now invalidate the Protobuf.Entity
ToStreamForNetwork() will Save() then put the ProtoBuf.Entity into the NetWrite
ToStream() (normal saving for disk) stays the same
Remove PostSave() (easier to remove than reimplement on network thread)
Fixed the colors in UI when assigning a player to a bag or turrets to match the color scheme for rest of game
Green = Teammate online
Dark green = Teammate offline
Blue = Friend online
Dark blue = friend offline
White = Player on server online
Dark white = Player on server offline
▊▉▄ ▇▄▆▌▆█▊▋▋▌ ▍▇▄█▌▌▆▋▍▆ ▍▌ ▅▋▇▅▄▇ ▊▅▍▌▉▉▄
▅▊█▉▆▍ ▄▌▊▌█▅▇▄▅▆▌▊ ▇▄ █▍▉ ▉▄█ ▆▅▉▍▅▋█▇▋▅ ▌▆▋▆▍ ▄▉▌▌ ▄▋▇ █▍▄▆▆█▊
Add analytics for all modified convars
Fix pipe tool not resuming the entire industrial pipe when switching active item / reconnecting (only was reconnecting the first 1-2 part)
Fix wire tool & pipe tool not saving color when disconnecting wire
Fix orange pipe looking blue when holding pipe tool out
▉▆▉ ▍▌█ ▊▊▇▇▇▆▊ & ▍▌█▍▇▅▉█▌▄ ▆█▅▆▌▆▍ (▅▄▅▇▅█▌▄▌▉▆ ▉▍▅▌▌▅▉ ▄▌█▋▍▅, ▌▊▆▇▉ ▋▅▌█ █▆▇▅▇▌▇ ▉▌█ ▊▇▌▌▌▇▉▍)