Мало кто знает но пинг делится на 2 параметра:
1) Ping - Время задержки сервера, т.е. время отправки-получения пакета данных за секунду, соответственно, чем пинг выше, тем задержка больше и наоборот. На примере это выгледит так - вы делаете выстрел, после чего вы автоматически отправляете сигнал серверу, что вы произвели выстрел, получив его он производит расчёт траектории пули и отправляет полученные результаты всем игрокам (в том числе и вам).
Вот эта задержка времени в милесикундах и есть ваш пинг, например задержка 300 милесекунд - пинг 300. Поэтому самым главным параметром для пинга будет скорость вашего соединения - чем оно выше тем быстрее отправляются и принимаются сигналы, тем меньше задержка времени (Ping). Поэтому сам Ping уменьшить нельзя (почти)!!! потому, что для этого нужно увеличить скорость вашего соединения, а это как вы сами понимаете практически невозможно (ну разве, что купить более хороший модэм и поменять телефонную линию!).
2) Lag - Попросту "зависание" на некоторое время. Происходит при переполнении канала связи, при большом пинге или плохом качестве соединения. На примере это выглядит так: допустим при конекте 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 | от 2500 до 3000 |
от 48.8 | от 3000 и выше |
Если задать значение больше допустимого - лови 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
Хотя объем входящего трафика в конкретный момент времени зависит от того, что происходить вокруг игрока - чем больше игроков, различных объектов, стрельбы и т.п. вокруг, тем больше трафик. Опять же, это зависит от компоновки карты. |