A great method i use is I can make one player trigger another function on another players screen to simulate the action instead of associating objects. on one end I store a function name and params in dictionary and then send it as json as a message to other players. they see the message parse it back to a dictionary and run the function.
For a game like checkers you could create small functions that perform the move actions. the player that initiates the move just send the function name to the other players... the other player(s) call it at the near same time you did so it looks real time.. you wind up sending like 2-3 messages instead of one for each position move. theres no lag to compensate for.. works realy nice for me... required putting in a persistent call... so if I tell the object to simulate running I tell it to persist on the other players screen until i send the next instruction to stop. Sorry no tutorial but its an idea that i think others would benefit from...