Я не спец в игрострое, но попробую объяснить, как сам понимаю процесс. Пусть поправят гуру.
Информация о положении объекта, его свойствах, координатах и т.д. Храниться в клиенте и на сервере, соответственно, сервер и клиент обмениваются информацией в двухстороннем режиме (с задержкой связанной с интернетом и предусмотренной разработчиком). Соответственно, если 10 пользователей взаимодействуют с 1 предметом, допустим кружкой, одновременно, все тянут ее в разные стороны. Тогда должен быть алгоритм, который решает данный конфликт. В каждом игровом движке свои методы. Они по разному оптимизированы и баги связаны именно с оптимизацией. Допустим Ваш клиент прорисовывает Ваши действия на кружку, не связавшись с сервером, так как это чаще не нужно, посылает на сервер данные о изменении положения кружки. Но на сервере уже приняты изменения от другого игрока. И в ответ Вы получаете координаты, которые совершенно противоположны Вашим, Ваш клиент перерисовывает кружку согласно эталонным (пришедшим с сервера) координатам. И Вы видите, как у Вас в руках кружка пропала и появилась в другом месте. Что бы решить подобные конфликты, должен быть принципиально иной метод, отличный от сервер+много клиентов. Мир должен быть в 1 месте, а игрок должен быть объектом этого мира. Когда мощности компьютеров возрастут, наверное так и будет. 1 сервер, который продумывает все и рендерить кадры для каждого игрока в отдельности, а не возлагая эту функцию на клиент. Рассчитывая все силы и их векторы, которые действуют на объект.
По сути наш мир устроен именно так как Вы хотите, но для вычисления используется колоссальная мощность. Поэтому мы упрощаем некоторые вещи.