Как настроить рейты в css
Перейти к содержимому

Как настроить рейты в css

  • автор:

Как настроить рейты в CSS

Рейты в CSS – это объем информации в байтах, которое сервер отправляет игроку. Этот параметр напрямую зависит от того, какую скорость интернета может обеспечить клиенту провайдер. Для настройки рейтов в игре вы должны иметь минимальное представление о трёх командах, используемых в консоли:

  • rate — предельно возможный объем передачи информации (Byte/sec)
  • cl_cmdrate — число действий, отправляемых игроком на сервер.
  • cl_updaterate — число действий, отправляемых сервером игроку.

Два последних параметра должны быть идентичными, поскольку они взаимозависимы. Не рекомендуется использовать данные команды, не понимая их сути. Проблемы могут быть очень серьёзными. К примеру, ваша картинка будет существенно отличаться от картинки сервера, а это не есть гуд, как вы понимаете. Такие лаги искажают восприятие игрового процесса, в том числе выстрелов, скорости перемещения игрока на поле и т.п.

Если у вас тормозит интернет, рекомендуется использовать следующие параметры:

Если ваш интернет, что говорится, позволяет, тогда лучше использовать эти настройки:

Важно не перепутать, так как это может привести к проблемам, а в некоторых случаях сделать нормальный игровой процесс невозможным.

Вся информация предоставлена в ознакомительных целях. Копирование запрещено.

Как настроить рейты в CSS

Рейты КСС – это количество информации (байт), которые сервер может отправить клиенту, т. е. игроку. Здесь прослеживается прямая зависимость от скорости интернета игрока, поскольку от этого зависит, какое количество информации сможет принять канал.

Итак, настройка рейтов КСС требует знания трех основных команд:

  • rate — определяет максимальное количество передаваемых байт в секунду.
  • cl_cmdrate — определяет количество действий, которые будут отправлены клиентом на сервер.
  • cl_updaterate — определяет количество действий, которые будут отправлены сервером клиенту.

Набор настроек для медленного интернета (модемное соединение, общественные беспроводные сети и прочее):

rate 15000
cl_cmdrate 70
cl_upaterate 70

А вот набор для высокоскоростного соединения (домашний кабельный интернет и похожее):

rate 35000
cl_cmdrate 101
cl_upaterate 101

Как настроить рейты в CSS

Не стоит путать эти наборы. Если интернет быстрый, и будет поставлен соответствующий пресет настроек, то пинг заметно снизится, а вот если поставить для медленного, то наоборот, повысится.

Как настроить рейты в css

В этой статье будут рассмотрены все консольные команды касающиеся настройки рейтов Counter-strike Source (CSS) с их подробным описанием.

клиент — сервер

Все игры на движке Source, к которым относиться Counter-strike Source, используют сетевую архитектуру клиент-сервер. В нашем случае сервер это программа, запущенная на удаленной машине, клиент — компьютер игрока, подключенный к серверу. Клиент и сервер общаются между собой, обмениваясь пакетами данных. Клиент игрока посылает сведения о своих действиях на сервер, а взамен получает информацию обо всех изменениях в игровом мире.

tickrate, cl_updaterate, cl_cmdrate, rate (рейты)

В процессе игры все происходящее нам кажется непрерывным, но на самом деле это не так. Сервер Counter-Strike Source способен обрабатывать события игрового мира с частотой шестьдесят шесть раз за одну секунду (tickrate 66). Это значение установлено по умолчанию и встроенных возможностей для его изменений не предусмотрено. Исходя из этого, понятно, что клиент не может отправлять и получать данные чаще, чем установленный tickrate.

По умолчанию клиент получает от сервера двадцать пакетов в секунду, каждое изменение в игре вы сможете наблюдать не раньше, чем придет очередной пакет, а значит с частотой двадцать раз за одну секунду. Очевидно, что этого не достаточно, особенно если учесть высокую динамику игры. Вы только представьте себе ситуацию, когда ваш противник стрейфует или резко выбегает из за угла. В таких игровых моментах нужна повышенная информативность от сервера. Частоту обновления данных можно изменить с помощью консольной переменной cl_updaterate. Как упоминалось ранее, скорость приема пакетов ограничена значением tickrate сервера. Значит, максимально возможное значение cl_updaterate составит шестьдесят шесть пакетов в секунду.

cl_updaterate 66
(Установив это значение рейтов, вы будете получать более точные и более информативные данные о происходящем в игре.)

Все сказанное относительно обновления информации от сервера относится и к передаче данных от клиента. Ведь когда вы нажимаете на клавишу клавиатуры или мыши необходимо проинформировать об этом сервер как можно быстрее. Частота отправки пакетов от клиента к серверу настраивается при помощи консольной переменной cl_cmdrate (по умолчанию тридцать пакетов в секунду). Максимальное значение cl_cmdrate не может быть выше, чем tickrate сервера.

cl_cmdrate 66
(С таким параметром рейтов сервер будет максимально быстро получать сведения о ваших действиях.)

Все игроки Counter-strike Source обладают разным подключением к сети интернет. Во избежание потери пакетов подход к настройке клиента должен быть индивидуален для каждого. При помощи консольной переменной rate можно установить максимальное значение данных, которые вы можете принимать, т.е. установить максимальный входящий трафик вашего подключения. В этом случае сервер будет знать о вашей входящей пропускной способности и никогда не пошлет обновлений больше чем установленный rate. По умолчанию значение rate составляет 30000 байт в секунду. Рассчитать правильный rate очень просто, достаточно перевести ваш входящий трафик в байты. Например, мое подключение к интернету 15 Мбит/с (15*2 20 / 8 = 1966080 байт). Ставить такое высокое значение лишено всякого смысла. Поэтому лично я ограничиваюсь rate 262144 (2 Мбит/с)

Почему разработчиками Valve изначально установлены такие низкие значения rate, cl_updaterate и cl_cmdrate. Скорее всего, это исходило из расчета на среднестатистического пользователя с медленным модемным соединением. Но по моему нескромному мнению это могло иметь место еще несколько лет назад, когда ни кто не имел представление что такое доступ в мегабит(ы). В соревновательных режимах применяются максимально возможные рейты.

интерполяция и lerp

Теперь поговорим об интерполяции, что это и с чем его едят. Выше уже шла речь о том, что клиент получает от сервера информацию в виде пакетов (по умолчанию 20 пакетов в секунду). От сюда следует, что все изменения, происходящие на игровом сервере мы не сможем увидеть чаще, чем будем принимать пакеты. Можно было бы спросить, почему же картинка выглядит такой плавной, ведь это все равно, что смотреть фильм с малой кадровой частотой. Как раз за это и отвечает функция интерполяции. Принцип ее работы очень прост. На основе информации, которую несут в себе входящие пакеты, клиент пытается рассчитать промежуточные значения между ними. Тем самым, клиент заполняет недостающие кадры «фальшивыми».

( Зеленым обозначены входящие пакеты, красным — кадры рассчитанные на их основе. Эта картинка демонстрирует работу интерполяции, в реальности пакеты приходят значительно чаще)

Как нетрудно догадаться, чем больше клиент будет получать пакетов от сервера, тем меньше интерполяция будет отдавать нам «фальшивых» снимков. Значит при максимально возможном обновлении (cl_updaterate 66), игрок будет получать более точную и честную информацию.

Для настройки интерполяции в клиенте предусмотрено несколько консольных переменных: cl_interp_ratio, cl_interp. Переменная cl_interp_ratio задает число интервалов, через которые будет происходить интерполяция (по умолчанию 2 интервала). Клиент будет ждать до тех пор, пока не придут два пакета, и только потом будут рассчитываться промежуточные значения. В случае потери одного из пакетов расчет будет вестись на основе второго. Установка cl_interp_ratio 1 (один интервал) заставит клиент ждать только один пакет, что сведет задержку интерполяции (lerp) к минимуму.

Высокий lerp приводит к тому, что игрок видит финальную картинку с запаздыванием. Вы, наверное, не раз замечали, как вас убивают, когда вы уже отошли за угол. Этот эффект очень часто называют багом интерполяции и единственное решение — снижение задержек. Но следует отметить, что lerp учитывается при лагокомпенсации на стороне сервера и поэтому игрок не должен думать так, будто бы ему нужно целиться перед противником.

Переменная cl_interp устанавливает величину интерполяции. Рассчитать cl_interp очень просто:

cl_interp=cl_interp_ratio / cl_updaterate
(можно установить cl_interp 0, тогда его значение будет рассчитано автоматически.)

лагокомпенсация

Лагокомпенсация на сервере сводит к минимуму влияние задержек (пинга) клиент-сервер, а также задержек интерполяции. Представьте себе, что вы играете на сервере, который географически находится далеко от вас и вдобавок у всех игроков разные задержки. Вы делате точный выстрел в бегущего противника. За время прошедшее от нажатия вами на клавишу мыши и доставкой пакета на сервер ваша цель уже давно скрылась за угол, но попадание все равно засчитывается. Это происходит благодаря лагокомпенсации на стороне сервера. Все дело в том, что сервер запоминает позиции всех игроков, делая снимки игрового мира, и при обработке вашего выстрела находит нужный снимок по формуле:

засчитанный выстрел = текущее время сервера — ваш пинг — lerp

Лагокомпенсация дает возможность игрокам с разными задержками играть практически на равных, но с ростом и нестабильностью пинга эффективность лагокомпенсации падает.

предсказание (prediction)

Допустим, что вы подключились к серверу с очень большим пингом, например 200 мс. Любое ваше действие, будь то движение или стрельба, отправляются на сервер в виде пакетов, далее сервер фиксирует эту информацию и отправляет ее вам и всем остальным игрокам. В итоге вы сможете наблюдать свои же действия с задержкой равной пингу. Чтобы испытать это на своей шкуре, создайте игру и введите в консоль sv_cheats 1, net_fakelag 200, cl_predict 0 (cl_predict 0 — отключает предсказание на стороне клиента). Передвигаться, а уж тем более стрелять становится просто невозможно. Для исправления сего, предусмотрена функция предсказания. Клиент пытается сам предугадать события на сервере, относительно ваших действий, не дожидаясь их от него. Это дает игроку чувство комфорта в игре. Но, по причине того, что в момент отправки пакета клиент еще не знает обо всех изменениях происшедших на сервере, могут возникнуть ошибки предсказания, которые порождают скачки изображения. Для того чтобы их сгладить в клиенте предусмотрена консольная переменная cl_smooth (по умолчанию включено) и переменная cl_smoothtime, которой можно настроить время сглаживания.

Надеюсь эта статья помогла вам разобраться с вопросами, касающимися настройки рейтов в Counter-Strike: Source.

Как настроить рейты в css

Сообщений: 42

Статус: Оффлайн

Определения:

Rate (Рейт) — максимальный предел байт в секунду, который сервер может послать клиенту;
cl_cmdrate — число раз в секунду, которое клиент информирует сервер о своих действиях;
cl_updaterate — число раз в секунду, которое сервер информирует клиента о том, что происходит на сервере.
1. Как включить консоль.
Если у вас не запускается консоль по нажатию кнопки «~», то Вам ее надо включить. Включается она вот где: «. Настройки / Клавиатура /Дополнительно» — нужно поставить галочку — «Включить консоль разработки».
2. Настройка рэйтов.
На различных серверах, Вас могут попросить изменить рэйты, объясню, как это делается. Открывается консоль кнопкой «~», и появившемся окне, вставляете, по очереди команды, написанные ниже, и нажимаете ENTER. Соответственно, если на сервере, Вас попросят откорректировать настройки, пишите их.
Значения команд cl_updaterate и cl_cmdrate должны соответствовать 66.
Значение команды rate от 20000 до 30000.

Группа: Тихий пользователь

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *