[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: AnekS  
Форум » Информация по Counter-Strike » Настройка CS:S » О TickRate и как с ним бороться. (Информация к размышлению)
О TickRate и как с ним бороться.
BaFДата: Воскресенье, 13.01.2008, 17:16 | Сообщение # 1
Генерал-лейтенант
Группа: Друзья клана
Сообщений: 2901
Награды: « 13 »
Вручить:
Статус: Offline
Он с нами с 02.12.2007
Не претендую на 100% точность написанного, если кто сможет что-то внятное добавить поправлю.
Может кому нибудь, это поможет.

План:
1. Tickrate на сервере.
2. Клиентские настройки рэйтов.
3. Как их настраивать.
4. AceRate - нужно или нет, добавленно.

1. Tickrate на сервере.

Сервер симулирует игровой мир в дискретные промежутки времени, названные "тик" (tick). По умолчанию используется 66 тиков в секунду, однако моды могут использовать свою собственную частоту тиков. Например, в Counter-Strike: Source используется частота 33 тика в секунду, чтобы снизить нагрузку на процессор. Во время каждого тика сервер обрабатывает пользовательские команды, симулирует физику, проверяет правила игры и обновляет состояние объектов игрового мира. После завершения симуляции тика, сервер определяет, каким клиентам требуется обновление и делает снимок состояния мира, если это необходимо. Более высокая частота тиков увеличивает точность симуляции, но требует больших ресурсов процессора и пропускной способности, как на сервере, так и на клиенте.
Возможные значения переменной -tickrate на серверах 33, 66 и 100. Чем Выше значение этой величины, тем более точные игровые данные сервер может отправлять клиенту, но и тем выше требования к каналу сервера, и косвенно к клиентам находящимся в игре. Не рекомендуется tickrate на сервере ставить другие, чем 33, 66 или 100, возможны глюки.
Наиболее правдоподобные настройки на сервере:

sv_mincmdrate 66
sv_maxcmdrate 100

sv_minupdaterate 66
sv_maxupdaterate 100

sv_minrate 20000
sv_maxrate 25000

2. Клиентские настройки рэйтов.

rate 20000 до 30000
cl_updaterate 66 или 100
cl_cmdrate 66 или 100

Теперь, как это привязывается к Tickrate на сервере:
Запускаем из консоли net_graph 3

1. Сервер – Rebel – Tickrate на сервере 66

Клиентские команды:
cl_updaterate 66
cl_cmdrate 66

Как видим значения 67,0 и 67,1 соответствуют ограничениям на сервере.

2. Сервер – Rebel – Tickrate на сервере 66

Клиентские команды:
cl_updaterate 100
cl_cmdrate 100

В данном случае значения 67,0 и 66,5 явно ограничиваются тикрэйтом сервера.

3. Сервер – Rebel – Tickrate на сервере 66

Клиентские команды:
cl_updaterate 33
cl_cmdrate 33

В этом случае значения 33,7 и 34,1 показывают, что настройки клиента, будучи меньше, чем тикрэйт сервера, оказывают влияние, на обмен данными клиент-сервер.

4. Дополнительно Сервер – EXO – Tickrate на сервере 100

Клиентские команды:
cl_updaterate 66
cl_cmdrate 66

Подтверждение общего рассуждения, тикрэйт на сервере 100 – у клиента 66, ограничивается поток данных, кстати, косвенно влияет на Loss и Chok – меньше потерянных пакетов.

5. Дополнительно Сервер – EXO – Tickrate на сервере 100

Клиентские команды:
cl_updaterate 100
cl_cmdrate 100

А здесь соответственно видим, что при клиентских значениях, 100 на 100, сервер позволяет использовать обмен данными на тикрэйт 100.

Выводы, которые хочется сделать.
1. При Tickrate на сервере 66, без разницы, будет у клиента значения 66 или 100.
2. Если, у клиента значения меньше, чем 66, то он будет создавать нагрузку на сервере, по причине обновления данных сервером, и отсылания их клиентам не равномерно. Также, вместо того, чтобы отправлять данные единым блоком, серверу придется их, резать на 2, если у клиента настройки 33, как все это реализуется в сетевом движке не знаю, но точно, что обмен данными клиент-сервер-клиент будет не равномерен, что должно приводить к увеличению пакетов попавших в очередь, и сброшенных за ненадобностью, а последствия – сервер сам достроит игровую ситуацию, что для нас будет выражаться, в теме, да как же так – вся очередь в упор, а не попал не разу biggrin . Еще он будет дергаться, короткими рывками. особенно это заметно, если в спектре за ним смотреть.
3. Rate 20000 – это объем максимума в байтах, которые сервер, может за раз бросить клиенту, если клиент уменьшает это значение, то соответственно, будет брошено в несколько приемов. Туда же, вывод номер 2. Если посчитать килобайты, то максимальный объем пакета на 20000 будет 19,5 килобайт, этого достаточно на 20 слотов при тикрэйте 66, во всяком случае, у меня не разу больше не поднималось. Но при 100, в мясе уже может не хватить. Надо мерить. Поэтому не меньше 20000, а больше кажись без разницы, все равно данных то сервак в таких количествах не наберет, чтобы это перешло в разряд проблемы.
4. И еще касаемо ассиметричных значений типа 66 на 100, практически та же чушь. При стрельбе из-за разницы в пересылке данных, будет сервером достраиваться самостоятельно игровая ситуация, что не есть гуд.

Прикрепления: 3414711.jpg (13.7 Kb) · 6492830.jpg (15.7 Kb) · 4470599.jpg (14.7 Kb) · 7341304.jpg (15.5 Kb) · 7643764.jpg (13.8 Kb)


Пушистая Бизнес-Вумен:
Никаких премий за хорошую работу. А то получается, что за плохую работу - зарплата. Хорошая работа - это норма.
 
BaFДата: Вторник, 12.02.2008, 14:55 | Сообщение # 2
Генерал-лейтенант
Группа: Друзья клана
Сообщений: 2901
Награды: « 13 »
Вручить:
Статус: Offline
Он с нами с 02.12.2007
4. AceRate - нужно или нет, добавленно.
А по этой теме коротко, AceRate при рэйтах не соответствующих серверу, или сразу кикает, в зависимости от настроек, или выводит инфу на экран, а в последствие задача админа, чтобы клиент их поправил. Во-первых это долго, а во-вторых просто достает, объяcнять одно и тоже, по многу раз. Проще на сервере поставить ограничения:
// bandwidth rates/settings
sv_minrate 20000
sv_maxrate 30000
sv_maxupdaterate 100
sv_minupdaterate 66
sv_maxcmdrate 100
sv_mincmdrate 66
В этом случае, как бы клиент не выделывался, есму поставит по 66, net_graph 3 покажет по 66, если на сервере тикрэйт 66.
Поэтому AceRate в принципе то и не нужен. Можно глянуть через команду ma_rates вычленяя особо умных, у которых что то вроде 50000 на 10 на 10, просто для того чтобы люди дурью не маялись, забота о клоунах так сказать.
Ну вот в приниципе и все, что хотелось написать может кому поможет.


Пушистая Бизнес-Вумен:
Никаких премий за хорошую работу. А то получается, что за плохую работу - зарплата. Хорошая работа - это норма.
 
BaFДата: Вторник, 27.01.2009, 12:54 | Сообщение # 3
Генерал-лейтенант
Группа: Друзья клана
Сообщений: 2901
Награды: « 13 »
Вручить:
Статус: Offline
Он с нами с 02.12.2007
Добавленно про команды:
- есть две команды ma_rates (доступная только для админов, при включенных админских правах) и zb_netinfo (при плагине z_block, установленном на сервере - поправка на любом нормальном сервере) показывающая, что стоит у клиента реально по факту, после выравнивания зет_блоком. То, что показывает ma_rates относится только к настройкам клиента в его конфиге. То, что выводит z_block, это значения уже после выравнивания. Поэтому ma_rates интересует, только в случае отсутствия z_blok'a. Так же, есть еще несколько команд привязанных к интерполяции, информацию о которых выводит ma_rates, но которые тоже правятся z_block'ом.


Пушистая Бизнес-Вумен:
Никаких премий за хорошую работу. А то получается, что за плохую работу - зарплата. Хорошая работа - это норма.
 
Mr_ZEDДата: Вторник, 10.02.2009, 18:16 | Сообщение # 4
Майор
Группа: Пользователи
Сообщений: 229
Награды: « 7 »
Вручить:
Статус: Offline
Он с нами с 24.09.2008
В результате тестов проведенных лучшими игроками Европы, признано оптимальное соотношение
40000/100/100 (Главное что бы интернет канал был не меньше 512Kb).

Например ESL изменили sv_maxrate с 25000 до 100000 3 месяца назад.

З.Ы. Поставить рейт 100 000 тоже можно, но как показывают исследования особой разницы нет.
© ALTA

Раз это действительно лучшее, то стоит повысить sv_maxrate

Сообщение отредактировал Mr_ZED - Вторник, 10.02.2009, 18:29
 
BaFДата: Вторник, 10.02.2009, 18:54 | Сообщение # 5
Генерал-лейтенант
Группа: Друзья клана
Сообщений: 2901
Награды: « 13 »
Вручить:
Статус: Offline
Он с нами с 02.12.2007
Нее, я уже об этом писал. мах райт это максимальный объем пакета, который сервер может за раз бросить клиенту в байтах. Сервак его физически до такого объема загнать не сможет.

Пушистая Бизнес-Вумен:
Никаких премий за хорошую работу. А то получается, что за плохую работу - зарплата. Хорошая работа - это норма.
 
Форум » Информация по Counter-Strike » Настройка CS:S » О TickRate и как с ним бороться. (Информация к размышлению)
  • Страница 1 из 1
  • 1
Поиск:
Clan biaX © 2007-2024