I’m confused about the reliability of the replication.
This document says that property replication is reliable, but it’s possible that some individual property value changes will be skipped. Isn’t that contradictory? I thought being possible to be skipped means unreliable.
This document says that the primary use of RPCs is to do unreliable gameplay events, yet you can specify it as Reliable.
I’m really confused. What should I use if I really want it reliable?
Also, what about the order? For example:
- If I change 2 properties in the same frame on server, will the changes arrive at client the same frame as well?
- When I call 2 RPCs in subsequent frames, will they be called on the remote machine in the same order?
- What about the combination of properties changes and RPCs calls, are their changes/calls kept same order over network?
My goal is replicate my state machine(in code, not the animation state machine graph) over network. For example, for attack state I only need to replicate aiming target. For jump state I only need to replicate a jump impulse and angle. For walking state I may need to replicate more things such as location and velocity, which is ok to be unreliable… And of course, I need to replicate the current state, which is just an enum/int and doesn’t change much, but when it changes I need it 100% reliably replicated.
So 2 key things for me:
- In different state, I have different amount of data to replicate.
- I want to replicate them in correct order (e.g., state changes to jump and jump impulse and angle come at the same time).
What’s the best way to achieve these two?