it makes me wonder if there's a way of encoding some kind of extremely compressed lossy version of the entire game state that can patch each player's state to be incrementally more "correct". Then on slow connections you're still keeping positions broadly where they should be, while faster connections will bring the game state to a more precisely correct state. How would you create such a packet without knowledge of each player's differences?
Just a thought experiment I was having. What if the game state was represented as a very large N dimensional vector. The most significant bits are sent until the players report that they match. then the next significant bits. then the next after that. Adapt the granularity of an update to the current throughput. If a player disconnects for 10, 20 seconds their game state re-syncs smoothly and gradually instead of in a jump cut?
Just a thought experiment I was having. What if the game state was represented as a very large N dimensional vector. The most significant bits are sent until the players report that they match. then the next significant bits. then the next after that. Adapt the granularity of an update to the current throughput. If a player disconnects for 10, 20 seconds their game state re-syncs smoothly and gradually instead of in a jump cut?