4,702 Commits over 762 Days - 0.26cph!
Added sleepy system to boats
Boats will sleep when the lose all targets and have lost them for x seconds
boat_ai_optimisations -> naval_update
Fix notification 'red bubble' not appearing when we have unread notifications on launch
Fix twitch drop background NRE
fix_dumb_name -> naval_update
Rename 'Mouted' to 'Mounted'
Move useable by turret check to the serverside
Lower wander strength to stop them running into walls
New avoidance update interval convar
Codegen
Get BoatAI down from 4ms every frame (for 12 boats) to around .2 ms for the same 12
Seperate physics queries from the avoidance logic itself
Use cached physics results for a few frames instead of having to request fresh data every cycle
Swap all of the raycasting to run on jobs via RaycastCommands
Drop context resolution 12 -> 8
Still gives us plenty of data but saves 4 rays
Swap AIDriverUpdateAction InvokeRepeating to InvokeRandomized so we dont flood the thread
Run every 100ms rather than every frame
naval_update/gun_turret -> naval_update
naval_update -> gun_turret
Apply changes to default prefab
Make turret entity invinsible
Position changes
Rename internall turret seat
Move aim position
Manifest
Interpolate server states with IGenericLerpTarget, thanks Bill!
Swap yaw/pitch sync vars over to a single ServersideMountedWeaponSnapshot syncvar
Fix more rotation issues, offset the parent correctly
Point guns in the correct direction
Spawn 2 50cal guns for the dual version and point both slightly inwards to rotate towards the same forward
Ensure you cant loot the front turret ammo (this will be used by NPCs for reloads)
Disable 50 cal colliders for now
Was intersecting with the PT Boat
Fix bone name collisions with my crappy year old tool
Further pivot point and spawn point refinements
Make an actual item for the 50cal turret rather than using an m249
naval_update -> naval_update/gun_turret
extend_menu_loadingscreen -> main
extend_menu_loadingscreen -> main
Add 'finalising' step to the main menu loading screen (only the very first one), this masks any final extra processing steps that are required and helps shield the user from a bad stutter
We were showing the menu slightly too early before processing was fully complete
prioritise_premium_community_2 -> main
Only show prioritise premium if the browser can even support it
Ensure it only works for the official category
twitch_modal_dash_support -> main
Support loading twitch drop campaign image from the dash
Load when first starting up the menu
server_browser_budgeting -> main
Use a stopwatch to check how long we are taking on the current ServerCacheQuery batch, if over 2ms then yield for the next frame, or continuously allow processing up to 50 elements per time
This (in reality) results in a constant overhead of 4ms until the results are processed rather than a single lag spike. I think its better and can be tuned a bit more in future by just upping the budget
By the time you've click the server browser a few seconds have passed and most of the queue is empty anyway
Drop match ServerInfo creation batch size from 500 to 50, and use Task.Yield() rather than delay
Do the mode parsing inside the ServerInfo single loop itself. This saves us around 15% of total ms cost per server info constructor creation
Ends up saving around 14ms~ when creating a batch of 500 ServerInfos
Fix all of the weird rotation issues
Swap to quaternions - getting gimbal lock already
Stop the turret from flipping the equipped weapon
Using Syncvars - raw move the turret to be pointing the intended directin of the user
Fix the seat mount spawning us at weird angles (removed eye override)
- New turret setup
- Can now mount turret
- Server inputs passed as normal through the seat to the mounted weapon
- Can setup the mounted weapon with any in game BaseProjectile weapon (m249 for now)
- Backend like the attack helicopter gunner, echo out server movements to the client
- String pool gen
- Manifest