   SYNCHRONIZE among multiple players
  Hi all,There's really my problem : There are many charactors ALWAYS MOVE in my game, they almost don't stop when players play game, to SYNCHRONIZE their position among players, I have to init and move them in server then update their posistion to clients, I create a timer(50 miliseconds) ,I change their position and send new their position to clients in timer function. That's problem too, there will be huge message transfer to clients, does that descrease server performance ? Dose anyone have an other idea to SYNCHRONIZE charactors position while they are moving ?   
  If you need perfect sync, then you need the lock-step model. Check out the "1,500 archers" article in the Forum FAQ for more information.   ;  for fast gaming, the position of the player doesn't have to be 100% correct. The server usually sends position updates to all clients, and the clients interpolate/extrapolate their positions from there. Yes, it's a lot of data (3 floats, 12 bytes per player, plus all the rest), but unless you run a lock-step, deterministic simulation, it's the only way (packet loss and latency will bite you if you just send inputs). However, servers typically send at low rates (10 fps, 20 fps, on lan, 30 fps). The interpolation takes care of smooth transitions between player updates. You can further reduce the rate based on the visibility of each player regarding other players (players very far away or entirely not visible within a second time frame, you can send every seconds). For client side prediction and server corrections, look at gapher's article on networked physics. For further optimisations, games like quake3 and the source engine use delta compression, so you send only what's changed from the what state the client last aknowledged.The delta compression can be grafted later on as an optimisation if the data is really too big (which it can be if you start doing delta comp, then you will have to consider the full game state, which can be several kilobytes uncompressed).   