249,481 Commits over 3,959 Days - 2.63cph!
merge from localcoord-blend-layer
Optimize navmesh geometry collection by fully utilizing the BVH of a physics mesh
Merge: from profiling_improvements
- Moves core of ServerProfiler to an unmanaged DLL - this deals with various mod issues and massively reduces recording overhead (less than 10% vs previous up to 7x).
- Snapshot marks are prefixed with assembly name
Tests:
- 3 times in a row: Generated snapshot in editor on Craggy
- 5 times in a row: Generated snapshot in Release standalone server with 6k world and 190k entities (with borked and good harmony mods)
- 3 times in a row: Generated snapshot in Debug standalone server with 6k world and 190k entities (with borked and good harmony mods)
- Built Wint64 client (debug and relase); booted up release
Set battering ram gibs mesh to read/write enabled
Updated gibbable component
Clear volumetric fog texture on creation, this seems to could've caused problems even back on Alyx but issue is bigger now that we don't write to all volumetric fog froxels at once
Fix ClearUnorderedAccessViewUint not clearing properly for Texture2DArray and Texture3D
▌▍▆ ▍▅▌▆▉▇▄▅▌▊ ▅█▍▄▆▇█ ▇▆ ▄▋▇▆▌▌ ▄▊▌▄▋▉ ▋▇▌▊▊▄ ▉▉▋▇▍▉▋▋▍ ▌▋▆ ▊▄▊▉▌█▉▍▍▇█
- ▊▅ ▅▅ ▅█▄▄ ▇▊▇ ▌▌▉▋▌▌▉▄▍ ▅▍▊█▊▌▅ ██▅ ▋▄ ▆▄▄▆▌█▉▇ ▌▌ ▇▉▇▅▋▄▅▉ ▋▇▍█▇▋█ ▊█▆▆▊▊▅▌ ▆▊▋██▄▇▄▋ ▅▇▉▄▄█▄▅▆▌
Mini crossbow icon render setup and icon
Update: Avoid shipping ServerProfiler to clients
- Done by deleting the dll after it's built
Tests: Build Win64 Client Debug and Release - no more dll
Update Catapult Flammable Ammo Textures and LODS
Handle TcpSocket not being able to start more gracefully
Auto Switch to Best Host Candidate (#1705)
Previously anyone could be assigned as a host when the host leaves. Now we'll score lobby members by their average ping and average connection quality to all other peers and use that score to determine who to give the host to.
When a host leaves, we'll try to find a good candidate and set the owner immediately first, but if that fails, it'll happen the next time someone is automatically assigned to be the host.
Previously, a connecting client could be assigned the host, but this is no longer the case as clients must be fully connected to be considered as a candidate.
In addition, we'll periodically attempt to find and change to the best host candidate. This particular behavior can be disabled per project or per lobby.
Stop reloading cookies, history etc whenever the asset browser becomes revisible
Move project-aware location logic to AssetBrowserLocation, special cases for Core/Citizen, use root title in path widget
Refresh asset browser sidebar, hide built in content behind 'Show Base Content' toggle
FindProjectByDirectory prefers closest match in case of nested project paths (eg libraries)
Disable ShowBaseContent by default
Fix long FolderNode labels getting cut off early
Selecting sidebar node for current location works with all node types
Add server tags as LobbyInformation.Data
Update UI button prompts to show controller glyphs when playing on controller
launcher reload bug fix attempt 1 + dryfire additions/improvements
exported wolf attack ledge animation
Update SpriteTools
Add Crosshair visual to WeaponComponent
Fix LeaderboardPanel Sorting
Update Input Actions + Crosshair tweaks
Improve controller support
Can now optionally aim/fire with arrow keys
Some tidy up, improvements to algo
Die if health is 0
Destroy Observer when respawning
Update PlayerController to latest
* Update animation wish_ vars
* Delete RigidBody/Colliders on delete instead of leaving them invisible
* Store colliders on their own child GameObject so they can have isolated tags
Update player.prefab
Fill in PlayerController ref
IsValid checks in PlayerInteractor
drawbridges door prefabs and setup, anim controllers
Ammo/reloading
Fix player not dying when health is 0
Fix player respawning hundreds of times
PlayerController creates colliders on a child object, can have set collision tags
Flesh impacts
Update player.prefab
Add TraceAttack, ignore playercontroller colliders, use hitboxes
Update ViewModel position in PreRender
Optimize navmesh generation by pooling generators (#1703)
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Reset room
Use new leaderboard tag
Gizmo on moving platform
Room tweaks
Fade sepia effect instead of popping in and out, expose to AG
Add freezing tutorial hints, blurs the screen, lets the player focus on reading - then hit the key to dismiss it
Multiplayer/networking project settings. Add option to change Destroy Lobby When Host Leaves and Auto Switch To Best Host. Defaults can be set in Project Settings but can be overriden via Lobby Config.
Improve navmesh generator cleanip
Reenable AssertNoGraphErrorsInScene test
Save/load permanent RCON IP bans
Merge from main to jungle ruins
Mini crossbow:
- Swapped world model to use the viewmodel for just now
- Added multi swap arrow script to support multiple swap arrows in different slots
▊▌▉▆▅▋▇▍ █▉▇▊ ▇▄▋▉▍▄ ▉█▆▊▌ ▍▇▇▅▊█ ▊█▍▆▋ ▍▍▅▉ ▇█▋▍▄▌▉▆▅▆▌▋▅▆▅▋█▍▄▊▍▌▉▊█▋▅█▇▊▅▋▇█ ▊▄▊▇▊▍▇▄▅ ▌▋ ▊▉▅▋▉ ▇▍▍▉▊▉ ▍ ▄█▆▊▅▌▉ ▅▅█▊▉ ▄▄▄▇▄▆▌▋▊ ▍▋ ▆▍▊▌▇▅▋▋▌▅▅ ▉▍█ ▆▆▅▊▋▊ ▆▌▊ ▋█▆▊▌▇ ▋▋▆-▅▊▍▋█▄▅▍ (▇▊▌▇▌█ ▅▌ ▋▍▊▄▌▆▉▇▇▍█▅ ▉▌█▄ ▇▍█▆█)
Can now set height directly on a layer instead of having a single distance-between float. Added JsonUpgrader where needed
Update: added Assembly name to the snapshot marks
Makes it a bit clearer where calls are coming from at the expense of larger snapshot(compressed: 2mb -> 7mb, json: 50mb->140mb). But, since the profiler is much faster now, the snapshots are smaller on 6k servers.
Tests: exported 2 snapshots from Editor's Craggy, and exported 5 from standalone 6k server
Bugfix: Prohibit constexpr initialization of mutexes in ServerProfiler.Core
Turns out the toolset I'm using produces non-binary compatible assembly - using an escape hatch to avoid this issue. This only manifested in standalone builds.
Tests: exported 5 snapshots from procgen 6k world in a row over 2 minutes. Used both borked and good hamony mods as well.
merge from upgrade_forgiveness
merge from skin_change_noclip_fix
▍▋▊▌▄ ▉▆█▊ ▍▅▅▉█▌_▅▄▋▇▋▇▍_▊▉▊▌▅▇▉▄_▌▄█▉█▊▇
█▉▍▉▉ ▋▋▍█ ▊██▌▍_▅▉▊▄▇_▇▅▊█▅▉▅
▍▆▆▇▅ ▌▇█▇ ▆▋▊▅▇█_▍▆█▆▍▄_█▆▌█▉█_▄▍█▅▉
█▍▉▅▊ ▍▌▍▆ ▌▍▌█▌▋▇▋▌▆_▉▍▆▅█_▇▌▉█▋▊
Temporarily ignoring AssertNoGraphErrorsInScene