140,044 Commits over 4,505 Days - 1.30cph!
assault rifle world model optimisation
- combined the 4 part FBXs into one model and converted the LOD group to a MeshLOD
- renderers 12 -> 1, highlight draws 4 -> 1, triangles unchanged, culls at 35m
- combined the ak47u's 4 part FBXs and the medieval's rifle+mag into single models
- converted the ak47u, medieval and jungle world models from LOD groups to MeshLODs
- removed the medieval's 23.6k tri LOD0 - its chain is now 13k/5.3k/2.1k
- renderers: ak47u 12 -> 1, medieval 8 -> 1, jungle 3 -> 1; highlight draws all down to 1
boat building station optimisation
its 7 buoys were embedded pre-merge copies of the ocean wreck buoy optimisation i did on changeset
162514 - replaced their 280 seaweed/mussel renderers with the buoy merge's existing combined meshes
combined the remaining seaweed clumps in the station and platform prefabs (6 -> 1 and 5 -> 1) with wind origins baked into UV2
none of the seaweed was ever batching at runtime
renderers 340 -> 65, prefab 1.4mb -> 296kb, seaweed is now 9 draw calls instead of 263!
satellite crash remains optimisation
combined the 32 loose debris pieces into a single mesh with a MeshLOD - shadows now turn off past 25m for these, and it culls at 100m (previously it drew at every distance)
converted the dish from a LODGroup to a RendererLOD with the same switch distances, and zeroed the LOD child offsets so it collapses to a single renderer at runtime
both the dish and debris now register as occludees, so terrain and buildings can occlusion cull them - the LODGroup never could
renderers 44 -> 13, debris draw calls 32 -> 1
Improve navmesh doors perf, doors now remember which polys are theirs instead of searching the
navmesh on every open/close
Reduce network overhead of powered igniter, tesla coil and strobe lights
Every Hurt broadcasts a full entity update, self damage is now applied every so often to reduce overhead (time to die unchanged)
merge from improved_event_saveloading
Fix all non-puzzle crate and barrels spawns being set to never respawn on both oil rigs (happened because "Process" context menu messes them up)
S2P
Standardize navmesh door benchmark to follow same conventions as agent path following benchmark
merge from monument_blocker_explosive_ammo_fix
Fix explosive ammo not dealing any damage to monument blockers
merge from skin_pooling_fix
Fix pooling bug causing random skins to appear on deployables
Fix siege towers doors, better behaviour for NPCs when door is slammed on them
fix annoying high freq metal clink in one heavy plate footstep
tweak gib phys materials on some monument blockers so they play better destruction sounds
add thin metal destruction sound for trolley and vent cage gib stages
flashlight refresh sounds
heavy plate armor movement sounds
loot crate refresh gib sounds
slightly improved the quality of the vending machine texture & improved the cable faceting.
Re-implemented the internal shadow box to fake the interior depth but this time merged it to the vending machine geometry, reducing a draw, and also allows me to change the culling mode on the vending machine material from 'off' to 'Back'. This means that the Vending machine no longer renders every triangle twice. This would have also affected the gibs too that inherit the same material.
Rewrite some navmesh door bug repro test that passed even without its fix
some additonal settings to carry over
chinook locked crate optimisation
crates + cage combined into one mesh with a single MeshLOD (1/5/15/25, cull 150) chainlink merged into one mesh
renderers 16 > 9
LOD components 11 > 4
objects 48 > 40
draw calls 10 > 4 up close, 3 past 20m
fence tris 1,000 > 10
tris at 25m 4,064 > 1,032
merge from render_pipeline_testing
Fixes
- fix typo in URL
- indicate when client is on the main menu (crashing ingame vs disconnecting from server then crashing)
- cleanup modded framework check, just read the server tags instead of looking for Oxide.dll loaded
merge from render_pipeline_testing
fix black player eyes in BRP in bandit camp (leaking spatial env volume shader props between cams), add pass to clear env volume shader props in RRP as well
Fixed mags not dropping in 3p for abyss ak, ice ak & space lr300
Upload the crash dumps to our backend now that the crash handler is fixed
- uploads client & server crashes, modded or vanilla then we filter on backend
- write state of session every 30s and on scene changes: when the crash actually happens we won't have a chance to write the latest state
merge from main -> optimize_json_garbage
Big ass pass on all IO electricity tests:
- Consistency, new tests and fixes
- Added ScopedSky
- Moved the save and restart utils to RustTestFixture, started using it for other tests
russian roulette
- updated textures, mostly there just some polish to do
Improve navmesh doors perf
Update: add store.unloadAssets convar, default true
Controls whether hiding store unloads assets or not. To re-enable requires restarting the game
Tests: navigated store in bundled editor with convar disabled
Merge from salvaged_hammer_refresh_sounds
merge vehicle pooling to main
Added new sounds for some of the new Salvaged Hammer actions
Bugfix: fix disconnect flow causing double unsubscribe
- introduce UI_Windon::OnVisibilityChanged
- move all the sub/unsub code to it
Tests: editor and standalone, connected to server then disconnected. tried connecting to bad ip while on store page
Work on Vendor A Shell (for train tunnels, randomised rooms). WIP kiosk (blocking materials and shapes in)
refactor critter interest overrideable methods
rework how frogs try to find shallow water to croak in
pool_ball_moving_fix -> main
Fix pool ball velocity creeping into the next shot