программирование сокетов - как серверы многопользовательской стрелялки управляют временем? - PullRequest
2 голосов
/ 23 августа 2010

Как серверы стреляющих игр могут управлять временем, например, когда игрок стреляет в другого, как они обеспечивают, чтобы оба игрока получали сообщение в одно и то же время.увидеть каждую деталь, которую игрок делает каждую секунду, и оба игрока видят одинаковые ходы на своем клиенте?Как игровые серверы могут отправлять эти ходы всем клиентам (игрокам) в одно и то же время?

Ответы [ 2 ]

3 голосов
/ 23 августа 2010

Они не видят их в одно и то же время.

Сервер определит, ударил ли выстрел, и отправит обновления клиентам. Затем клиенты будут брать пули, кровь и т. Д.

Там есть цикл синхронизации, но не каждое событие должно быть синхронизировано. Вот почему вы видите, как игрок прыгает под большой задержкой.

С их точки зрения, они работают без сбоев, но из-за задержки ваш клиент не обновляется достаточно быстро.

1 голос
/ 23 августа 2010

Большинство пакетов отправляются с достаточно большой задержкой, чтобы все выглядело нестабильно. Все, что показывает клиент, будет иметь компенсацию запаздывания (предсказание, где снаряды, игроки и т. Д. Будут находиться между кадрами), чтобы было похоже, что пакеты приходят одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...