3,448 Commits over 822 Days - 0.17cph!
Bugfix: fix late-arriving snapshots crashing client
- also reset active scene name so we can identify LevelManager loading and skipping prefab pooling
Tests: was able to reload into procgen then back to staging, but tripped some asserts
Bugfix: also include level size in reload req, otherwise client gets confused about world loading
Tests: client was able to load from Craggy into procgen map while server is still on craggy
Update: more progress on loading to a different level
- refactored some of testing code
- client doesn't send tick while loading
- server delays client entering game till they're marked as connected
Tests: tried to load from craggy to procgen, but got stuck on recieving data. also triggerd a bunch of asserts in the process
Merge: from mt_snapshot_saving
- Bugfix for Helicopter Flare saving corrupting InvokeHandler in Jobs 4
Tests: spawned mini copter, fired off a stack of flares, couldn't fire anymore
Bugfix: fix not MT safe saving of helicopter flares
Helicopter flares are cached on use/inv change
Tests: got into a minicopter on craggy, fired a stack of flares, couldn't fire anymore
Clean: remove stale todo
Don't think I need to fiddle with asset scenes in this case
Tests: none, trivial change
Update: ignore auth messages if already authed
Tests: using a temp servervar triggered reauth while on Craggy - got rejected
▇▍▌▉▋▌▌ █▌█▇ ▅▄▋▉▋▅▊▆▍▅▅▍▅▇▅▌▆▍██▊▍▌▇▅▄▌▍▍▊█ ▆▆▆▆▋▆▌▅▅ ▇ ▆▍▋▅▄ ▊▆ ▊▄▊▉█▄ ▋▅▅▇█ ▊▆▊▇▆▊ ▍▊▍▄█▊▇▋▆▄▇ ▍▄▆ ▄█▊▇▍▄ ▍▌▆▉▄▉▌█▉▌▋▍▋▄▅█▊▅▆█▇ ▋▅▍▇▅▅▅▇ ▆▊▆▇▆▋ ▅▇█ ▄▌▌▌▅▇ ▇█▆▍▄▊▋ ▉▅▉▋▆▊▆▅▌ █▊ ▄▇▆█▉█▇ ▄▄▆ ▄▇▉█▉▋▊▌ ▍▅▄▋█▄▅▌███▅▆▅█▅ ▋▌▅▌▌▋▉ ▍▊▉█▋▍▇ ▊▍▊▆▍
▋▅▋▍█▆▉▍ █▇ ▅▌▍▆█▌▍▋ ▆▋▋██ ▅▄▆▆ ▇▄▄▇▌▋▋▇ ▍▉▌█▆ ▇▊▉ ▍▊▉▋▅ ▊▋▌▄▄▇▅▇▊▉▌▆▍▅▌█ ▄▇ ▄▅▌█▆▄▆ ▍█▅▍███ ▉▅▋▆▅▇▋ █▊▄▇▄ ▍▆▆▆▌▄▍▇▉▉▆ ▅▉▋ ▋▅▍▄▇▆▄█▊▌▇▉▆▋▉ ▊▉▌▅ ▆▅▄▊▅▆▌ ▉▅▌▄▌▊ ▋█▉▊█▉▊ ▄▍▉▉▇
Update: clear more of the world state
- don't change nexus state
- abort if player isn't fully connected
Abandoned trying to support reload in C+S editor, it's a gian can of worms
Tests: reloaded on playground
Bugfix: recreate missing important managers on client after reloadmap
Tests: reloadmap - saw 10 managers present (previously only net_env was)
Update: allos changing scenes via reloadmap
- remove old hacky reapproveplayer, no longer need for testing
Tests: was able to reload from Playground to CraggyIsland in C+S editor and interact with the world
Bugfix(editor): fix net id desync after reloadmap
Tests: threw a rock after reloadmap - no desync errors
Bugfix: don't preserve RustNavigation across reload as it'll be created by GameSetup
Tests: reloadmap didn't generate errors
Bugfix: avoid local client player being destroyed during scene switch
also trying scene loading to happen if already in the same scene, but breaks a bunch of stuff
Tests: reloadmap, no longer seeing one of breadcrumb errors, can see legs and move
Bugfix: fix invalid isLoading state when reloading map
Copy paste mistake
Tests: able to control camera after reloadmap
Bugfix: avoid RustNavigation NRE spam on reload
- move RustNAvigation to Server scene
- LoadLevelAsync can preserve server scene in C+S setup
- add missing player states on the server to facilitate connect-lite flow
Tests: ran reloadlevel - no NRE spam, but camera is detached
Update: initial prototype alongside Approved hack
Tests: tried both, it's megaborked in C+S
Merge: from playermovement_connect_nre
- Bugfix for out of order snapshots on player connect triggering NRE
Tests: booted into craggy
Bugfix: fix playermovement NRE when initializing a parented player
Can happen if snapshots arrive out of order on connect
Tests: booted into craggy
Merge: from poolanalyzer_validatepooledlist
- 4 bugfixes for invalid object recycling
Tests: booted unity editor, no errors. booted to craggy
Update: PoolAnalyzer now stop from assigning PooledList to List fields in ProtoBufs
- fixed errors found in our code
- release bin from 9bf2cc09
This causes recycling back to wrong pool(List) once protobuf is done with the object
Tests: unit tests + editor compiles
Merge: from poolanalyzer_ifempty_support
- Bugfix for analysis NREs in editor
- Allows to write "if(isEmpty) free" patterns
Tests: removed workaround, editor code compiles
Update(editor): Rust.CodeAnalyzer - support "if(obj.IsEmpty or obj.Count == 0) Free" patterns
- bugfix variable scope search throwing NREs for out param declarations
- release binary from 57e96efa
Tests: removed my workaround and it no longer trips up analyzer. editor boots
Merge: from mt_snapshot_saving
- Clean: removal of old MutexPool, hasn't been in use for 2months
Tests: booted craggy, ran print_memory
Clean: remove MutexPool
- ran codegen
Tests: booted craggy, ran print_memory
Merge: from ui_store_slim_ram
- Optim to stop loading store atlases, saves up to 250MB
- Bugfix for missing images in workshop tab
Tests: produced a build and inspected memory snapshots. navigated to workshop tab in inventory
▇ ▆▋▊▉▇▅▆ ▄▋▄▇▅▌ ▋▅▊▊▌ ▌▌█▍▉▅▊▊▇ ▅▌▉▉ ▆▍▆▇█▉▋▉ ▅▅ ▊▍▌▌▉▉▊▌▇▆▋▅▋▍▇ ▅█▌▊▋▅▅▆ ▉▄▅▊ ▇▋▄▍ ▇▊▊▋▄▋▆ ▄▅▋▆▉▆▋▄▆▇▄▆▄▌ ▌▇▄▉▊▆▌█▍ ▆▅ ▆▆██▄▅▇█ ▅▌▉▍▌ ▊▍▌ ▍▌▆▇█▄
Cherrypick of
165805 from mt_snapshot_saving
Optim: defer loading of small atlases, and pack them into ui dynamic bundle
Prevents loading of ~30 atlases (original and small), which saves another ~250MB
Tests: booted stnadalone build and compared snapshots. navigated to store with failloads and made sure small atlas versions are picked up
Merge: from mt_snapshot_saving
- Bugfix for accessing null buffer on non-main thread
Tests: booted to Craggy
Bugfix: ensure thread-static buffer is initialized on all threads
Tests: booted into craggy
Merge: from ui_store_slim_ram
- Bugfix for Glowing Wallpaper page flashlight not working
Tests: navigated to page with delay and fail loads on and off
Bugfix: bring back original flashlight blend shader
Fixes ugly light gradient in glowing wallpaper page
Tests: navigated to glowing wallpaper pack page
Clean: get rid of dead props on StoreFlashlightReveal
Tests: none, trivial change
Merge: from mt_snapshot_saving
- Bugfix for string serialization sending wrong data in Jobs 4 (and potentially inflating memory)
Tests: spawned a bunch of cows on Craggy with jobs 4
Bugfix: make NetWrite.String thread safe by marking buffer ThreadStatic
Tests: with jobs 4 spawned 20 cows on craggy
Update: make StoreFlashlightReveal support dynamic refs and httpimage
- OverlayPage now controls flashlight reveal
- ran update image urls
Tests: opened glowing wallpaper page, works with blur hashes and fallback loads, but doesn't look exactly as before
Bugfix(editor): StoreBundleTool - update stale blurhashes when using an already uploaded image
Tests: ran Update Image Urls for a prefab where I setup some new fields
Update: HttpImage now calls OnLoad callback with resulting texture/sprite
Needed for upcoming flashlight effect
Tests: naveigated through store
Merge: from ui_store_slim_ram
- Bugfix: carousel buttons no longer have garbage textures when opening an store overlay page
Tests: opened an overlay page
Bugfix: HttpImage - when picking nearest mip, use a cpu-side copy
Doing gpu side copy seems to cause garbage if mip isn't streamed in
Tests: made a standalone build and navigated to pack page, carousel buttons were okay
Merge: from ui_store_slim_ram
- Update: store assets are taken from the backend
- Optim: store assets are loaded and unloaded dynamically
Tests: navigated through various store pages with various debug overrides