Panda Pajama ответ довольно хороший.
По сути, вопрос сводится к тому, какой минимальный объем данных вы можете отправить, чтобы привести несколько клиентов в одинаковую осведомленность о состоянии друг друга, и как вы справляетесь с задержкой, когда во время этой задержки клиенты могут находиться в другом состоянии.
Таким образом, процедурно генерируемый, где все взаимодействия известны раньше, проще всего, так как, если все переменные известны, результат известен. Например, изолируйте человека в комнате, для которого вы знаете методы обработки, и предоставьте ему некоторый набор данных, чтобы вы могли точно предсказать результаты. Поэтому вы можете дать каждому клиенту результаты, не дожидаясь, пока этот клиент завершит свои вычисления.
Однако он не упомянул один метод. Принудительные результаты.
Если система ожидает действия какого-либо объекта, и другие действия зависят от этого действия, а другие вычисления учитывают это действие и уже были предварительно обработаны с ожидаемым результатом. Затем, чтобы поддерживать синхронизацию, вся система останавливается, в то время как один объект, который находится не в нужном месте, корректно возвращается на его путь.
Примером из реальной жизни являются все другие объекты в схеме удержания, чтобы убедиться, что мне отправлена надлежащая компенсация.