Is running the same input deterministic?

Nano

New member
I've been looking into implementing UCC with my own custom networking solution. So far I've looked extensively at the PUN implementation but instead of sending position from the server I ideally want to play the same input out on both the server and client for each character in a sort of lock step solution.

To do this I wrote my own Input that inherits from the Opsive input in which I feed input through. I've also replaced all the fixed updates so that I can manually tick UCC and my character. Despite my best effort, I am still finding that the server and client are producing different results. So I'm left to wonder if this should be deterministic?

I am using the kinematic object manager on both the client and server. I'm also using the First Person Combat movement and camera. Let me know if there is more information I can provide. Mostly I'm interested in what should be deterministic and where I might be going wrong! I thought I'd make sure I'm approaching this in the right way before syncing tons of time into trying to diagnose where my simulation is different.
 
Just so I understand properly, what's the reason you need the characters to have identical positions on both the client and server at the same time? Depending on what you're trying to achieve, you may be able to go for a server-controlled approach instead (although I imagine that discussion would go beyond the purview of this forum).
 
A server controlled approach would work for what I need. How would you recommend running client side prediction though?
 
Way in the beginning I had a UNET implementation that was deterministic with server reconciliation and client side prediction. The controller at that time was deterministic and the core locomotion hasn't changed so I expect that it still would be assuming that you are running in FixedUpdate.
 
Hmm, if I wanted to look into adding client-side prediction do you have any recommendations on where to start? Is there a simple way to do rollbacks?
 
It has been awhile since I looked at it but I started with a non-root motion character. I made sure the locomotion was working correctly before moving onto the animation side.

Is there a simple way to do rollbacks?
No, there isn't anything built in for that.
 
Top