Перевод dropped due to slot reservation
Введите net_graph 3 в консоли после того, как подключитесь к серверу.
В правом нижнем углу вы увидите динамичный график. Введите net_graph 0, если вы хотите остановить мониторинг. Этот график — очень полезный инструмент, т.к показывает информацию о входящих/исходящих пакетах, текущий пинг, параметры сhoke и loss.
Loss — число, которое показывает, сколько пакетов было потеряно во время передачи от сервера к вам. Обычно оно говорит о несоответствии скорости вашего входящего канала и серверного исходящего. Чтобы принять избыточную информацию, которую сервер пытается вам передать, необходимо уменьшить объем этой информации.
Choke — покатель того, сколько пакетов ваш компьютер не может передать серверу из-за того, что скорость вашего соединения не позволяет это, либо сервер запрашивает слишком много информации.
А теперь о том, как вы можете изменить эти показатели через свой клиентский конфиг.
cl_updaterate [хх] — cколько обновлений в секунду посылать от сервера вашей машине. Этот параметр влияет на то, насколько быстро вы получите серверные данные, например, о действиях других игроков .
Для модема: 15-25
Для выделенки : 25-40
cl_cmdrate [хх] — сколько обновлений в секунды будет отправлено от вашей машины серверу. Следовательно, от этого параметра будет зависеть то, как скоро сервер получит информацию о ваших действиях.
модем = 25-35
выделенка = 40-101
rate [хххх] — скорость обмена данными между сервером и клиентом. Существует несколько мнений по поводу этого параметра, но разработчики рекомендуют следующее:
28.8k = 1500-2200
33.6k = 2000-3500
56k = 3500-4000
ISDN = 4000-6000
xDSL, Cable, T1, etc = 6000-9999
Неверная установка rate может повлечь за собой появление loss/choke.
Итак,
Loss — настраивается с помощью cl_updaterate. Если у вас есть Loss, попробуйте уменьшить
cl_updaterate. Если Loss отсутствует, попробуйте увеличить cl_updaterate для уменьшения
Choke — настраивается с помощью cl_cmdrate. Если у вас есть Choke, попробуйте уменьшить cl_cmdrate. Если Choke нет, вы можете попытаться увеличить cl_cmdrate для уменьшения пинга.
Rate — сначала согласуйте со скоростью вашего соединения, затем с параметром sv_maxrate сервера. Никогда не делайте этот параметр больше скорости вашего соединения. Если у вас есть и choke и loss одновременно, попробуйте уменьшить rate. В противном случае попробуйте увеличить rate.
Сначала настройте cl_updaterate и cl_cmdrate, затем пробуйте разные rate.
По умолчанию эти параметры имеют значения:
cl_updaterate 20
cl_cmdrate 30
rate 7500
Нельзя назвать их хорошими, т.к. они были установлены в Half Life в 1998м, и являются оптимальными для распространенного в то время 56К соединения. Проблемы, которые могут быть у вас при использовании этих настроек с современным соединением:
1)Вероятность регистрации попадания вашего попадания в противника намного ниже.
2)Аналогично при точном выстреле в вас.
Такое положение дел является попросту говоря рандомом. В некоторых ситуациях из-за задержек становится не важно, кто выстрелил первым. Эти настройки очень четко контролируются в чемпионатах, сервер может вас не пускать, если
ваш конфиг не удовлетворяет требованиям.
Большинство игроков используют настройки для игры по локальной сети(LAN):
cl_updaterate 101,
cl_cmdrate 101,
rate 20000
до тех пор, пока не появляются лаги. Это максимальные параметры.
cl_updaterate можно пробовать сделать ниже, а cl_cmdrate обычно ставится равным вашему фпс,
то есть не более 101. можно поставить 101 для всех фпс — это будет не критично.
Есть ещё команда cl_rate, но она аналогична rate, так что на нее можно не обращать внимания.
Тема довольно таки старая, может выкладывали я не знаю. Если кому либо полезно, буду рад.
сабж по теме:
Начать, я думаю, стоит с замечательной функции встроеной в Half-Life(так же в моды). Это достаточно уникальный инструмент который поможет настроить и оптимизировать на высоком уровне ваш клиент. Открыв консоль набираем net_graph 1. Теперь с помощью графика можно определить ошибки в ваших текущих настройках сети. Идеально график выглядит так:
Как видим установленные настройки:
Частота кадров в секунду(fps_max 101)
Кол-во пакетов клиент->сервер(cl_updaterate 100)
Кол-во пакетов сервер->клиент(cl_cmdrate 101)
Почему же этот график идеальный? Две полоски зеленая и фиолетовая — идеально прямые, от этого и будем отталкиваться.
Дело в том, что каждый сервер настроен по разному и к каждому надо настраивать клиент по особому — идеальной настройки нет. Те настройки клиента которые пишут в правилах чемпов идеально подходят к настройкам сервера на котором планируються игры. Для этого и предназначен этот инструмент, не зная настроек сервера настроить клиент. Ошибка в сетевых настройках ведут к лагам клиента, это могут быть «фризы», дерганье моделек или же микро-подвисания именно тогда когда вы зажимаете. Конешно не только ваши настройки важны — если сервер плохо настроен, или же канал у него гавно то лаги будут как бы вы не старались — вот почему стоит отличать гавняные сервера от хороших и наоборот, и играть естесно на хороших.
Настройка cl_cmdrate (сервер->клиент)
Например, мы зашли на сервер, прописали net_graph 1 видим:
Как видим установлены cl_updaterate 30; cl_cmdrate 51.
Появившиеся красные точки означают что cl_cmdrate слишком мал, его стоит увелечить — идеальное значение будет значение вашего фпс(fps_max 101.0). Я поставил немного больше:
Как видим красные точки пропали.
Настройка cl_updaterate и ex_interp
Не буду много писать что такое ex_interp, скажу одно, что чем он меньше тем лучше т.к. частота обновления быстрее — модель игроков находиться там же где и хитбоксы, а именно в хитбоксы нужно целиться.
cl_updaterate должен быть равен серверному параметру sv_maxupdaterate, ex_interp же напрямую зависит от cl_updaterate и расчитываеться по формуле ex_interp = 1/cl_updaterate
Например, наш cl_updaterate установлен значением 51, естесно ставим ex_interp 0 чтобы клиент сам расчитал идеальное значение под ваши сетевые настройки по формуле 1/cl_updaterate:
У нас появились оранжевые/желтые точки что означает, что мы в экстраполяции. Происходит это потому, что мы получаем 51 пакетов, когда сервер может отправить 30 (sv_maxupdaterate 30).Таким образом, мы отбрасываем пакеты и находимся в экстраполяция (с использованием пакетов в истории, или предыдущих пакетов), нам это не нужно — надо понижать cl_updaterate, ставим значени 40 и наш ex_interp устанавливаеться автоматически. Получаем:
Теперь желтые точки ниже чем раньше, но все равно есть. Это потому что мы все ещё отбрасываем пакеты. Следует ещё уменьшить cl_updaterate, ставим 30 и наш ex_interp снова расчитываеться автоматически, видим следующую картину:
Теперь наш cl_updaterate и ex_interp настроены максимально НО они очень низкие это означает что сервер очень плохой, т.к. идеальные значения cl_updaterate 101 и ex_interp 0.01
Теперь я выбрал другой сервер, поставив максимальные для меня значения рейтов: rate 30000;cl_cmdrate 105;cl_updaterate 100;ex_interp 0(1/100=0.01)
Как видим, синия линия без каких либо желтых/красных/оранжевых точек.
Есть синие повышения но они не значительны, внизу вырисовываються почти четкая линия — это признаки хорошего сервера, а так же клиента, настроенного на высокую производительность.
Захожу на другой:
Этот сервер хуже, т.к. линии внизу почти нет — она превратилась в куски синих точек. Я попробовал настроить cl_updaterate чтобы избавиться от них:
У меня это получилось, но зеленая полоса начала окрашиваться в желтый цвет что означало что у меня наблюдается choke — скорее всего проблема в сервере, что ни есть хорошо Если бы были красные точки то это потеря пакетов — скорее всего проблемы у вас с сетью/инетом — надо обратиться к провайдеру.
Дальше я решил зайти, как мне показалось, на хороший сервер т.к. там было большое количество игроков в любое время суток:
Ужасная картина: красные, желтые, оранжевые. здесь сервер вообще будет лагать при самых низких настройках, стрельба отвратительная — все уходить в небо + игроки лагают. Выставив самое низкое значение cl_updaterate 20, ex_interp выставился автоматически 0.05:
В итоге, даже с самыми низкими настройками сервер не оправдывает себя, даже если выставить вручную значение ex_interp 0.1 это будет означать смещение моделей с хитбоксов = неправильные цели для попадания(будут случаи когда «прицел был на голове, а пуля пролитела мимо», а так же «ушел за угол, убили с usp»)
Итог: Выбирайте хорошие сервера, и настраиваете клиент под него с помощью графиков. Помните, на хорошем сервере стрельба будет почти такой же как на лане, моделки будут двигаться плавно, а авп будет стрелять в прицел. Так же не забывайте что самый высокий-плохой ex_interp 0.05, самый низкий-хороший 0.01 на LAN или в интернете не умеет значения, миф «LAN = 0.01;inet = 0.1» звучит с тех пор как использовались 56k модемы, никто не мог себе позволить хороший интернет, да и сети не были расчитаны на такое количество трафика, следовательно сами сервера не поддерживали высокие сетевые настройки. Все про игроки стремятся играть на хороших серверах, и там они ставят ex_interp 0.01 даже если у них пинг 50(проверено по логам esl aequitas)
Конешно есть такие игроки, которым пофиг на все и они бегают аля «rate 3500;cl_cmdrate 30;cl_updaterate 20» они естесно будут у вас лагать, хоть и пинг у них будет 5. с этим нечего поделать, главное помнить что он больше испытывает трудностей — у него мало что попадает в прицел.
________________________________________________________________________________________________
по окончанию настройки не забывайте ставить net_graph 0
FAQ нашего провайдера:
Предоставьте, пожалуйста, данные tracert и ping -n 30 до IP адреса сервера и до ya.ru (порт указывать не нужно!) в момент повышения пинга («лагов»).
Пуск > Выполнить > cmd
В открывшемся окне введите по очереди команды:
1) tracert 83.222.109.27
2) tracert ya.ru
3) ping -n 30 83.222.109.27
4) ping -n 30 ya.ru
Полученные результаты (текст) скопируйте и вышлите в поддержку. По этим данным мы определим проблему и примем меры к её решению.
Возможные проблемы и советы по решению:
Скорость Интернет-соединения Steam
Проверьте, что у вас правильно установлена ваша Скорость Интернет-соединения, чтобы соответствовать типу вашего Интернет-соединения. Вы можете найти ее в Файл > Настройки > Download > Скорость Интернет-соединения.
Настройка игровых Client Rates параметров
Большинство соединений хорошо работают с настройками rate, cl_updaterate и cl_cmdrate по умолчанию. Большинство серверов предотвращают изменение ваших игровых Client Rates параметров.
Настройки игры по умолчанию:
* rate 7500
* cl_updaterate 20
* cl_cmdrate 30
Экспериментируйте с Client Rate
Значение Client Rate задает, сколько пакетов будет послано сервером на клиентскую машину, чтобы сохранить синхронизацию — если это число слишком высоко, возможна потеря некоторых игровых данных (что может вызывать лаги).
Многие люди часто спрашивают что такое рейты, какие значения использовать и т.п Я думаю написание руководства, объясняющего что все это значит, поможет многим людям. Чтобы потом люди не говорили какие значения использовать, не понимая что они означают на самом деле.
Начнем с определений:
Rate (Рейт) — это максимальный предел байт в секунду который сервер может послать клиенту.
cl_rate — определяет максимальный предел байт в секунду который клиент может послать на сервер. (Вам не нужно беспокоится об этом параметре)
cl_cmdrate — число раз в секунду которое клиент информирует сервер о своих действиях.
cl_updaterate- это сколько раз в секунду сервер говорит клиенту что происходит на карте.
Я предполагаю, что большинство людей использует ADSL или кабель и здесь я буду рассматривать ADSL в качестве примера и исходя из этого я предполагаю, что скорость входящего потока у всех 512кб\с и скорость исходящего 256кб\с, но вы можете сделать все приведенные здесь расчеты и для кабеля, и для соединений на более низких скоростях (просто необходимо вычислить разницу). Теперь выставляйте значения rate, cl_updaterate и cl_cmdrate чем выше тем лучше, потому что это позволяет вам играть в более быструю игру и что более важно это позволяет вашим пулям попадать в противника с большей вероятностью. Сейчас я объясню вам почему.
В теории соединение ADSL должно с легкостью поддерживать рейт в 25000. Это проверяется следующим образом:
берем значение рейта, которое измеряется в байтах в секунду и переводим его в килобайты в секунду.
25000 /1024 = 24.4140625кБ/с
В теории ваше соединение работает на скорости 512 килобит в секунду (в реальности оно работает на более низкой скорости). Я перевожу это значение в килобайты в секунду: 512 / 8 = 64кБ/с
Теперь вы можете видеть что через ваше соединение могут играть 2.62 человека с рейтом в 25000 (64 / 24.414 = 2.62). Можно использовать такое же вычисление для cl_rate, но этого делать не стоит, значения по умолчанию 9999 более чем достаточно.
Далее вы хотите изменить значения команд cl_updaterate и cl_cmdrate. updaterate определяет как много обновлений в секунду вы можете получить от сервера. Ясно что нужно получать как можно больше обновлений, так как это дает вам более точную картину того где кто находится и куда летят их пули. Однако, если у вас будет высокий updaterate и низкий rate вы не сможете послать достаточное количество данных за обновление и любая выгода от высокого updaterate будет сведена к минимуму. Для того чтобы стало понятно, я сейчас все объясню.
Если я ставлю cl_updaterate в 100 и мой рейт равен 25000 в теории каждое обновление может содержать до 250байт данных (25000 / 100 = 250). Повторюсь чем больше данных вы сможете получить за обновление, тем более четко вы будете видеть игровой мир (это не означает что игровой мир будет более четким, а означает то, что ваши пули будут более четко попадать в цель). В версии 1.3 было вычислено, что когда у вас на экране происходит много действий, вы можете использовать 175байт на обновление. Таким образом если у вас высокий updaterate, вам нужен соответствующий ему высокий рейт.
Используя данные из 1.3 если у вас updaterate равен 100, ваш рейт должен быть равен по крайней мере 17500, но лучше иметь небольшой запас. Я рекомендую значение 20000 как минимум (чтобы определить какое значение выбрать для вашего рейта возьмите ваш cl_updaterate и умножьте его на 175, а затем прибавьте к полученному значению еще хотя бы 2000 для страховки).
cl_cmdrate работает так же как и cl_updaterate. Эта команда определяет сколько обновлений в секунду вы посылаете на сервер. И снова ее значение нужно ставить как можно выше. Чем больше обновлений вы пошлете на сервер, тем больше информации он будет иметь о ваших действиях и о том куда летят ваши пули. На мой взгляд эта команда более важная чем cl_updaterate.