8,029 Commits over 1,004 Days - 0.33cph!
Fixed ballista and catapult sounds not playing in builds, missing unity event attribute
Same deal with adrip1, removed duped font and made a material
S2P apartment complex
Set NotoSans to non readable
Regenerated NotoSansCJKsc-Bold SDF to extended ascii only, CJK is covered by other fonts already
Fixed duped NotoSans fonts used for apartment mailboxes and doors
Apartment complex S2P
Restored TMP missing font log warning on the client
Restored TMP missing font log warning on the client
merge from skinviewer_bg_fix
Fixed skin viewer backgrounds compression
merge from skinsmemory_optims
Cherrypicked
167938 "Fixed invis or disconnected players blocking halloween candy spawning"
merge from egghunt_spawning_fix
Fixed invis or disconnected players blocking halloween candy spawning
merge from pendingnotice_fix
Fixed pending item notice error (shows up when buying something from the marketplace terminal)
Fixed bootstrap non interactable modal
Fixed missing font server log
Skin viewer uses mip 0 always
Attempt at making downloaded skins streamable like bundled skins
Instead of uploading every mip to VRAM, we save the compressed mips RustNative builds to disk and let Unity stream them
Needs our custom Unity because we can't make textures created by script streamable
13 skins downloaded, went from 210MB to 4.7MB VRAM (one skin in front of me at mip 0, same spot)
Workshop skin textures no longer keep a copy in RAM
Downloaded skin textures were left readable, nothing used that copy
98MB -> 0MB RAM with 22 skins loaded ingame
Fixed our static font being set as readable
The atlases are only in VRAM now, saves another ~42MB RAM
Fixed fonts duped in memory:
- the interaction toast in bootstrap was using the non bootstrap version
- TMP Settings was referencing Roboto which was pulling the entire chain
Saves around ~60MB VRAM and ~30MB RAM
merge from buildingprivilege_cache
Fixed blocks registering with a 0 net id on the server when placed with the building plan
merge from sendmouseevents_optim
Optimized PreUpdate.SendMouseEvents by clearing the main camera event mask, nothing uses OnMouse events
Saves up to 0.08ms a frame in builds
merge from gunfiring_optims
Fixed holding a gun searching the whole inventory every frame for reload ammo types
Holding a gun with a full inventory: 0.06ms -> ~0.01ms
merge from gunfiring_optims
Fixed issues from the far shot and shell replay changes
Stop muzzle flash light casting any shadows past 60 meters cause it's wasteful
Added MaxShadowDistance to LightLOD, default 0 so existing lights aren't changed
Reviewed the 3P gun effects we spawn for distant shots:
- Muzzle particles don't emit past 60m anymore, you only get the muzzle light and the sound
- Shells aren't spawned past 15m
Unchanged when using scopes and binoculars, the distances are stretched based on zoom scale
Set all the gun firing effects warmed up amount accordingly
Estimated +21MB vs main, still around -29MB overall after removing the 3900 useless thrown projectiles
Gun attack effects can now be recycled before their tail sound finishes, means we only have to warm up half the amount we'd need to
Added replayInPlace to EffectRecycle, lets us flag effects that can be replayed in place instead of popping and retiring a pooled copy every time
Applied to AK first and 3rd person shell eject effects for now, ~0.13ms -> ~0.04ms per shot
Also means we'll only have to prewarm a handful of shell particle prefabs for all the guns
Fixed EffectParentToWeaponBone 128B alloc per effect spawn
When in first person, don't spawn effects with HideIfOwnerFirstPerson instead of spawning and hiding them right away
Also fixed the 128B alloc in HideIfOwnerFirstPerson.OnEnable
Saves 0.1ms when firing the AK
Reduced the amount of pooled pilot codelock 200 -> 25
Keylock 1 -> 50
Reduced the amount of pooled blowpipe dart projectiles 100 -> 4
Reduced the amount of pooled ballista projectiles 100 -> 3
Reviewed the amount of bullet impacts and decals we prewarm
- Rock, gravel, stones, metal ore and tundra impacts were only warmed with 1 copy, now 25 like the others.
- Glass impact 25 -> 32, it stays alive for 4s+
- Bullet decals 25 -> 30, forest was set to 1, cactus lowered to 5
Prewarm 10 copies of each sound templates, they were all set to 1
small-sound gets 50
Trying to get to a point where I can empty an AK magazine without instantiating any prefab
Fixed all the references to the default unity Quad in particles not actually using it
Any of these particle being set active in builds could spike up to 7ms, caused by ParticleSystemRenderer::UpdateCachedMesh walking the Quad whole user list to check whether its already registered
It was referenced by thousands of renderers in monument prefabs, this is why the AK muzzle was slow to spawn in
167737