DragonFireGames then yeah i've done that. you just need the movements of the player sent with keyvalues in an array in a timed buffer of, let's say 300 ms (about the latency of my other game). then that array of probably 7-10 ish movements gets received by the other players and is put into an array that is constantly updating the other players' positions but at a rate RELATIVE to what the timed buffer from before was
if that didnt make sense, tldr:
time the movements, send them, receive the movements and update positions
one movement can be represented by a mouse down event. should be enough to get that smooth gameplay