Nitrox
Nitrox copied to clipboard
Movement Overhaul
-
[x] Movements of Vehicles easily Desynced
-
[x] Game's Player.cs changes Rigidbody Interpolation on Cyclops when entering
-
[x] Game's Player is not relative to the Cyclops when inside, except when piloting
-
[ ] Cyclops Movement is still jagged from the perspective of players not piloting the Cyclops, I am unable to figure out a fix for this issue and it still affects the current Nitrox as well. More accurately this issue only appears to affect the look of the environment outside of the Cyclops.
-
[x] Fix Bugs
- [x] Cyclops jumps in some direction when swapping SimulationOwnership
- [x] Seamoth and Prawn Suit are still jagged, can be fixed unlike the Cyclops which has been mitigated
- [x] Seamoth has gained yeeting capabilities
Bugs noticed for other PRs
- Items held in player's hands have Colliders enabled for remote players
- Beds and Benches lock players in place after/during usage
Vehicle positions are more resilient, and the Cyclops interpolation has been fixed, LocalPlayer in the Cyclops has been partially fixed but Y axis movement is still an issue
I've no idea what the syncing mechanism behind the nitrox is. But hope this reliable networking model from valve might help a bit.
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
I've no idea what the syncing mechanism behind the nitrox is. But hope this reliable networking model from valve might help a bit.
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
We use https://github.com/RevenantX/LiteNetLib which can do NAT hole punching and is very reliable so far, for us. But we're looking into using Steam P2P as alternative for users unable to port forward or behind a dynamic IP (which works poorly for hosting game servers).
@ywgATustcbbs assuming i'm understanding the reason for your suggestion properly...
for the LocalPlayer its position is not actually updated by the server, its more the LocalPlayer simulates its own position and the positions of other Entities that they have acquired a Simulation lock for, in this instance the Remote player's movement is fine, but the LocalPlayer as controlled by the game's code, is experiencing issues with movement in relation to the Cyclops
I've no idea what the syncing mechanism behind the nitrox is. But hope this reliable networking model from valve might help a bit. https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
We use https://github.com/RevenantX/LiteNetLib which can do NAT hole punching and is very reliable so far, for us. But we're looking into using Steam P2P as alternative for users unable to port forward or behind a dynamic IP (which works poorly for hosting game servers).
The article is about how valve's source engine processes different players' lag, entity interpolation and syncing game world with server. It's a general and reliable model used by valve's fps games such as cs:go. That's why i think it might be useful in solving client/server movement syncing issues of nitrox. But as described by killzoms. Subnautica might have a different system that processes player movement which can't be taken over by nitrox
We can technically replace the system the game uses for player movement entirely, although it might be easier to identify where the bug originates from and fix that
this is now ready for review
New Commit for requested changes.
Rebased branch and fixed null ref