Мультиплеер туториал 1: основы

1
  • 6 favourites

Index

Tagged

Contributors

Stats

45,766 visits, 69,041 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Нестабильный интернет (The chaos of the Internet)

Предположим теперь, когда игроки присоединились к комнате, успешно связанной с хостом, и игра "мултьиплеер" началась. Мы можем теперь игнорировать Сигнальный сервер: в нём больше нет необходимости .

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

Мультиплеерные игры были бы более простыми, если бы вся передача данных по Интернету была мгновенна. НО это увы не так, мгновенная передача данных возможна в локальных сетях. Интернет так устроен, что между двумя игроками может быть 20 и более устройств сети (типа маршрутизаторов).

Чем больше таких точек, тем больше будет проседать скорость передачи данных, и это следует учитывать, во время планирования мультиплеера.

Точки (типа маршрутизаторов) способны принимать и отправлять даннае за доли милисекунд, но это в иделае. На практике это немного по-другому, точкам приходится обрабатывать сотни запросов в секунду и драгоценное время начинает стремительно таять.

К тому же возьмем небольшой пример. Если игрок из Лондона в Великобритании соединяется с Сиднеем в Австралии, данные должны поехать приблизительно 17,000km. Если двигаться по прямой линии на скорости света, это займет бы вокруг 57ms. Физически невозможно получить данные там быстрее чем это время. Делаем поправку на количество точек по пути, плюс не прямой путь, плюс коэффициент потерь по линии, и на выходе получим 200 ms в среднем.

Это очень важно понимать при планировании игры с мультиплеером.

  • 0 Comments

  • Order by
Want to leave a comment? Login or Register an account!