Разъяснения и определения: rate, tickrate и т.д

Здесь хранится вся документация по созданию выделенных серверов
Сообщение
Автор
Аватара пользователя
[»Twilight«]
Капитан
Капитан
Сообщения: 277
Зарегистрирован: 22.05.2007
Откуда: "Heaven's Night" Club, 2121 Carroll Street, Silent Hill, ME [Ukraine]
Контактная информация:

#31 Сообщение 09.01.2009, 15:23

sanya_pank писал(а):Помогите пожалуйста с рейтами!
У меня комп: P4 2.400 1Gb оперативки

Скорость интернета:
На первом тесте я соединялся с МОСКВОЙ (я живу в Питере)
а на втором я соединялся с Питером =)

Ответьте пожалуйста, Сколько человек потянет сервак, и какие рейты использовать

Заранее Спасибо !!!
Я что-то не понял, ты хочешь использовать "P4 2.400 1Gb оперативки" для сервера? *_*
Какой игры, CSS?
If you are the Receiver of Wisdom, you will understand my words...
Изображение

sanya_pank
Нович0к
Нович0к
Сообщения: 5
Зарегистрирован: 09.01.2009

#32 Сообщение 09.01.2009, 15:29

Да, для ксс =) А что, мало =)
Изображение


Изображение

Аватара пользователя
t0x1c_r1v3r
HL Fan
HL Fan
Сообщения: 412
Зарегистрирован: 03.08.2008
Благодарил (а): 2 раза
Поблагодарили: 13 раз

#33 Сообщение 09.01.2009, 15:33

у тебя не в соединение все упрется, а в железо

не больше 16... но это лфс.. даже с 12
t_rrrrrrrrrrrrrrkl

sanya_pank
Нович0к
Нович0к
Сообщения: 5
Зарегистрирован: 09.01.2009

#34 Сообщение 09.01.2009, 15:37

Ну да, мне хватит,
А рейты, можно? =)
И еще, их же надо в (((server.cfg))) прописывать?
Изображение


Изображение

Аватара пользователя
[»Twilight«]
Капитан
Капитан
Сообщения: 277
Зарегистрирован: 22.05.2007
Откуда: "Heaven's Night" Club, 2121 Carroll Street, Silent Hill, ME [Ukraine]
Контактная информация:

#35 Сообщение 09.01.2009, 15:43

Не, если ОС не засрана и в спортивной форме (то бишь левых тормозов нигде нет, проц занят исключительно сервером), то вполне возможна комфортная игра и 20 человек. При условии tickrate 33. О 66 даже не мечтай, твоя железко почти не будет выдавать такого ФПС после 10 тел на сервере.
Потому tickrate 33, а дальше все обычно:
sv_minrate 20000
sv_minupdaterate 33
sv_mincmdrate 33
sv_maxrate 100000
sv_maxupdaterate 100
sv_maxcmdrate 100

Да, прописывать нужно в server.cfg
Тикрейт указывается исключительно в параметрах запуска сервера, напр.
srcds.exe -console -game cstrike -tickrate 33
If you are the Receiver of Wisdom, you will understand my words...
Изображение

sanya_pank
Нович0к
Нович0к
Сообщения: 5
Зарегистрирован: 09.01.2009

#36 Сообщение 09.01.2009, 15:49

Спасибо большое!!!
Можно ещё вопрос?

Что такое sv_client_cmdrate_difference "5" ???

И какие рейты надо писать клиентам???
20000 33 33 или 100000 100 100 ??
Изображение


Изображение

Аватара пользователя
[»Twilight«]
Капитан
Капитан
Сообщения: 277
Зарегистрирован: 22.05.2007
Откуда: "Heaven's Night" Club, 2121 Carroll Street, Silent Hill, ME [Ukraine]
Контактная информация:

#37 Сообщение 09.01.2009, 16:07

sanya_pank писал(а):Спасибо большое!!!
Можно ещё вопрос?

Что такое sv_client_cmdrate_difference "5" ???

И какие рейты надо писать клиентам???
20000 33 33 или 100000 100 100 ??
Любые в пределах от 20000 33 33 до 100000 100 100. Конкретные значения будут зависеть от качества соединения и ширины канала клиента и его железа (то есть сколько FPS в игре). Потому у каждого должны быть свои, но в этих пределах.

sv_client_cmdrate_difference - она подвигает клиентский cl_cmdrate в сторону клиентского же cl_updaterate так, что бы разница между ними составляла не менее заданного числа, в твоем примере "5", при том оставляя cl_cmdrate в пределах от sv_mincmdrate до sv_maxcmdrate.
Потому если зайдет клиент с рейтом (upd/cmd) 100/33 сервер выставит ему 100/95.
Если кратко, польза от этого не всегда будет, а иногда может и навредить клиенту, потому если не знаешь что лучше для твоего клиента - не лезь к этой переменной )
If you are the Receiver of Wisdom, you will understand my words...
Изображение

sanya_pank
Нович0к
Нович0к
Сообщения: 5
Зарегистрирован: 09.01.2009

#38 Сообщение 09.01.2009, 16:31

Спасибо!
Изображение


Изображение

Owyn
Сержант
Сержант
Сообщения: 42
Зарегистрирован: 29.12.2008

#39 Сообщение 13.01.2009, 20:45

rate - количество байтов, который клиент может получить от сервера за секунду.
cl_updaterate - количество пакетов, который клиент может получить от сервера.(информация о других игроках)
я ставиь rate и на 10000, и update на 10, но игроков всеравно выкидывает с overflow или scv_bad что можно придумать? или мб у мня чет не то?

у меня кс 1.6, отключать все плагины пробовал, не помогло, вот конфиг

sys_ticrate 175 (фпс держит) канал 20мб\20мб
sv_maxrate 30000
sv_minrate 30000
sv_maxupdaterate 66
sv_minupdaterate 66
Изображение

Аватара пользователя
Snake 60
Лейтенант
Лейтенант
Сообщения: 125
Зарегистрирован: 28.10.2007
Откуда: Псков
Контактная информация:

#40 Сообщение 04.02.2009, 13:48

Вопрос к [»Twilight«]

Во многих статьях из интернета про рейты читал, что клиентские cl_cmdrate и cl_updaterate обязательно должны быть одинаковыми (даже есть плагины, которые кикают если у клиента это не так) Почему возникло такое мнение??? и правильное ли оно??? Ведь если у человека АДСЛ (то бишь ассимметричный канал, допустим как у меня 1024/512) то он физически не сможет отдавать пакетов столько же сколько получать? или эта скорость обеспечит нормальный прием/отдачу с клиентскими параметрами rate 30000; cl_cmdrate 100; cl_updaterate 100 (допустим рассматриваем 100 тиковый КВ-серв на 12 слотов)?

И еще такой момент. На некоторых серверах жёстко прописываются серверные рейты, то бишь в server.cfg забивают допустим вот такие параметры:
sv_minrate "25000"
sv_maxrate "25000"
sv_minupdaterate "66"
sv_maxupdaterate "66"
sv_mincmdrate "66"
sv_maxcmdrate "66"
таким образом сервер сам выставляет рейты у клиента 25000/66/66 (в этом можно убедиться если посмотреть нет_граф у подключившегося клиента, хотя команды ma_rates или zb_netinfo показывают другие параметры, те, которые были у клиента до этого или те которые забиты в файл avtoexec.cfg) Так вот, вопрос в следующем. Правильно ли так делать и оправдано ли это? И если можно так делать, то можно забить на все плагины подобного рода, которые проверяют рейты???

И еще... практически не нашел информации по вот этим параметрам:
sv_client_min_interp_ratio "1.0"
sv_client_max_interp_ratio "1.0"
sv_client_predict "1"
sv_client_interpolate "1"
За что отвечают... для чего нужны... какие оптимальные???

Заранее tnx.
Изображение
Изображение
Изображение
Изображение
Изображение

Аватара пользователя
t0x1c_r1v3r
HL Fan
HL Fan
Сообщения: 412
Зарегистрирован: 03.08.2008
Благодарил (а): 2 раза
Поблагодарили: 13 раз

#41 Сообщение 04.02.2009, 19:31

Snake 60 писал(а):и правильное ли оно??? Ведь если у человека АДСЛ (то бишь ассимметричный канал, допустим как у меня 1024/512) то он физически не сможет отдавать пакетов столько же сколько получать?
асимметричный канал сам по себе не причем, если пропускной способности обоих направлений хватает для получения такого-то кол-ва пакетов - то все нормально
Snake 60 писал(а): На некоторых серверах жёстко прописываются серверные рейты, то бишь в server.cfg забивают допустим вот такие параметры:sv_minrate "25000"sv_maxrate "25000"sv_minupdaterate "66"sv_maxupdaterate "66"sv_mincmdrate "66"sv_maxcmdrate "66"таким образом сервер сам выставляет рейты у клиента 25000/66/66 (в этом можно убедиться если посмотреть нет_граф у подключившегося клиента, хотя команды ma_rates или zb_netinfo показывают другие параметры, те, которые были у клиента до этого или те которые забиты в файл avtoexec.cfg) Так вот, вопрос в следующем. Правильно ли так делать и оправ
если сервер действительно справится с поставленной задачей, то почему нет?
Snake 60 писал(а):И еще... практически не нашел информации по вот этим параметрам:sv_client_min_interp_ratio "1.0"sv_client_max_interp_ratio "1.0"sv_client_predict "1"sv_client_interpolate "1"За что отвечают... для чего нужны... какие оптимальные???
sv_client_min_interp_ratio 1.0" & sv_client_max_interp_ratio 1.0" - мин. и макс. доступный коэффициент интерполяции доступный клиенту, т.е клиент может сам выставлять коэффициент cl_interp_ratio, к примеру если sv_client_max_interp_ratio = 2, то клиент может выставить cl_interp_ratio 2 и при 100 обновлений с сервера интерполяция будет равна 20мс

sv_client_predict
sv_client_interpolate
Просто зайди в игру впиши эти команды, нажми энтер и увидишь, что они значат. Более подробно писать не имеет смысла - все уже написано до нас...

-------------
http://developer.valvesoftware.com/
http://whisper.ausgamers.com/
t_rrrrrrrrrrrrrrkl

Аватара пользователя
Snake 60
Лейтенант
Лейтенант
Сообщения: 125
Зарегистрирован: 28.10.2007
Откуда: Псков
Контактная информация:

#42 Сообщение 05.02.2009, 01:36

t0x1c_r1v3r
Понял... спасибо :)
Изображение
Изображение
Изображение
Изображение
Изображение

Аватара пользователя
[»Twilight«]
Капитан
Капитан
Сообщения: 277
Зарегистрирован: 22.05.2007
Откуда: "Heaven's Night" Club, 2121 Carroll Street, Silent Hill, ME [Ukraine]
Контактная информация:

#43 Сообщение 08.02.2009, 00:20

Snake 60 писал(а):Вопрос к [»Twilight«]
Раз писалось мне, значит что-нибудь ответить надо )
Snake 60 писал(а):Во многих статьях из интернета про рейты читал, что клиентские cl_cmdrate и cl_updaterate обязательно должны быть одинаковыми (даже есть плагины, которые кикают если у клиента это не так) Почему возникло такое мнение??? и правильное ли оно??? Ведь если у человека АДСЛ (то бишь ассимметричный канал, допустим как у меня 1024/512) то он физически не сможет отдавать пакетов столько же сколько получать? или эта скорость обеспечит нормальный прием/отдачу с клиентскими параметрами rate 30000; cl_cmdrate 100; cl_updaterate 100 (допустим рассматриваем 100 тиковый КВ-серв на 12 слотов)?
Гм, наверно 99% этих статей было о рейтах для движка GoldSource, или переписаны с них заменой имен переменных под Source, потому правдивыми быть не могут.
Мнение такое возникло скорее всего из простой логики. Ведь если клиент получает 100 пакетов, а шлет только 33, значит он получает более точную картину происходящего, а о себе шлет менее точные данные, и в него труднее попасть? Мнение это не то что правильное, а не совсем корректное, так как не учитывается, что клиент с рейтом 100/33 вместо 100/100 будет вредить себе тоже (регистрация его попаданий будет более точная, если сервер более точно будет знать где сейчас находится модель игрока клиента, то есть с какой точки начинать рассчитывать траекторию полета пули). Но внимание к асимметрии рейтов, если честно, завышено. Асимметрические рейты не дают столь ощутимой выгоды над симметрическими, пока каждый из рейтов выше 33, а более высокое число рейта всегда выгоднее меньшего. Потому главное, чтобы рейт соответствовал возможностям канала и железа.
Помимо того, бытует мнение, что рейты обязательно должны быть кратными 33 :)
Это заблуждение от того, что тикрейт сервера может быть кратным только 33.
P.S. Когда имел канал 128/32 юзал рейт (upd/cmd) 66/41. Сейчас тоже 1024/512, и юзаю 100000/100/66. Юзал бы 100/100, но стабильных 100+ FPS в КСС у меня нет, потому довольствуюсь cmd 66.
P.P.S. Параноидальным администраторам советую присмотреться к переменной sv_client_cmdrate_difference. Она отвечает за максимально возможное отклонение cmd-рейта клиента от его же update-рейта, и если разница превышена - сервер поменяет значение сmd клиенту. Напр. при sv_client_cmdrate_difference 20 на сервере и cl_updaterate 100 cl_cmdrate 66 у клиента, сервер будет форсировать клиенту cl_cmdrate 80 (что не всегда есть good).
Snake 60 писал(а):И еще такой момент. На некоторых серверах жёстко прописываются серверные рейты, то бишь в server.cfg забивают допустим вот такие параметры:
sv_minrate "25000"
sv_maxrate "25000"
sv_minupdaterate "66"
sv_maxupdaterate "66"
sv_mincmdrate "66"
sv_maxcmdrate "66"
таким образом сервер сам выставляет рейты у клиента 25000/66/66 (в этом можно убедиться если посмотреть нет_граф у подключившегося клиента, хотя команды ma_rates или zb_netinfo показывают другие параметры, те, которые были у клиента до этого или те которые забиты в файл avtoexec.cfg) Так вот, вопрос в следующем. Правильно ли так делать и оправдано ли это? И если можно так делать, то можно забить на все плагины подобного рода, которые проверяют рейты???
Я считаю, что делать так нельзя, ведь это несправедливо по отношению к клиентам со слабым каналом. Форс рейтов к более высоким сделает их игру на сервере нереальной из-за лагов. Помню когда у меня был канал 128/32кбит сам такого натерпелся, ведь у меня канал физически не мог давать требуемых 66 пакетов.
Потому я всегда советую переменные
sv_minrate 20000
sv_minupdaterate 33
sv_mincmdrate 33
sv_maxrate 100000
sv_maxupdaterate 100
sv_maxcmdrate 100
Они будут универсальны для всех клиентов с разными каналами, а реальная "скорость общения" клиента с сервером будет зависеть уже от тикрейта сервера и настроек клиента.
Далее, ma_rates показывает те значения переменных, какие выставил клиент, но не реальные, а zb_netinfo - более реальные, но с учетом корректировки рейтов сервером. Похоже, что реальной картинки не дает ни один плагин. Мне кажется что если update/cmdrate сервер может реально исправить (подтверждается net_graph'ом), то rate он поменять клиенту не способен (подтверждается zblock + лагами игрока c низким rate), хотя я могу ошибаться.
В целом, я не люблю темы о багах сетевого кода Source нового 7го протокола, за этим идите на форумы steampowered.
If you are the Receiver of Wisdom, you will understand my words...
Изображение

Аватара пользователя
Snake 60
Лейтенант
Лейтенант
Сообщения: 125
Зарегистрирован: 28.10.2007
Откуда: Псков
Контактная информация:

#44 Сообщение 08.02.2009, 04:53

[»Twilight«]
Спасибо за подробные разъяснения... последую Вашему совету :)
Изображение
Изображение
Изображение
Изображение
Изображение

Аватара пользователя
SON
Капитан
Капитан
Сообщения: 363
Зарегистрирован: 28.09.2006
Контактная информация:

#45 Сообщение 01.03.2009, 05:09

И все же можно разъяснить эти серверные команды пожалуйста ?

"sv_client_predict" = "-1"
replicated
- This can be used to force the value of cl_predict for connected clients (only while they are connected).
-1 = let clients set cl_predict to anything
0 = force cl_predict to 0
1 = force cl_predict to 1

"sv_client_interpolate" = "-1"
replicated
- This can be used to force the value of cl_interpolate for connected clients (only while they are connected).
-1 = let clients set cl_interpolate to anything
0 = force cl_interpolate to 0
1 = force cl_interpolate to 1

И какие лучше выставить значения на сервере для:
sv_client_min_interp_ratio
sv_client_max_interp_ratio
Servers
Изображение
LoL
говорят Vityan666 даже не писал семистим, он его просто наколдовал, или с самим дьяволом заключил сделку....(c)eldest
Как можно вообще скачать это SourceTV? ...(с)CSmania_Jonny
ИМЕЙ ВВИДУ ТРУЩИЙ ТЕМЫ МЛЯ ЗАЕПУ В УСМЕРТЬ, ПОКА НЕ ПОЛУЧУ ОТВЕТА. (c) anynah

Ответить