Обычно вы отправляете обновления двумя способами:
- Вы регулярно транслируете быстро меняющееся, но менее важное состояние, такое как позиции объекта, так часто, как это необходимо (например, несколько раз в секунду)
- Вы отправляете уведомление о важных событиях, когда они происходят.
Сериализация данных на сервере и отправка их клиенту - это нормально, но отправляйте только то, что вам нужно, и не используйте типы данных большего размера, чем необходимо. В будущем вам, возможно, придется подумать о библиотеках сериализации сторонних производителей, которые, возможно, более производительны или имеют более компактное представление, но сейчас вы немного отошли от этого. Вам также нужно будет подумать, что делать, когда отправляемый объект каким-либо образом меняет формат; это сломает старых клиентов?
Одной из основных задач сервера является обеспечение того, чтобы вы отправляли сообщения только тем людям, которые действительно в них нуждаются; это обычно делается как минимум проверкой расстояния. Вы также можете проверить, нужно ли вообще что-то отправлять; если объект не перемещался с прошлого раза, нет необходимости повторно транслировать свою позицию.
Клиент-сервер - это другое дело: если вы слепо десериализуете отправленные вами объекты, то хакеры могут причинить вам боль. Планируйте безопасность с самого начала. Пусть клиент отправит вам простые данные, которые легко проверить и проверить, и выбросит все подозрительные данные, которые вы получили.