Среда, 04.12.2024, 22:03
Приветствую Вас Гость | RSS
Меню сайта
Поиск
Главная » Статьи » Все статьи

CS:S лаги. Причины и решения.
 
Многие игроки CS:S сталкиваются с проблемой лагов на серверах. Часто они жалуются на то, лаги происходят по вине сервера, а не по их вине. Конечно бывает и так, но чаще вина лежит не столько на сервере, сколько на самих игроках. Данная статья призвана объяснить игрокам, отчего случаются лаги, и как их избежать. Тот кто поймёт причины лагов, сможет их устранить, либо минимизировать.

 

Для начала рассмотрим ряд основных терминов:

Lag (лаг) – термин, означающий медленное (заторможенное) соединение, т.е. «лагающее». Ни в коем случае не путать с другими лагами, в том числе с теми, что используются штурманами на кораблях.

Ping (пинг) – величина, определяющая время прохождения пакета информации от Вашего компьютера до сервера и обратно, измеряется в миллисекундах.

 

Latency (задержка) – величина, определяющая время прохождения пакета информации от Вашего компьютера до сервера (она, конечно, меньше, чем пинг). Не стоит путать ping и latency!

Rates (коэффициент скорости) – термин, используемый в настройках скорости Counter-Strike: Source.

 

Choke (буквально – душить, заглушать) – это серверный лаг. Т.е. когда ваш комп посылает на сервер информационные пакеты, такие как позиции игрока, произведённые выстрелы и прочие ваши действия, но они не доходят до сервера. В CS:S по умолчанию все действия игроков отправляются на сервер 30 раз в секунду, -при отсутствии серверных лагов. Choke может иметь две причины:

 

1) Ваш компьютер отправляет на сервер слишком много пакетов в секунду. Например, от вас уходят на сервер 100 пакетов в секунду, но тот, в свою очередь, настроен так, что может принять лишь 40 пакетов в секунду. В итоге получается choke 60. При этом становится очевидно, что большинство ваших выстрелов просто не может дойти до сервера в нужное время. Лишь 40% Ваших выстрелов будет зарегистрировано. Теперь представьте себе ситуацию, что вы встречаетесь лицом к лицу с противником, стреляете в него первым, но не причиняете ему практического вреда, тогда как он вас убивает первым же выстрелом. Думаю, у многих была подобная ситуация. И многих эта ситуация выводила из себя.

 

2) Сервер не способен обрабатывать всю информацию, которая ему отправляется от игроков. Причины этому -либо сетевой лаг на сервере, либо лаг, вызванный перегрузкой процессора, отвечающего за работу сервера (например, при невысокой тактовой частоте). Однако в этом случае клиент (т.е. игрок) может частично подстроиться под особенности сервера и минимизировать лаги. См. решение ниже.

 

Loss (потери) – т.е. лаг, возникающий не по вине Вашего компьютера, и не по вине игрового сервера. Дело в том, что Ваши пакеты (команды), идущие от Вас на сервер, имеют длинный (зачастую) маршрут, проходящий по большому количеству различных сетей, в частности если сервер находится от Вас далеко, за сотни или тысячи километров. В этом случае часто пакеты запаздывают, либо вовсе "теряются”. Часто loss возникает при использовании беспроводных соединений. Этот лаг не поддаётся контролю.

 

Tickrate (тикрейт) – tick (тик) это временная единица, во время которой сервер обрабатывает входящую информацию, а также производит её проверку и обновляет состояние объектов игры. Большое значение тикрейта позволяет повысить точность обработки Вашей информации сервером, однако требует достаточной мощности сервера (точнее железа, на котором он стоит). К примеру, по рекомендации компании Valve, серверам с количеством 20 слотов желательно иметь тикрейт 66. Более высокий стандартный тикрейт, такой как 100, может использоваться на CW серверах или на паблик-серверах, устанавливаемых в количестве одного или двух на отдельно взятую машину с небольшим количеством слотов.

 

Итак, с терминами разобрались. Теперь попробуем узнать игровые возможности на отдельно взятой машине. Делается это с помощью net_graph 3. Чтобы вызвать это приложение, наберите в консоли игры команду net_graph 3. (Без точки, разумеется.) Вызвать консоль можно клавишей ~ (тильда). (Примечание: чтобы убрать приложение, наберите в консоли команду net_graph 0.) Появляется такое окно:
 
 
 
Зелёными цифрами обозначено следующее:
 
1) FPS – сколько фреймов в секунду способна дать Ваша видеокарта;
2) Ping – время прохождения пакета информации от Вашего компьютера до сервера и обратно в миллисекундах;
3) Data – сколько tcp/ip пакетов Вы способны отправить и получить;
4) Kilobits per second – сколько килобит Вы отправляете и получаете (в нашем случае это не важно);
5) Сколько раз в секунду Ваш компьютер обновляет позицию игрока (т.е. Вас) на сервере (out -внизу).
Сколько раз в секунду сервер посылает позицию игрока (in
-
сверху);
6)  Loss – потери, возникающие в сети, не по вашей вине и не по вине сервера;
7)  Choke – серверный лаг (см. выше).

Теперь переходим к решению (как убрать лаги в игре).

 

Каждый сервер настроен по разному. Это обусловлено тем, что мощность компьютеров, как и скорость интернет-соединения не может быть везде одинаковой. Поэтому на одних серверах количество слотов небольшое, на других, напротив, высокое. Я не буду углубляться на тему железа, но могу пояснить одно, что сервер в 10 слотов должен иметь скорость интернет-соединения не ниже 512 Кбит/с. Т.е. если у Вас на сервере количество слотов 15, а скорость 256 Кбит/с, то сервер будет у Вас лагать, даже если вы имеете достаточно мощный процессор и большой объём памяти. Поэтому важно правильно рассчитывать количество слотов и, безусловно - рейты. И те и другие выставляются в настройках сервера. Зачастую их значения можно узнать прямо на серверах, но встречаются исключения. В этом случае мы можем сами попытаться подобрать оптимальные значения рейтов (подстроиться под данный сервер).

 

Напомню, что рейты можно менять в консоли игры. Просто пишем значения (для примера): rate 25000  cl_updaterate 100 cl_cmdrate 100

 

cl_updaterate – сколько раз в секунду Ваш компьютер запрашивает сервер о позициях игроков  (по умолчанию 20);
cl_cmdrate – сколько раз в секунду Ваш компьютер посылает позиции игроков на сервер (по умолчанию 20);
rate – максимальное количество байтов, которые Вы можете получить.

Зайдите на сервер и попробуйте сменить Ваши рейты на cl_cmdrate  80 и cl_updaterate 60. Поиграйте несколько минут, и сравните с предыдущими значениями (меньше стало лагов или больше). Вы должны убедится, что значения в области под номером 5 на net_graph не урезаются сервером. Если значения всё время показывают 33.3 или 66.6, это означает, что Вы должны уменьшить значения до cl_cmdrate 66 и cl_updaterate 45. Поиграйте несколько минут, наблюдая за loss и choke. Если у Вас choke, Вы должны выставить рейты на более низкие значения. Придерживайтесь соотношения три к четырём, то есть updaterate должен составлять ¾  от cmdrate. Собственно это не важно, хотя желательно.
      Например, если у Вас choke 10, то и рейты следует опустить на 10 значений, до cl_updaterate 40 и cl_cmdrate 55. При игре на паблик-серверах нормальным считается choke 5 в середине раунда, а в начале и в конце раунда не больше 10-20 (choke всегода выше в начале и в конце раунда,
-
в это время сервер сбрасывает и обновляет объекты).
      Стоит иметь ввиду, что на серверах с постоянным респауном игроков (типа DM или Conquest) choke, как правило, выше, так как в данном случае на сервер идёт большая нагрузка, чем на обычный сервер. Поэтому изменение рейтов к сожалению не всегда спасает от choke, но позволяет его уменьшить.

      Настройка  рейтов позволяет Вам установить максимальное количество данных, которые приходят к Вам от сервера. Часто принято использовать следующие значения:

      Modem 56k
-< 20000
      Slow DSL/Cable – минимум 20000 
      Fast DSL/Cable – минимум 25000

      Чтобы установить рейты, просто введите в консоли необходимое значение. Например: rate 25000.

 

Примечание: Даже правильно выставленные значения рейтов не в силах избавить Вас полностью от всех лагов. Однако это улучшит игру и Вам, и Вашим соперникам. Удачи!
 
 
Категория: Все статьи | Добавил: Nickname123 (26.10.2009)
Просмотров: 2709 | Комментарии: 4 | Рейтинг: 5.0/2
Всего комментариев: 4
4 тарас  
0
преієт чуєш в мене модем ну такий як флешка 256 кілобіт в мене лагає на сервах любих тому я создав свій публік сервер в мене пінг 4-6 а в інших 300 а як більше двох людей то 900 пінг вони неможуть грати нормально шо скажеш яби собі нормальний хтів підрубати але я живу в особняку і треба кабелювати будинок я незнаю шо робити ти моя остання надія пліз підскажи шо робити

3 Slipknot1  
0

2 Nickname123  
0
Всегда пожалуйста smile

1 Slipknot1  
0
Сенкс за статью!!!!!!!!!!!!!!!!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Login
Категории раздела
Все статьи [109]
Картостроение [3]
Голосование
С каким видом оружия вы бегаете в COUNTER STRIKE?
Всего ответов: 3985
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024