При игре в CS по модему или по интернету вы не раз сталкивались с Ping'ом (Latency), точнее с его очень высоким значением.

Мало кто знает но пинг делится на 2 параметра:

1. Ping - Время задержки сервера, т.е. время отправки-получения пакета данных за секунду, соответственно, чем пинг выше, тем задержка больше и наоборот. На примере это выглядит так - вы делаете выстрел, после чего вы автоматически отправляете сигнал серверу, что вы произвели выстрел, получив его он производит расчёт траектории пули и отправляет полученные результаты всем игрокам (в том числе и вам). Вот эта задержка времени в милисекундах и есть ваш пинг, например задержка 300 милисекунд - пинг 300. Поэтому самым главным параметром для пинга будет скорость вашего соединения - чем оно выше тем быстрее отправляются и принимаются сигналы, тем меньше задержка времени (Ping). Поэтому сам Ping уменьшить нельзя (почти)!!! потому, что для этого нужно увеличить скорость вашего соединения, а это как вы сами понимаете практически невозможно (ну разве, что купить более хороший модем и поменять телефонную линию!).

2. Лаг - Попросту "зависание" на некоторое время. Происходит при переполнении канала связи, при большом пинге или плохом качестве соединения. На примере это выглядит так: допустим при конекте 56,6 вы за секунду можете скачать 100 килобайт в секунду (Это к примеру!!!), но исходящий трафик от сервера к вам может быть и больше например 120 килобайт в секунду (зависит от того сколько человек играет, карты и конкретной ситуации), в результате происходит забивание канала связи (частенько из-за этого появляется надпись FlushEntityPacket) и ваш CS приостанавливает вас (по закону подлости в самый не подходящий момент), пока ситуация не нормализуется - кстати при этом резко растёт Ping потому как канал связи забит и вашим сигналам нужно гораздо больше времени чтобы добратся до сервера, поэтому в лагах всегда винят Ping. Но если в случае с пингом мы нечего поделать не можем то уменьшить трафик (и тем самым расширить канал связи) мы можем - вот его мы и будем уменьшать!!!

Для начало убедитесь что у вас стоят самые последние драйвера на модем.

Теперь переходим непоследственно к оптимизации CS. Но сразу хочу оговорится что все сетевые настройки CS которые стоят по умолчанию являются оптимальными и изменение их параметров хоть и уменьшит лаги и сделает Ping более стабильным, но при этом придётся чем-то жертвовать... Приведу пример - что вы делаете когда навороченная игрушка у вас тормозит??? Правильно, делаете графику похуже! Вот здесь примерно также.


--------------------------------------------------------------------------------

Настройки клиента:

cl_updaterate ## - количество пакетов (согласований), посланых от сервера - клиенту за единицу времени (секунду). Эта команда напрямую связана со скоростью соединения и имея 28.8 kb/s нет смысла ставить значение больше 15 (лучше 10). Потому что поделить 2.5 кб/сек на 15 и получим небольшой размер "пакета" данных на одно согласование (маловато будет). Так что для 28.8 ставьте cl_updaterate "10" и не больше.

Скорость соединения (Кбод) cl_updaterate (1/сек)
28.8 от 10* до 15
33.6 от 15* до 20
от 48.8 от 20* и более


* - Оптимальное значение

cl_cmdrate ## - количество согласований в секунду, посланных от клиента - серверу. Тут дело такое: если ты хочешь общаться по микрофону и хочешь, чтобы другие игроки слышали твой голос, а не "дизельный выхлоп" или хуже, то ставь значение 30. Но как известно единовременно исходящий и входящий потоки они: как два медведя в одной берлоге, взаимоуменьшают друг друга. Так что если общаться голосом не предвидится, то ставь от 10 до 20. В принципе для 28.8 cl_updaterate "10" и cl_cmdrate "30" вполне приемлемо. На каждые три согласования со стороны клиента - одно со стороны сервера. Сойдет!

rate #### - Поток (в байтах) со стороны сервера. Вообще эта величина должна быть ниже скорости модемного соединения примерно на 20-30% (потому, что исходящий поток тоже существует и, заняв все 100% пропускной способности линии, Вы себя обречете).

Скорость соединения (Кбод) rate (бит/сек)
28.8 от 2000 до 2500
33.6 от 3000 и выше
от 48.8 от 20* и более

Если задать значение больше допустимого - лови FlushEntityPacket, сервер закидает тебя "пакетами" по твоему же требованию в удобный для него момент. Учтите, что для большого числа игроков (16-20) скорость соединения играет большую роль. Не рекомендуется ставить максимальное значение, если пакеты часто не доходят: на их "перепосылку" надо иметь "резерв". Максимальное значение здесь 4000, поставив меньше вы получите ощютимую потерю кадров, что очень мешает при игре, поэтому даже при конекте 28.8 я рекомендую поставить 4000 и "пожертвовать" другими параметрами.

cl_latency -### - Компенсация лагов. Величина, необходимая для хоть какого-то скрашивания серых будней "модемного" игрока. Задаётся как 50% или 75% от текущего пинга с противоположным знаком (100% имеет эффект, но не стоит столько задавать). Например для пинга 200 подойдет cl_latency "-150". Эта величина ОЧЕНЬ важна. Но в CS 1.6 она не используется.

cl_rate #### - Тоже, что и rate, но со стороны клиента. Величина не столь важная, т.к. клиент никогда не сможет использовать её на 100% (только когда происходит закачка "лого" на сервер). По умолчанию стоит cl_rate "9999", так и оставим.

cl_cmdbackup - количество пакетов посланных на сервер. То есть, сколько отсылается серверу пакетов в секунду, рекомендуемые значения от 1 до 2.

cl_resend - время, через которое будет снова послан пакет, если предыдущий не дошел. Чем меньше, тем быстрее будет исправлена ошибка при передаче пакета данных, но иногда стоит ставить значение не 1, а 2 или даже 3, т.к. если на линии есть шумы и следующий пакет тоже не дойдет, будет критическая ошибка и вылет с сервера (в правом-верхнем углу сообщение Connection Problem). Ставить на своё усмотрение.

cl_lw - все эффекты и действия связанные с оружием просчитываются на стороне клиента . Это помогает значительно оптимизировать работу, но у вас не будет 100%-ой гарантии, что то, что вы видите действительно так . Хотя сколько я играл ни разу не заметил каких либо отклонений от реально происходящего. Хотите играть без задержки ставьте значение 1.

cl_lc - компенсация лагов на стороне сервера. Данный параметр заставляет сервер принять во внимание ваш пинг и значительно оптимизировать работу, но эта опция может быть отключена на сервере (sv_unlag 0). Если это так, то cl_lc да, впрочем, и cl_lw игнорируются. Значение cl_lc как вы поняли нужно поставить 1.

cl_lb - Все последствия перестрелки, т.е. пятна крови, дыры на стенах и т.д. просчитываются на стороне клиента. Такой же принцип оптимизации, как и в предыдущих двух командах. Значение "1" для оптимизации. cl_allowdownload - Разрешить скачивание ресурсов с сервера к игроку. Влияет только на время и шанс подключения. Т.е. если неактивно (стоит в 0), а на сервере модель, которой у тебя нет, тебе не удастся завершить процесс подключения. Рекомендую активизировать (значение "1").

cl_allowupload - Разрешить скачивание сервером ресурсов клиента. Та же ситуация: если у тебя модель есть, а на сервере ее нет, то твою модель никто не увидит. Рекомендую активизировать (значение "1").

cl_download_ingame - Разрешить скачивание ресурсов прямо в игре. На твой выбор, т.к. сказывается на скорости соединения только если у кого-нибудь наставлено фичей на CS и он только, что присоединился к игре. Я обычно разрешаю скачивание в игре (значение "1").

cl_nopred - Не предугадывать движения игрока. Если хочешь видеть плавные передвижения других игроков, да и себя, не включай эту опцию (значение "0"), но тогда сервер не будет принимать во внимание твой пинг, например ты стреляеш в движущегося противника, произведя выстрел в 0 милесекунд, при Ping'е 200, через 200 милесикунд сервер получит сигнал о выстрее и посчитает промах - потому как через 200 милисикунд противник будет находится несколько в другом месте. При включении данной функции сервер принимая во внимание ваш пинг, расчитает местонахождение противника 200 милесикундной давности - тут то вы попали. На твоё усмотрение.

net_graph - График скорости соединения. Значения: "1" - статистика и график соединения, "2" - статистика, график соединения и график передачи данных, "3" - только статистика и "0" - неактивен.

net_graphpos - Расположение графика скорости соединения. Т.е. слева, по центру или справа. На ваше усмотрение.


Настройки сервера
cl_allowupload - Разрешить скачивание сервером ресурсов клиента. Рекомендую активизировать (значение "1").

sv_unlag - Компенсировать лаги клиентов т.е. разрешить cl_lc, cl_lw и cl_lb. При игре по модему сервер должен поддерживать компенсацию лагов (значение "1").

sv_unlagsamples - Сколько предыдущих пакетов используется для вычисления задержки клиентов. Хватит одного пакета (значение "1").

--------------------------------------------------------------------------------

Итак, что у нас получилось: Здесь привидены примерные оптимальные настройки основных параметров для уменьшения лагов:

Такие значения можно использовать при среднем пинге 120-170. Быстрое обновление, почти полное отсутствие лагов, чему способствует малый пинг. Входящий трафик составляет примерно 1.20 - 1.80 k/s, исходящий 1.60 - 2.20 k/s

cl_updaterate "20"
cl_cmdrate "25"
cl_rate "3500"
rate "3500"
cl_resend "3"
cl_cmdbackup "2"

Такие значения можно использовать при среднем пинг 170-250. Хорошая скорость обновления, возникновение лага маловероятно, но не исключено. Входящий трафик составляет примерно 0.90 - 1.60 к/s, исходящий 1.30 - 1.90 k/s

cl_updaterate "15"
cl_cmdrate "20"
cl_rate "3000"
rate "3000"
cl_resend "2"
cl_cmdbackup "2"

Такие значения можно использовать при среднем пинге 250-400. Средняя скорость обновления, но вполне пригодная для нормальной игры, возникновение лагов не исключается, т.к. пинг не очень хорош. Входящий трафик составляет примерно 0.70 - 1.40 k/s, исходящий 1.00 - 1.70 k/s

cl_updaterate "10"
cl_cmdrate "15"
cl_rate "2000"
rate "2000"
cl_resend "1"
cl_cmdbackup "2"

Такие значения можно использовать при среднем пинге 400-600 и более. Минимально возможная скорость обновления, но по крайней мере, играть будет легче, чем при постоянном лаге. Входящий трафик составляет примерно 0.60 - 1.20 k/s, исходящий 0.70 - 1.30 k/s

cl_updaterate "5"
cl_cmdrate "10"
cl_rate "1000"
rate "1000"
cl_resend "1"
cl_cmdbackup "1"

Хотя объем входящего трафика в конкретный момент времени зависит от того, что происходить вокруг игрока - чем больше игроков, различных объектов, стрельбы и т.п. вокруг, тем больше трафик. Опять же, это зависит от компоновки карты.