This is a networked multiplayer proof of concept I was working on in Unreal Engine 4. Machines in the world randomly break and players need to go repair them. Everything is synced. Players can work together to repair machines or fix them separately. One player could start fixing a machine and then go to another machine while a second player finishes repairing the first machine. All of the data is kept in a server-side state. Players sync the minimum necessary to keep optimization high.

Created in Unreal 4. Coded in Blueprint and C++

The model I used was a host player model. The host player keeps the correct state server side. Every other player interacts with the world and their input and movement are sent to the server. In order for players to see immediate results, I start faking the interaction on the client side and use interpolation of the server results to smooth the process. In the event that the client is wrong, then the client would see much less smoothing on the client side that could create a rubber-banding effect. When the connection is smooth and results are correct, then everything on the client seems instantaneous and accurate.