Player movement on server

Hello,

I’m currently programming the movement engine on my multiplayer game. The game is played through a server which validates everything and sends updates to other clients.
Now I’m at the point where it has to validate player movement and send updates to all clients seeing that player.

Now my question is how I should process movement packets from client. What I thought of: Having one extra thread which does movement validation. This thread has a queue which stores incoming movement packets based on the order in which they arrive. Then, in every iteration, it takes the next movement packet from the queue and validates it.

Also of note: the game has tile based movement. Meaning one movement advances the player one tile further.

Is this an OK approach or is there a better one?

I don’t know exactly how you game is programmed but I would think the best way to do this is send an object over a socket from the client to the server at the same time the server is sending you a fixed amount of information like coordinates or you could just send an object over the socket then and have information stored on the server for every player and only send information from the server when there is a change in any player to all the other players. I hope I understood your question and this helps you should also be validating movement server side instead of client side. Just have the server return the player to previous position if it’s an invalid move.