Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Implement client bubble PVS. #983
FYI there are still some outstanding known errata w/ picking parents/children.
Needs more testing to narrow down when/where/how.
I will be making client changes to support position being NaN in state updates as "don't vanish until seen" mechanics so the client can't see things are being unseen.
from discord, a rough explanation;
include contained entities fix line edit crash when clipboard contents are null somehow use CVar for update bubble range remove seenMovers that get NaN'd out of MaxUpdateRange - huge reduction in network traffic from bullets cut default of MaxUpdateRange down to 12.5 for now maybe handle teleported things handle removing player state on disconnect fixed positional audio errors make UpdateEntityTree also update player's last seen ents make net.maxupdaterange cvar tunable at runtime w/o impacting performance back to position nan as means to hide from client revert work pooling as the wrong player was getting the wrong game state ffs needed to think less about *if* something is *seen* and more about *when* it must be *unseen* clean up usings handle parenting and sequencing issues that arise on the client gather needed ents to update recursively applied suggestions from code review fix missing recursively contained ents make assumption that client last saw things on first tick instead of tick zero, as zero would be the "from tick" and first would be he "to tick" add First tick as constant to GameTick due to relevance above renamed includedEnts to checkedEnts to make usage more clear added comments inverted some conditions to flatten parts of the pvs logic fixed sending states when already seen (lastChange < lastSeen to lastChange <= lastSeen) fix sending states when no actual changes (other bugs?) local caching of currentTick, remove priorTick
Acruid left a comment
There are a few edge cases that need to be looked at, mainly around world parenting and shuttles. As far as I can tell these problems are because the TransformComponent is poorly implemented, and really needs some testing and API tweaks. The main features were successfully implemented and seem stable enough for the CM test at the end of the month, so I am approving this.