I'm programming a dedicated server in C# using BeamServer2 DLL's. At first I wanted to be able to see other players move on our already made Omuni map. This I did by just sending your position to the server each frame. This worked out and I was able to play with a few friends but the movement wasn't laggfree. So I started trying to add movement smoothing and also some security so they can't just send a false position to the server without the server stopping it from reaching the other clients.
What I than did, I made a masterClient that has a movementController on the remotePlayer. When a client wants to move he moves localy and sends a message to the server with hes direction to move. The server than takes hes speed and sends it to the masterClient. The masterClient than moves the remotePlayer just like the remotePlayer moves himself. When he stopes moving he sends a message with hes position in it. The masterclient than checkes if the position that he has come to is as close as the position he has from the client, if it is realistic according to the ping of the client the server puts him on the client's position.
This works, but I still have a lagg problem and I'm not sure how to fix this. I must make movement smoothing on the client but I found out myself that I can just lerp (x/2,y/2,z/2) to the position and put him on the real position next frame, I failed at that and I will try again soon. Even if that is added I'm not sure if the lagg is fixed.
Any other techniques, suggestions, questions, ... ? Thanks, Diede.