192,569 Commits over 4,049 Days - 1.98cph!
Merge: from parallel_validatemove
* Modifies Full Server Demo recording to grab more data + timestamps per packet
* Adds editor-only "DemoServer" server backend that we can use in editor to play back full server demos. Switch editor to ServerMode and put path in GameSetup object
* New server-side batch-update of players routine - disabled by default as it's not validated yet. Controlled by `server.UsePlayerUpdateJobs`
* Added GamePhysics batch versions of OverlapCapsule and OverlapSphere
* Couple unit tests to check Water's batch queries against non-batched versions
Tests: A lot of server demos recorded and played back in the editor doing core activities (looting, harvesting, interacting). Made sure standalone server and client builds locally.
Merge: from main
Tests: none, no conflicts
mauritia flexuosa - rest of the models and prefabs
merge from ioentity_optims2
honeycomb world model
Meshlod, materials and textures
updated existing honeycomb prefabs accordingly
Smooth out initial tiger rotation when preparing to leap
RF broadcaster and receiver flag networking
merge from jungle_foliage
bee grenade vm
- added new admire
- tweaked throw aim anim
- new animator
- set viewmodel prefab to use new animator
Fixed a crash when spawning certain vehicles
64bit versions of compile tools say that they are 64bit
So it's more clear what version is being used from logs alone
Merged Pull Requests
* TTT: Change holdtypes for consistency with viewmodels
* TTT: clarify Health Station usage hint text
* TTT: Update localization files
* Fixed tool sorting when some tools are missing localization strings
* Micro-optimize Workshop Mount VGUI
Rework how LZMA decompression works for BSP files
The existing code was awful. The new one is less wasteful.
Make util.TableToJSON output whole numbers without decimal point
Minor cleanups
Fixes towards MP3s hanging the game on first playback
* Fixed MP3s recaching 2 times sometimes in a row
* Fixed cache size not being able to exceed 65k
* Make MP3s skip the ID3 data immediately on cache, not on first playback. This makes loading a bit slower per-file, but makes it so we don't need to cache 400KB of useless data per MP3
* Increased amount of cached data for MP3s to satiate initial burst of data access by BASS (from 16K to 96k) This was preventing async load of the entire file
Merged Pull Requests
* Refactor sandbox hints
* Remove angular-ui, jquery-ui, jquery-color
Merge: from main
Tests: none
Clean: ServerDemo - fix up names of entities that get reported via errors
Tests: played back procgen demo
Added a bee swarm ai specific convar to disable them
- Made new convar to ensure AI weapons will also listen to AI settings 'ConVar.AI.effectaiweapons'
- Bee Swarm AI now listens to ignore players and think settings if effect ai weapons is enabled (off by default)
Storage monitor only network flags
Start to preemptively do some optimisation work on BeeSwarms
Bugfix: ServerDemoPlayer - invert the error reporting logic for DestroyEntity
Previously, we considered it an error if we couldn't find an entity that demo stream tried to destroy. But, if the server behaves correctly, then it should be already destroyed - so now we report an error when we do find an entity.
Tests: played back the complex demo from procgen - errors still present, but harmless
Bee Swarm:
- Increased particle size
- If a player has managed to get far away from somehow then give up
Setup Beeswarm death screen info
Ensure beehive natural colliders are synced up across client + server
Lights and ceiling lights network optims
Only network the flags, and only when necessary
Update: FullServerDemo - wrap transient entity snapshotting in try-catch
- Also correctly clean up NetWrite
I've checked a bunch of code related to saving, and I'm 100% certain there are landmines that I haven't spotted. This way I've neutered the danger of recording the demo, and I'll be fixing up those cases as we discover them in the wild.
Tests: recorded a demo on Craggy
Fixed weird natural hive placement on oak_e
Bugfix: FullServerDemo - use save for disk instead of network when snapshotting transient entities
- Also couple safety checks for BasePlayer.Save, since now I'm triggering a path that usually isn't triggered for a class of entities (NPCs)
Tests: while recording a server demo, on a procgen map in a local server did all basic activities (looting, harvesting, crafting and building) + drove a bike and attacked a ScientistNPC at outpost. Then was able to play back both demo chunks.
Tests: on local standalone server and procgen world, went to pier monument and descended to find aggressive NPCs - no more exceptions in server log
merge from ioentity_optims2/timer
▊▌▍▍▆ █▅▆ ▋▇█▇▆█▌▉▇ ▌▅▄▅ █▍ ▉▌█▅▆ ▆▊▌▇ ▅▉▊▊▆ ▊▍▆ ▌▅ "▅▆▍██▋▍▄▇▋" ▋▋▇▆▍█ ▅▌▇▌ ▄▅▉▅▆▊▋ ▆▇▋▍▌▅ ▍▇ ▊▉█
I love you Plastic for selecting all changed files by default
Client predicted timer switch, removes the network update every frame when a timer is running
Also changed the client Update for an invoke, fired when necessary
More polish.
Smoke wisp single sided for better lighting response.
▉▄▋▊▉ ▆█▆▄ ▅▄▋▄▇▊_▌▌▅▍▊▇▍▍█_▆▉▍▉_▉▋_▊▋▋█
Allow motion warping to track targets without jeopardizing the animation rotation (first pass)
- Extract vertical root motion
- Implement motion warping system for tiger leap (first pass)
Render queue tweak for odd viewing angles.
Fixed the bottle ripple accidentally being a fluorescent yellow.
subtracting
114053 - Editor and standalone crashes for certain users (Added correct data path and log path when checking for DLSS support)
Adjusted IO table LOD distances. (LOD1 no longer kicking in when you're almost touching it)
Optimized IO table texture settings and sizes.
Fixed AO on it not being linear (too dark)
Finalized cooking workbench lighting&fx
Add support for streamer mode
- show `STREAMER MODE` instead of the username for all item ownership on client
Merge from petting_gesture
Merge from crafting_update