userJake_Richcancel

6,068 Commits over 1,614 Days - 0.16cph!

1 Hour Ago
Only check if quant settings have changed once per frame in flush instead of every single position packet
1 Hour Ago
Switch from generic stream -> BufferStream in the EntityPositionBatchReader since both demos and network data share the same class of stream for packets
2 Hours Ago
Send positions & rotations quantized - reduce the 3x positions floats from 4 -> 1 bytes when they are within 1.27m per tick (1cm quantization) - reduce the 3x rotations from 4 -> 1 byte when they are within 25 degrees per tick (0.2 degree quantization) - will fine tune the values if it's too high a quant - fallback to sending the full value when it changes by more than a delta - tell the client what the quantization is so it can be changed during the session and be captured by demos
4 Hours Ago
merge from server_packet_capture -> main
4 Hours Ago
Add `packet_capture` command to capture outbound packets on the server - will capture up until a certain size or time limit is reached - writes to disk with 8MB buffer - intended to allow capturing network data so we can simulate optimizations on the raw data - no overhead when turned off
4 Hours Ago
Codegen
Today
Store entity ID for position ticks in a 1000 sized cache - reduces entity ID from 8 -> 5 -> 2 bytes (8 now, would be ~5 with VarInt encoding, 2 bytes with index lookup) - also compresses the parent's network ID when parented - overkill just for network IDs but basically free since we also want to do lossy compression for positions - demos store the network ID lookup in the keyframes so it can skip forwards & backwards still - make batch position packets ordered now (not a big deal since they are way smaller than old ones and max one per server frame)
Today
merge from optimize_upkeep_multiplier -> main
Today
Refactor + cleanup
Today
Fix the guide not detecting if the sail would block when lowered but doesn't block when up - caused the sail to be blocked only when lowered despite the guide making it look ok
Today
Tests
Today
▌ ▉▅▄ ▍▉▋▋▅▅▍▄▉▅▊▊▉ ▉▆▉ ▆▆▄▉▊ ▌▋▋▊▍▌▆▇▆ ▆▋▉▌▍▅▊ ▇▋█▆█▉▉█▅▍▉▋▊▊▉▉▊ █▅ ▌▄▅▅ ▆▊▋ ▇▌▌▄▊▊▅▍▌▉▊ ▇▆▆▅▇█▄ ▆█▊▉ ▋▆▍█▌▆▊▆▉▅ ▉▊▆ ▊▉▄ ▆▍▊▋ ▋▄▌▆▅▌ ▊▊▋▅▍▆ ▅▋▅▊▅ ▆▋▌▆ ▊▄▉▌▉▄█▋ █▋ ▇▌▌▌▋█▊▆▍▊▍▉▇▅▆▉█▉▍ ▍▍▅▋▉▄▄ ▇█▊▌▅ ▍▆▇▊▇▆▌▇ ▆█▄▌ ▆▆▅▊ ▇▉▄
Today
Update demos to read the new batched packet format
Today
Update SendNetworkPositions() to use the new batched path - famous last words but batched position updates shouldn't break so we shouldn't need a ConVar to toggle behavior at runtime
Today
Add batching for position ticks - new packet type EntityPositionBatch so old demos keep working - batches together entity position updates per player per server frame - flushes batches after ServerMgr * Invokes - skips sending time field if it's the same as the entity before it
Yesterday
Fix mismatch between server's check for sails and client's check - client uses rays, server used spheres - the OBB the client used to simulate the new placement wasn't rotated correctly leading to mismatch
Yesterday
Optimize calculating upkeep on the server - used to iterating through entire buildings when recalculating upkeep - now sums the building cost of all the entities and only adds & removes cost as entities are changed - means upkeep is now only multiplying the cached cost * the upkeep multiplier
Yesterday
merge from fix_switch_ammo_reload -> main
Yesterday
Test to prove it's fixed
Yesterday
Fix guns with partial reloads (shotguns) not reloading all the bullets after switching ammo - example: 4 buckshot loaded, switch to slugs and it only reloads 4
2 Days Ago
Add uploading of signs / sculptures / voicemails to our backend - simple retry: try 1x per minute, give up after 5x attempts
2 Days Ago
merge from fix_cookable_created_alloc -> main
2 Days Ago
Fix ItemModCookable allocating a new delegate every time an item is created
3 Days Ago
merge from cache_entity_links -> main
3 Days Ago
Update comment
3 Days Ago
Re-add the "Restoring X/100,000 links" for cases where the cache links aren't used
3 Days Ago
Pass `serverStartup` parameter into RestoringLoadedEntityLinks() so we don't call RCON.Update() when pasting with copypaste - probably harmless but it bugged me
3 Days Ago
merge from cache_ocean_path -> main
3 Days Ago
Optimize server startup time by caching the ocean patrol path on disk (158s -> 138s) - same idea as server occlusion grid being saved - can increase version number to regenerate next restart - convar `regenerate_ocean_path` will cause it to regenerate it next startup too
3 Days Ago
Codegen
3 Days Ago
Update test list
3 Days Ago
merge from main -> cache_entity_links
3 Days Ago
merge from optimize_duplicate_player_check -> main
3 Days Ago
merge from optimize_enforce_limits -> main
3 Days Ago
merge from fix_steam_setkey_crash -> main
3 Days Ago
Reduce number of unique keys set to prolong time until limit is hit - round entities to nearest 1000 - round FPS to nearest whole number (and clamp to 512) - round RAM to nearest 100MB - round GC count to 2 significant figures (1-9,10-90,100-900,etc) - round uptime to nearest 15m interval instead of every 30s - increases time before limit is hit from 7d -> 365d+ Prevent server from crashing if too many keys are set - stop setting new keys after 50k unique values have been set (it can still assign to previous values) - prevents server from getting enough unique values to cause the crash
4 Days Ago
Optimize server startup time by 72s (230s -> 158s) by fetching the spawnables only once instead of doing it for each of the 100 spawn populations
4 Days Ago
Optimize server startup time by 24s (254s -> 230s) by using HashSet to check for duplicate player models
5 Days Ago
Fix test attribute
5 Days Ago
Tests
5 Days Ago
Codegen
5 Days Ago
Add global const for "entity_links" version so we can invalidate all entity links when needed
5 Days Ago
Cache entity links across server restarts - if a prefab's sockets change since it was saved it will relink sockets - works for copy paste (so we can see how things were linked on a remote server)
7 Days Ago
merge from softcore_tc_limit/map_icons -> main
7 Days Ago
Update test list
7 Days Ago
Fix test attribute
7 Days Ago
merge from optimize_spawn_distribution_simple -> main
7 Days Ago
merge from main -> softcore_tc_limit/map_icons
7 Days Ago
Fix TCs being sent to you when on tutorial island Fix TCs on tutorial island being sent to you (if the island isn't instantly cleaned up)
7 Days Ago
Fix other map views (MLRS, vending, etc) showing TCs on it