One approach that is often used is to have fairly simple physics (sweep a sphere against a BSP tree, or similar) and then run "secondary simulation" on the client to make it look better (foot IK, moving guns/arms so they don't penetrate the wall, etc)
I am sorry I can't understand "secondary simulation", does means client received the position/state of character simulated by server, client simulate it again? has some articles explained this?
Thank you very much! I test this method, set MAX_RANGE=1000, then sent_value approximate equals to received_value plus or minus 0.02. I can use the map which has 1800*1800 size About the physical simulation,client just need calculate one character, but server has thousand of characters. If the server run the same simulation, I think may be it will crash.