userDaniel Pcancel
reporust_rebootcancel

1,919 Commits over 457 Days - 0.17cph!

37 Days Ago
Update: general cleanup and make StoreTakeoverDrawer draw original props - StoreTakeoverDrawer used if-deffed-out blocks to be able to switch from Textures/Prefabs to paths to them - removed Tile Override path, as it hasn't been implemented fully yet and has been silently failing this entire time Managed to confirm that the data from Main got preserved, but I'll need to do a raw copy of prefabs with configs just to make sure nothing slipped through the cracks. Tests: navigated to takeover configs and explored them
37 Days Ago
Merge: from main Testing to see if I can upgrade data this way - that'll be next CL Tests: compiles in editor
37 Days Ago
Update: restore ItemStoreTakeover serialized layout - should allow to merge-and-upgrade all prefab changes, I hope. Will remove it post-merge. Tests: editor compiles
37 Days Ago
Tests: add a unit test for AssetBundleBackend to check if out of order async works Napkin code, will clean later once decided that this branch is merged back Tests: ran unit test in editor
37 Days Ago
Merge: from storetakeover_icons - Converts more store logic to use dynamic bundles, reducing ram usage Tests: took memory snapshot in stnadalone build for Store and Home pages
37 Days Ago
Bugfix: UI_Store - preserve which tab was opened when UI_Store is closed Tests: navigated to and away from store in Editor
37 Days Ago
Clean: remove TODO that turned out unnecessary Tests: none, trivial change
37 Days Ago
Update: UI_StoreItemGrid - allow grid to initialize it's tiles multiple times in a row Tests: clicked between various tabs on the store in editor with bundle backend
37 Days Ago
Update: UI_StoreTakeover - Do not instantiate textures when loading from dynamic bundle Lets us avoid destroy calls, since dynamic bundle unloading destroys things automatically Tests: navigated to the store page in editor with bundle backend
37 Days Ago
Bugfix: ensure dynamic bundle tracks subscriber count accurately This was causing the bundle to not unload in the updated flow Tests: navigated to store in editor with bundle backend
40 Days Ago
Bugfix: ensure ui/store.bundle gets unloaded after all changes - UI_Store opens the first tab during warmup, outside of OnOpen, which unbalanced subscribe/unsubscribe calls. It also never closed the tab when itself being closed. Addressed both. Tests: clicked through tabs, then closed shop - no asserts fired. Need to test in bundle mode, that'll be next.
40 Days Ago
Bugfix: fix some items showing empty icons Tests: navigated through all tabs of shop and inventory - everything seemed present
40 Days Ago
Merge: from fix_missing_takeovers Images still missing - digging deeper Tests: navigated to store
40 Days Ago
Update: run Update Paths and Assign Bundle on MenuUI2_Store_General grids Tests: none, will test in parent branch
40 Days Ago
Bugfix: warm up UI_StoreTakeover's Takeovers in more cases - Reimplemented warmup of StoreFeatured/General/Limited to first spawn empty tiles and fill them up once tab is opened Turns out, we can open tabs of store without opening store itself, resulting in an access to uninitialize takeovers. Couple empty item icons remain, will fix next. Tests: navigated to the store and clicked through bunch of tabs and scrolled around.
40 Days Ago
Update: break ItemStoreTakeover links to sprites - Added warmup-cooldown to relevant UI screens Doesn't work correctly - menu spawns, but uses wrong assets. This is due to warm-up logic running before storetakeover warmup Tests: navigated to Store and Inventory pages. Inventory is okay, but store is derped
41 Days Ago
Update: UI_StoreTakeover.AssignStoreBundle utility to assign it's icons to ui/store.bundle - Ran Assign Store Bundle on all takeovers Tests: inspected meta changes
41 Days Ago
Update: ItemStoreTakeover - stores paths to icon textures - Updated StoreTakeoverDrawer to visualize sprites from paths instead of ItemStoreTakeover fields - ran update paths on relevant prefabs Not decoupling sprite fields from ItemStoreTakeover just yet - gonna do it as a separate submit Tests: interacted with prefabs in the editor, confirmed that it's rendering correct images and paths are present
41 Days Ago
Update: FilySystemBackend supports "dynamic" asset bundles - updated store overlay pages to use it Was able to succesfully load up Abyss store page, observed no stutters. Confirmed with memory profiler that abyss textures were loaded only on entering the page, but discovered that they remain afterwards despite unload (as they're still owned by asserscenes.bundle somehow) despite ui/store.bundle being unloaded. That'll be next. Tests: used both normal and bundle backends in editor and navigated to Abyss page. Built a debug client and navigated to Abyss page, took snapshots. Built Release client to see if stutters are present.
41 Days Ago
Bugfix: fix UI_Takeover overriding with null values Tests: ran in editor
42 Days Ago
Hack: skip explicitly loading ui/store.bundle at boot Using this to check if we no longer have a bunch of media textures loading in. Memory Profiler shows -87 textures/-1.2GB loaded. Need to implement dynamic bundle loading, and see if it breaks anything else. Tests: memory profiled a standalone client. Couldn't get to Abyss page (but that's expected).
42 Days Ago
Update: assign UI store overlay page prefabs to ui/store.bundle - Ensure when we generate bundles, we chuck the assigned assets to ui/store.bundle Tests: generated bundles, used bundle mode in editor and was able to navigate to the Abyss store page.
42 Days Ago
Update: UI_Store - drop UI_StoreItemOverlayPage references - resaved prefab Doesn't help with reducing RAM pressure, but allows us to take the next step of dnyamically loaded/unloaded bundles. Tests: Went to Abyss page in Editor. Built standalone, took a memory snapshot from main menu - offending assets still there
42 Days Ago
Update: FileSystemBackend.Load<T> - option to skip caching of loaded asset Using this to try to avoid caching of store assets Tests: opened and closed Abyss page a couple times with DB backend
43 Days Ago
Clean: reorganize UI_Store.CloseStoreOverlayPage - added a todo to revisit Tests: none, trivial change
43 Days Ago
Bugfix: Ensure active UI_StoreItemOverlayPage gets properly cleaned up Tests: tried a bunch of main menu interactions
43 Days Ago
Update: UI_Store - load overlay page dynamically from path Doesn't do unloading yet (gets cached in the asset backend). Also there's a bug with CloseStoreOverlayPage not being called in all cases. Tests: In Editor, loaded Abyss overlay page in store
43 Days Ago
Update: UI_StoreTakeover - store paths instead of guids - ran Update Paths Our filesystem backends only work with paths, so GUIDs were useless. Tests: none, trivial change
43 Days Ago
Update: UI_StoreTakeover - store GUIDs to referenced prefabs - Ran Update GUIDs on MenuUI2_Store same goal as before, try to dynamically load/unload store pages. Tests: In editor, opened Abyss store page
43 Days Ago
Update: Run "Update GUIDs" on all store overlay page prefabs Tests: loaded Abyss store page in Editor
43 Days Ago
Update: UI_StoreItemOverlayPage - store GUIDs of textures - Added utility to fetch GUIDs from already assigned textures and saving to disk Getting ready to switch to guid resource tracking instead of relying on unity to always load textures Tests: Loaded into bootstrap scene in editor and opened Abyss store page
48 Days Ago
Bugfix(editor): LoadMapFile - don't NRE when no scene is loaded and Server Occlusio Debug is open Tests: used in editor
48 Days Ago
Merge: from server_occlusion_poppin - Bugfix: fixes false-negative occlusion queries at the top of the hills - Bugfix: fixes false-positive occlusion queries while looking through a hill - Optim: sped up occlusion cache generation by 65%+ (4.5k from 134s -> 50s, can be faster with sufficient RAM) - Editor: extended LoadMapFile with Server Occlusion debug tools Tests: generated reported bug case and visualized and debug traced. Generated 6k, 4.5k, 2k and Craggy to confirm generation doesn't crash.
48 Days Ago
Merge: from main
48 Days Ago
Buildfix: don't try to draw on the server-only build Tests: editor compiles
48 Days Ago
Clean: code cleanup and custom_occlusion_query command - ran generate code Tests: compiles in editor
48 Days Ago
Optim: ServerOcclusion - try to avoid redundant HasCustomTag calls Only saves 1s out of 30s run, but should scale better if we increase GridOffsets in the future. Tests: generated and visualized
48 Days Ago
Optim: ServerOcclusion - split work in batches and process them serially This reduces RAM pressure and possible paging, but still generates enough work for CPU (8mil subgrid cells per batch) to keep it busy. 4.7k generation times went from 50s -> 30s. Gonna clean up and merge. Tests: generated and visualized
48 Days Ago
Optim: ServerOcclusion - jobify a bit more + use ScheduleParallel 4.7k map generation time goes from 69s -> 52s, stopping here. I'm likely getting diminishing returns on my PC due to heavy paging (generation takes 8GB+ ram) - will break it down next. Tests: regenerated and visualized cache
49 Days Ago
Optim: ServerOcclusion - convert rest of narrowphase to Burst - Replaced couple NativeList inside TestInsideTerrain with NativeArray to avoid 2GB limitation. Need a different solution for 7k maps 4.7k world generation time went from 130s -> 69s. Longest part is OcclusionIncludeRocks now (47s) Tests: regenerated occlusion on 4.7k world, then visualized the grid
49 Days Ago
New: TestInsideTerrain - Burst version - added unit test Tests: ran unit test
49 Days Ago
Optim: ServerOcclusion - convert OcclusionIncludeRocks part of narrow phase to Burst Total generation time went from 240s -> 130s. There's still 80s worth of TestInsideTerrain to rewrite Tests: regenerated and visualzied in editor
49 Days Ago
New: AreInsideMesh - burst versions of IsInsideMesh - added unit tests Tests: ran unit tests
49 Days Ago
Bugfix: ServerOcclusion - don't ignore rocks that are close to the center of a subgrid cell Tests: regenerated and visualized in editor - seemed sensible, no gaps observed
49 Days Ago
Optim: ServerOcclusion - rewrite cache generation broadphase to use parallel jobs - Takes broadphase from 4.8s to 0.4s This is tiny, since narrow-phase is the longest (on my 4.7k test map total time is ~240s). I'll do narrowphase next. Tests: generated on a custom map and visualized the occlusion grid
49 Days Ago
Bugfix(editor): LoadMapFile - check for relevant state after domain reload to allow occlusion cache rebuild Tests: triggered a couple reloads, no NREs when generating cache
50 Days Ago
New: added GamePhysics.CheckBounds that uses parallel Burst jobs - added unit test to validate it Tests: ran unit tests
50 Days Ago
Bugfix(editor): LoadMapFile - ensure terrain state is setup after domain reload when we generate server occlusion cache Tests: ran generate server occlusion cache after code edits
50 Days Ago
Clean: missed newlines Tests: none, trivial change
50 Days Ago
New(editor): LoadMapFile - added Server Occlusion Debug section - refactored ServerOcclusion.DebugPath to not draw anything and just gather cells traced Allows to debug occlusion bugs without having to enter play mode Tests: used the tool in the editor, confirmed it compiles in SERVER+CLIENT and SERVER envs