Как некоторые онлайн-игры позволяют игроку быть хостом?
Например, Steam-версия игры Left 4 Dead. В ней можно создать локальный сервер и стать таким образом хостом, к которому смогут подключиться другие игроки через Интернет. При этом не нужно ни пробрасывать порты, ни даже иметь белый IP на своем устройстве (т.е. можно стать хостом даже если сидишь за NAT провайдера). Каким образом это делается?
Ярослав Иванов, Но соединение-то идет напрямую от игрока к хосту. Например, если я создал сервер, то чем ближе игроки ко мне географически, тем меньше у них пинг.
Newfag1994, Соединение устанавливается через сервер, если есть возможность установить прямое соединение - они устанавливается, иначе работа так и идет через сервер.
А может быть такое, что при создании локального сервера он устанавливает соединение с внешним сервером, который, в свою очередь, получает IP и порт локального сервера и хранит эту информацию у себя? И при подключении других игроков они сначала подключаются к этому внешнему серверу, он им отдает IP и порт локального сервера, а потом по ним подключаются игроки?
Но соединение-то идет напрямую от игрока к хосту. Например, если я создал сервер, то чем ближе игроки ко мне географически, тем меньше у них пинг. Если бы сигнал шел через сервер игры, то пинг у игроков был бы на порядок выше.
Иван Шумов, Сомневаюсь, что Valve располагает сервера в какой-нибудь Богом забытой глуши (мой городок в Сибири). У игроков с моего города пинг 5, а у тех, кто, скажем, в 1000 км от меня, пинг уже около 20.
Иван Шумов, Странно. Чисто по физическим законам сигнал не сможет пройти весь земной шар и вернуться обратно за 5 мс. Почему же тогда я не могу ни в одной игре присоединиться к какому-нибудь австралийскому серверу и играть там с нормальным пингом? Постоянно пинг под 300-400, в любой игре.
Newfag1994, еще раз - сетевая инфраструктура. Количество хопов и каналы между хорами очень разные. Разные по качеству, стабильности, ширине и другим параметрам. Где-то по пути может быть канава) Доля примера - в России торчит 3 датацентра яндекса, но почему-то пинг до них хуже чем до моего CDN во Франкфурте.
Newfag1994, Если что то есть пиринговые сети, но игры от этого уходят или ушли по тому что таким образом нельзя контроллировать игроков и легко использовать читы
Иван Шумов, Я понимаю. Но сигнал из моего города до США и обратно не сможет пройти за 5 мс чисто физически (скорость света не может быть выше 300000 км/с).
Left 4 Dead использует не p2p ибо в ситуации с данной игрой именно один игрок является сервером, а остальные лишь клиентами.
Newfag1994, ну не может и не может) я пальцем в небо тыкнул в данном случае. Надо еще раз - понимать где сервер. Я не играю и не знаю где там у Valve сервера стоят, но я заглянул к ним и там огромное число точек по земному шару
Так же, как работает TimeViewer - машина регится на известном ей сервере с белым IP. Другие машины тоже регятся там. Этот сервер и обеспечивает взаимодействие, от компа клиента на самом деле ничего не надо,он может быть хоть за натом, хоть в жопе, лишь бы тырнет работал.