4,565 Commits over 731 Days - 0.26cph!
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
MountedWeaponSeat is now a generic style of seat that can be used with any attached turret
Create ServersideMountedWeapon, borrowing a lot of code from the attack helicopter turret
Setup interfaces to facilitate the generic seat
Add Check.IsValidWeapon to check if an Item is a valid weapon
Mounted weapon seat and mounted weapon owner system
pt_boat_gun_setup -> naval_update
scientist_boat_ai -> naval_update
Codegen after merging naval update
naval_update -> scientist_boat_ai
Fix compile error with our new changes
Remove a dumb 200 byte allocation on our blur step
Integrate RHIBs into the deepsea
Spawn them in cool triangle formations (auto generate groups)
Wiping the deep sea will wipe rhib group info
Only try and maintain cohesion in the wander state
Add some methods to wipe coordination when the deep sea resets
simple boid behaviour in groups
groups will attempt to stick together as much as possible
Add 'grouping' system:
Boats can be spawned in groups
If one of the group members targets an enemy we can ensure all of the boats target the same one, this keeps them all focused and together
AI boats will now attempt to ram players
AI Boats will sometimes drive by the targets then pull in front or behind them
Reverse steering if we are going backwards
Bring back incremental steering
Fixed bugs with moving the claim from one boat to the other
If a claimant boat to a target is removed then inform the other boats that a new claimant position has opened up
This means if you kill the main boat attacking you, the other boats waiting in the attack 'queue' can have a stab at killing you instead
Much better near and far distances when dealing with the boat coordinator
Debugging
Connect to the coordinator on init and leave on remove
When you find a target that you want - register it as yours, this prevents other boats from taking it
Boat coordination system setup
Provides an avenue for boats to claim/unclaim targets, this prevents lots of boats from dogpilling on a single target
If driver is killed - totally remove AI
Make RHIB scientists much weaker than regular scientists
Prevent overcorrection when approaching targets
Put debug drawing behind a variable
Move constants to BoatAI.Data
Prevent Reserializing fields when changing symbols
Apply blurring over the whole context space to try and prevent oscillations between very similar states
Use scoring for picking context directions rather than lowest danger weighting
Prevent boats from jiggling once they reach their target position
Codegen
metabolism_fast_fix -> main
Attempted fix for metabolism ticking too fast
Swapped over to a double rather than a float
scientist_boat_ai -> naval_update
Apply shelf
11387 for Flavien
Remove logs
Add back avoidance
Finally! Working 360 degree avoidance (sixth attempt at avoidance, seems to be the final version!)
Stop NPCs on the boat from being targetted as enemies (boat would drive around in circles trying to get close to a passenger)
Fix Y values screwing up our targetting vector logic
Obstacle system was transforming direction when it didnt need to