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

Здесь хранится вся документация по созданию выделенных серверов
Сообщение
Автор
Optima
VIP
VIP
Сообщения: 2337
Зарегистрирован: 11.01.2008
Поблагодарили: 1 раз
Контактная информация:

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

[spoiler=""вам не обязательно это читать, если вы не »Twilight«""]
Очень неточно сформулированное разъяснение. Это как раз у сервера "картина" игрового мира от высокого тикрейта будет плавнее. Клиент - это отдельная песня, он как зеркало для сервера, при том обычно кривое :) .
Фраза "чем больше у вас тиков с сервером" вообще бредом попахивает.
Насчет зависимости от канала и железа. Допустим есть 100-тиковый сервер. Он будет 100-тиковым, и должен выдавать 100 тик, даже если канал отдачи позволяет отправить каждому клиенту лишь 80 пакетов, вместо 100. И страдать от этого сервер не будет, в отличии от клиентов, которые недополучат 20 пакетов каждую секунду, а это серьезные лаги.
Зависимость от железа, то-есть показателя FPS сервера более очевидна. Если пригрузить сервер до уровня 80FPS, 100 тиков он никак не успеет просчитать. И теперь лаги будут и на стороне сервера тоже.
Осталось добавить, что в Source есть 3 значения серверных тикрейтов: или 33, или 66, или 100.
смысл не изменился, на сухом языке фраза 'чем больше этих тиков, тем плавней у клиента будет картинка(меньше лагов)," на сухом языке примерно так- чем больше тикрейт, тем лучше.
Не верно. Это переменная клиента, указывающая серверу максимальное количество байт, которое клиент готов принять от сервера за секунду.
Часто считают, что она должна отражать ширину входящего канала клиента, но для движка Source это не совсем так, верней, совсем не так.
Именно заниженное значение переменной есть частой причиной появления choke, т.е. пакетов, которые не доходят до клиента из-за узкого канала либо лимитированного rate'ом объема трафика за секунду.
Допустим, у меня канал на скачку 256kbit/s. Сервер за одну секунду хочет отдать моему клиенту 16000 байт. Но на клиенте стоит rate 10000. И сервер пошлет лишь 10000, ведь мой клиент сказал ему, что готов принять лишь столько. А остальные 6000 сервер просто обрежет и выбросит. В результате мой клиент недополучит ХХнадцать идущих подряд пакетов, что и отразиться на датчике choke.
В идеале, на движке Source клиент может установить себе как можно большее значение rate, даже в случае, если его входящий канал сможет пропустить в несколько раз меньше байт. Например, при rate 100000 датчик choke практически всегда будет показывать 0.
Увы, очень мало серверов, у которых достаточно широкий канал отдачи для всех клиентов и переменной sv_maxrate 100000. В основном из-за незнания админами сетевого протокола Source'а.
Потому, ставить rate выше, чем sv_maxrate сервера проку особого, к сожалению, нет.
Первоначально там было написано пакетов, но после не большой дискусии выше твоего поста я исправил на байты.

Опять же, это количество пакетов, которое клиент хочет послать серверу.
Именно из-за заниженного значения этой переменной можно видеть на сервере игрока с минимальным пингом, но со страшными дерганиями и задержками анимации и действий. Попасть в такого игрока становиться трудно, ведь инфа о клиенте при низком cmdrate приходит редко, и серверу трудно угадать где ж эта св*лочь на самом деле находиться. В Source 2007, если я правильно понял, новый сетевой код позволяет серверу более удачно регистрировать попадания в таких лагеров.
Как и в случае с updaterate, cmdrate нужно брать в зависимости от ширины канала клиента на отдачу. Можно также учесть, что фактический cmdrate не будет выше за FPS в игре (точно так же как updaterate и tickrate выше FPS сервера).
Значения cmdrate, в зависимости от размера исходящего канала, для игры на Source-сервере несколько менее требовательны, ведь там информация только об одном игроке (клиенте):
до 32 kbit/s »» cl_updaterate 33
на 64-128 kbit/s »» cl_updaterate 66
на 256 kbit/s и выше »» cl_updaterate 100
тоже, что было написано выше.

Надеюсь, будет учтено все выше мною изложенное.
Отлично особенности сетевого кода Source описаны тут: http://www.jason35.com/Netcode.htm (на английском).
Что не так? Результат моих расчётов полностью совпадает с информацией на этом сайте.
сталось сказать, что update/cmdrate могут иметь значения 0-100. И максимальное определяется не всегда тикрейтом (помним о sv_maxupdaterate, sv_maxcmdrate).
А от этого я не знал.
Первое число идет размер в байтах последнего полученного пакета, за ним правее входящий трафик в килобайтах/с, и только последнее крайнее правое число - число полученных пакетов за секунду.
Первое число идет размер в байтах последнего отосланного пакета, за ним правее исходящий трафик в килобайтах/с, и только последнее крайнне правое число - число отправленных пакетов за секунду.
Первоначально было написано что первое этой размер в байтах, но после не большой дискусии выше твоего поста было я изменил на
число передаваемых пакетов
Быстрее hit registration на сервере - да. Но не быстрота вылета пуль.
Ты не правильно понял моё предложение. На сухом языке будет звучать так - чем меньше пинг тем лучше.
P.S. Одно интересно, зачем браться писать мануалы, если человек явно сам в вопросе плавает?
Эта статья на 55% рерайт, 45% получены вбиванием команд в консоль.
Еще не разу не видел, что бы игроков TF2 было хотя бы в половину КССовцев. И дело тут не в том, что в стате берутся только игроки с лицензий.
1. TF2 моложе ксс.
2. СРС 2007 более новый.

Я думаю, я нашёл правильные ответы твоей критике. Исправлю биты на пакеты и добавлю инфу про sv_maxrate...(этого я действительно не знал.)

ЗЫ Проверял эти настройки. На сервере ксмании разницы вообще не почуствовал, а вот на этом ,не сочтите как рекламу, появились изминения в лучшую строну.[/spoiler]

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

#17 Сообщение 05.11.2008, 04:11

2 Optima: Спасибо за адекватное восприятие моей критики и за добавление в кредитсы. Теперь гайд стал намного правильней.
Осталось пару ляпов:
Optima писал(а):rate - количество пакетов, который клиент может получить от сервера за секунду.
Поменяй наконец на "байтов" :)
Optima писал(а):Примечание: максимальное значение updaterate и cmdrate устанавливаются сервером(sv_maxrate) !
Клиентский rate ограничивается серверным sv_maxrate
Клиентский cl_updaterate ограничивается серверным sv_maxupdaterate
Клиентский cl_cmdrate ограничивается серверным sv_maxcmdrate
If you are the Receiver of Wisdom, you will understand my words...
Изображение

Лека®ь
HL Fan
HL Fan
Сообщения: 18
Зарегистрирован: 08.05.2007
Откуда: Moscow

#18 Сообщение 05.11.2008, 20:23

Во, емое! Самый толковый сабж про рейты :) Прочитав это, понял, что парочка переменных сосчитана неправильно. ))
Респект Автору!

Аватара пользователя
Markizz
Капитан
Капитан
Сообщения: 362
Зарегистрирован: 01.01.2006
Откуда: Russ
Поблагодарили: 1 раз
Контактная информация:

#19 Сообщение 05.11.2008, 21:46

sv_max...
также есть и минимально допустимые
sv_min...

Аватара пользователя
Bulych
Сержант
Сержант
Сообщения: 67
Зарегистрирован: 16.02.2007
Откуда: Талнах
Поблагодарили: 2 раза
Контактная информация:

#20 Сообщение 06.11.2008, 08:15

Подскажите почему Mani-adminplagin в tf2 Выставляет параметр mani-tickrate 66 даже если в bat Прописaнно -tickrate 100 ???и Как это исправляется

Аватара пользователя
ZERO999
CS:Source Specialist
CS:Source Specialist
Сообщения: 367
Зарегистрирован: 22.08.2006
Откуда: Ухта, Россия
Контактная информация:

#21 Сообщение 06.11.2008, 15:29

Bulych писал(а):Подскажите почему Mani-adminplagin в tf2 Выставляет параметр mani-tickrate 66 даже если в bat Прописaнно -tickrate 100 ???и Как это исправляется
Bulych, маня не может выставить параметр tickrate
команда mani_tickrate, служит для отображения tickrate сервера, что можно и прочитать в консоле...
] mani_tickrate
"mani_tickrate" = "100" ( def. "" )
notify replicated
- Server tickrate information
Информация к размышлению:
Сервера CSS, паблик -tickrate 66("mani_tickrate" = "66"), ДМ -tickrate 66("mani_tickrate" = "66") КВ -tickrate 100("mani_tickrate" = "100"), на сервера с -tickrate 100 объязательно ставьте Z-блок, фиксит проблему с открываниями дверей...
И еще, как-то давно заметил, если ваше железо, скажем так слабенькое, вы не поставите на сервер -tickrate 100, ни какие параметры не помогут, проверено на практике...
Не говори необдуманных слов, чтобы не попасть по неведению в трудное положение...

ЧаЙ с ПеЧеНьеМ
Сержант
Сержант
Сообщения: 69
Зарегистрирован: 20.08.2008

#22 Сообщение 07.11.2008, 19:31

такой вопросик...
тик поставил 100, вроде проверил с ним и запускает
а вот мои rate 20000 cl_cmdrate 100 cl_updaterate 100 сбрасывает на rate 10000 cmdrate 30 20

Как заставить слушаться7

Analog
Нович0к
Нович0к
Сообщения: 16
Зарегистрирован: 22.03.2008
Контактная информация:

#23 Сообщение 27.11.2008, 15:05

какие ставить настройки лучше всего на сервер для локалки 100мбитовой ?

Аватара пользователя
xiloid
Капитан
Капитан
Сообщения: 341
Зарегистрирован: 30.10.2008
Поблагодарили: 3 раза

#24 Сообщение 28.11.2008, 09:48

Analog писал(а):какие ставить настройки лучше всего на сервер для локалки 100мбитовой ?
Уже же писали выше - по максимуму!
Рейт 100000
ЦЛки по 100
Все Квары в Сервер.цфж

gugglegum
Нович0к
Нович0к
Сообщения: 16
Зарегистрирован: 26.08.2008

#25 Сообщение 05.12.2008, 08:58

Для интернета 256/256 килобит и лучше оптимальные настройки будут rate 30000, cl_cmdrate 100, cl_updaterate 100.

Объясню почему. Больше 30 кбайт/с в КСС скорости потока практически не бывает (обычно держится в районе 9-15 кб). Плюс на многих серверах sv_maxrate ограничивает это как правило теми же 30000, либо ниже. Поэтому выше 30000 значение rate делать смысла нет. Сделаете выше -- хуже не будет, но и лучше тоже.

cl_cmdrate и cl_updaterate лучше делать 100, т.к. больше ста тикрейт сервера все равно не бывает, т.е. если у сервера 100 и у вас 100 -- Вы выжмете из сервера максимум. Если у сервера тикрейт 66 или (не дай бог) 33, то вы получите те же 66 и 33 соответственно, т.е. опять таки выжмите из сервера максимум.

Таким образом для более или менее быстрого инета настройки 30000/100/100 я считаю оптимальными. Всякие вычисления rate, исходя из пропускной способности канала, есть смысл производить только если канал хуже, чем 256 килобит.

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

#26 Сообщение 05.12.2008, 13:16

gugglegum писал(а):Поэтому выше 30000 значение rate делать смысла нет. Сделаете выше -- хуже не будет, но и лучше тоже.
Если на сервере sv_maxrate 100000 - будет лучше rate 100000, еще как будет.
gugglegum писал(а):cl_cmdrate и cl_updaterate лучше делать 100, т.к. больше ста тикрейт сервера все равно не бывает, т.е. если у сервера 100 и у вас 100 -- Вы выжмете из сервера максимум. Если у сервера тикрейт 66 или (не дай бог) 33, то вы получите те же 66 и 33 соответственно, т.е. опять таки выжмите из сервера максимум.
На канале 256K updaterate 100? Если сервер выдает чистых 100тик в канал все 100 не влезутся, если на сервере хотя бы 25 тел. А уж если скорость далеко не стабильных 32кбайт/с (а ниже) - тем более пакеты будут вылетать.
Лучше cl_updaterate 66
If you are the Receiver of Wisdom, you will understand my words...
Изображение

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

#27 Сообщение 05.12.2008, 17:38

gugglegum, [»Twilight«], вы про сервер или про клиент?
я надеюсь про клиент :crazy: :D

да и какой смысл спорить на эту тему - выставил макс. по нетграпу чтоб шока не было, да и все..
t_rrrrrrrrrrrrrrkl

gugglegum
Нович0к
Нович0к
Сообщения: 16
Зарегистрирован: 26.08.2008

#28 Сообщение 06.12.2008, 00:36

Разумеется про клиента.

Скорость потока сервера при тикрейте 100 обычно не превышает 15 кб/сек. При взрыве бомбы трафик поднимается до 20 кб/сек. 25 кб/сек редко можно встретить. 30 никогда не встречал. 25 игроков на сервере -- это не "хотя бы 25", это очень много. Обычно макс. число слотов ограничено до 20. Больше -- это мясорубка. На сервере с 20 игроками моих рейтов хватит с достаточным запасом. Канала 256 килобит (если они честные) тоже, при условии, что не качается порнуха на торренте.

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

#29 Сообщение 08.12.2008, 01:10

gugglegum говорит видимо конкретно о КСС, и конкретно о серверах не более, чем на 25 слотов. Да будет ему известно, что есть серверы на большее количество слотов (а заодно и спец. карты на 64), и есть другие игры на движке Source, напр. TF2, DODS. А там вроде пакеты более увесистые из-за более нового протокола.
Если же и так не верите о превосходстве rate 100000 над 30000, зайдите на сервер, который допускает такое значение (sv_maxrate 100000) во время большого количества игроков, и присмотритесь к датчику choke при этих значениях. Изредка в напряжtнные моменты 30К choke будет подыматься, а при 100K практически всегда будет лежать на нуле.
If you are the Receiver of Wisdom, you will understand my words...
Изображение

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

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

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

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

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

Заранее Спасибо !!!
Последний раз редактировалось t0x1c_r1v3r 09.01.2009, 15:20, всего редактировалось 1 раз.
Причина: И Г Р А К А К А Я ? ? ? ? ? ? ! ! ! ! ! !
Изображение


Изображение

Ответить