PDA

Просмотр полной версии : HyperLobby и скорость ISDN



SlavikSG
03.10.2007, 14:08
Многие замечали, что при коннекте к сервакам через систему HyperLobby, скорость соединения с сервером автоматом меняется на ISDN. Чтобы она не менялась, достаточно зайти в инишник HyperLobby, файл hlpro.ini и сделать изменение в секции:
[Forgotten Battles]
clientRate=3000 (что будет соответствовать скорости - "Модем 28800")
и это все работает. Но мне нужно решить более сложную задачу. Нужно чтобы у клиентов, при подключении к моему серваку, скорость менялась сама, АВТОМАТИЧЕСКИ!!!, скажем, на 28800 (или на 14400). И чтобы игроки при этом у себя в инишниках ничего не меняли. По большей части им это на фиг не нужно. Это нужно моему серваку, где ограничен объем внешнего трафика. И это нужно моему каналу, который не шибко широкий. А как известно, разница между настройками "ISDN" и "Модем 14400" может составить в четыре-пять раз. И помножив это на количество игроков - экономия получится бешенная. Покопавшись в инете я нашел ответ на свой вопрос. Там сказано, что при создании Хоста через HyperLobby, в инишнике hlpro.ini, нужно создать новый параметр - "serverRate". Что я и сделал:
[Forgotten Battles]
joinDelay=20
clientRate=3000 (тут я тоже изменил 8000 на 3000)
serverRate=3000 (Соответствует модему 28800)
Теперь, якобы, у тех кто будет присоединяться к моему серваку через HyperLobby, скорость автоматом будет меняться на 28800 и, типа, все будет зашебись. НО ЭТО НЕ РАБОАЕТ!!! И хоть режьте меня, не могу понять в чем дело. :( Работает только если каждый клиент залезет к себе в инишник hlpro.ini и поправит вручную эту скорость. Но, как я уже говорил, это на фиг ни кому нужно. Да и не заставишь весь вирпиловский мир инишники править. :)

Повторяю еще раз формулировку вопроса:
Как заставить клиентские подключения к серверу, запущенному через HyperLobby, менять скорость автоматически, на указанную сервером?

Помогите, плиииз, кто знает.

Сервак выделенный, (не игровой клиент). Запускается автоматом после создания хоста в HyperLobby.

Очень может быть, что я туплю, и очень может быть, что это, вообще, сделать невозможно. Тады ой! И сори. :)

P.S.
Проверить, меняется ли у вас скорость, можно прямо сейчас. Сервак запущен. В HyperLobby он сейчас называется "Only_for_Tula".

Kami
03.10.2007, 14:15
serverrate=3000 - этого достаточно.
У клиента хоть 100000000000 пускай стоит, больше чем позволяет сервер он все равно не получит (а у сервера стоит 3000 :) )
на трафик влияет загруженность карты\миссии в частности наземка, ну и конечно подкрузка скинов. есть персонажи, которые летают с 1мб скинами. :)

SlavikSG
03.10.2007, 15:15
serverrate=3000 - этого достаточно.
У клиента хоть 100000000000 пускай стоит, больше чем позволяет сервер он все равно не получит (а у сервера стоит 3000 :)...
Спасибо за ответ!

Ммм...! Погоди, ты натолкнул меня на одну мысль...
После того как я ввел новую строку "serverRate", я тестировал, пашет система или не пашет, проверяя, ставится ли у пользователя в игровом клиенте, (когда нажимаем в игре Esc, кнопка Сеть) скорость на 28800 или на 14400. Она не ставилась. Оставалась на "ISDN". А тебя я понимаю так, что пусть там, хоть что остается стоять, скорость все равно не будет выше 28800. Я правильно тебя понял?

Жаль сейчас не могу проверить, (на работе). Нужно кого-нибудь просить...

В общем, сегодня вечером еще потестирую. Как положено, на реальную скорость, а не на показания игрового клиента после его подключения.

Вот тут можно реально глянуть, как сильно влияет на трафик сервера скорость, которую ставит у себя в игре всего лишь один игрок. Даже визуально видна огромная разница:
http://ntelecom.tula.net/forum/files/isdn_372.jpg

Kami
03.10.2007, 15:23
да, ты все верно понял.
а скорость влияет сильно. в коопе (миссии больше чем 8 на 8), хост за час мог сжигать до 150 метров, если выставлял 56.6.

mr_tank
03.10.2007, 15:47
А тебя я понимаю так, что пусть там, хоть что остается стоять, скорость все равно не будет выше 28800.
Вот, только, Ил у клиента будет пытаться протолкнуть тот поток, что у него выставлен. А это ведет к потере пакетов, такого может лагать.

SlavikSG
04.10.2007, 11:23
Повозился вчера вечером и пришел к выводу, что вновь создаваемый самодельный параметр serverRate в инишнике HyperLobby, не имеет никакого значения. Что он есть, что его нет, никакой разницы. Возможно это работало раньше, но не сейчас. А так же, возможно, это пашет лишь с серваком создаваемым через обычную игру.

Дык вот! Имеет значение в моей ситуации ТОЛЬКО инишник самого выделенного сервера confs.ini и его раздел:
[NET]
speed=1500
Как раз этот параметр и заставляет игровые клиенты при подключении работать на скорости - "Модем 14400", не зависимо ни от каких настроек игровых клиентов. Проверял это много раз. И в клиенте менял скорость, и в инишнике HyperLobby. Все равно, при подключении игрока к серверу, скорость четко и всегда была равна "Модем 14400" (speed=1500).

Как я уже написал выше, ошибка моя была в диагностике скорости клиента. Я проверял так:
1. Подключался к серваку
2. Заходил в игру.
3. Нажимал Esc
4. Тыкал на кнопку Сеть
и там всегда и неизменно видел "ISDN". По этой надписи и судил о скорости. На самом деле это неверно. Судить нужно по РЕАЛЬНОЙ скорости потока, а не по этой игровой закладке, которая всегда стоит на одном и том же значении. К примеру, можно проверять скорость в удобном графическом виде DuMeter-ом или BWMeter-ом.

P.S. Есть лишь одно исключение из правила. Клиент МОЖЕТ менять скорость на любую другую, если после того как присоединится к серверу, залезет в настройки сети и изменит там скорость коннекта вручную. То есть, сделает это не ДО подключения к серверу, а ПОСЛЕ подключения к серверу. Очень хочется надеяться, что никто этим гимором заниматься не будет. :)