Conversation
… of github.com:Unity-Technologies/com.unity.multiplayer.rfcs into rfc/network-transform-smoothing/buffered-interpolation * 'rfc/network-transform-smoothing/buffered-interpolation' of github.com:Unity-Technologies/com.unity.multiplayer.rfcs: adding video
LukeStampfli
left a comment
There was a problem hiding this comment.
I think I can agree with the overall idea behind this.
What is a bit worrying is that the Interpolator does a lot of things in addition to interpolating. It is also storing a state history and is aware of frames/ticks. I can see why we are doing it to quickly fix issues in the NetworkTransform but I think we will need get back to this and redesign it when we get snapshots.
It's very possible we'll need to break the API with snapshot, but I'm not sure. Passing a Vector3 for position to AddMeasurement would still happen, snapshot or no snapshot. Passing a NetworkTime would still happen snapshot or no snapshot. |
What I hope happens is, once Snapshot is there and works, for the interpolator to attach to the NetworkVariable directly. Then the NetworkTransform responsibility becomes ones of integrating with the Unity's transforms and integration with UI, surfacing parameters type stuff. But I hope the interpolation to eventually go down into NetworkVariables. Would still use the/an interpolator, but just not tied to NetworkTransform, if that makes sense. |
I'm still not convinced about moving this in NetVar. I had to move transform state sending to NetworkTick in NetworkTransform in order to make this fit with BufferedInterpolation. I'm pretty sure we can't impose this on NetVar update call sites. |
Co-authored-by: M. Fatih MAR <mfatihmar@gmail.com>
…n' and 'rfc/network-transform-smoothing/buffered-interpolation' of github.com:Unity-Technologies/com.unity.multiplayer.rfcs into rfc/network-transform-smoothing/buffered-interpolation * 'rfc/network-transform-smoothing/buffered-interpolation' of github.com:Unity-Technologies/com.unity.multiplayer.rfcs: small syntax fixes Update text/0000-network-transform-buffered-interpolation.md * 'rfc/network-transform-smoothing/buffered-interpolation' of github.com:Unity-Technologies/com.unity.multiplayer.rfcs: small syntax fixes Update text/0000-network-transform-buffered-interpolation.md
…l be a UX implementation detail
LukeStampfli
left a comment
There was a problem hiding this comment.
No more scriptable objects yay 😄
|
Just so I understand we are still purposing the addition of an interface ? And the ability to set per object different interp algorithms? If so I am going to want to understand why we need this. I truely believe 90% of the time most devs won't change it beyond the default one. So to me we should make that the best possible algorithm and say if you want something special there is the code write it yourself. We constantly try to provide this plug and play swap this and that model and I just don't see the argument for it. You mentioned several other engine all of which have one path maybe with some nobs and dials and 100s and 100s of multiplayer games have shipped on them. We don't need to solve for everyone we need to solve for the majority. |
@andrews-unity |
Adding buffered interpolation to network transform following this RFC Unity-Technologies/com.unity.multiplayer.rfcs#28 This will smooth out transform updates over jittery networks and help alleviate some packet loss. Jira: MTT-876
Adding buffered interpolation to network transform following this RFC Unity-Technologies/com.unity.multiplayer.rfcs#28 This will smooth out transform updates over jittery networks and help alleviate some packet loss. Jira: MTT-876
See this page for formatted view