Я новичок в разработке игр и изучаю многопользовательские игры. Я заметил, что всегда есть некоторая задержка, игроки всегда получают обновления от прошлых действий. Но есть методы, такие как мертвая расплата, чтобы справиться с задержкой. Я могу предсказать движение и сделать движения плавными. Но как бы заставить синхронизировать действия, такие как прыжки, остановка ходьбы и т. Д.
Предположим, что клиент А двигался, он был на 100 м в 10,2 раза со скоростью 100 м / с и отправил эту информацию. Клиент Б получит эту информацию несколько позже, пусть это будет 10.4. Поэтому на клиенте B я могу использовать прогнозирование и разместить клиента A на расстоянии 120 метров. Но что, если клиент сделал прыжок на 110 м в 10.3. Я не могу предсказать это, и так как я использовал предсказание, я не могу показать, как клиент А прыгал в прошлое.
Я могу справиться с этой проблемой, вообще не отправляя прыжковое действие. Но что если в моей игре есть пустоты, в которых игроки могут упасть и умереть? Итак, если я не синхронизирую действия прыжка, другие игроки заметят, что бегал один игрок, тогда он падает в пустоту, а затем снова появляется на экране, разрушая визуальное сражение.
Прыжок является лишь примером, может быть много сценариев, когда предсказание не может работать. Итак, как с ними бороться. Одним из таких примеров могут быть многопользовательские игры на арене сражений, такие как Awesomenauts.