Как сделать лерп в ксс

lerp и его особенности

Как сделать лерп в ксс

По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет «придумано» на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция.

1) Ваш интернет канал оставляет желать лучшего.
Предположим, что вы счастливый обладатель модема или в вашем городе широкополосный интернет пока по карману только избранным или ваш сосед по общежитию по вечерам заливает на торрент пачку свежих немецких фильмов. Это значит, что вы можете себе позволить исключительно скромные сетевые настройки. Скорее всего те, что стоят по умолчанию, а быть может ваши дела еще хуже. При cl_updaterate 20, даже если все пакеты благополучно приходят от сервера к клиенту, вы видите 20 кадров в секунду (не имеет значения, какой у вас компьютер). Человеческий глаз воспринимает эту картинку как дерганую. Если же, не дай бог, потери (choke) есть, то играть вы просто не сможете, так как будете видеть слайдшоу.

2) Настройки серверов непозволяют клиентской части выставлять необходимые значения некоторых переменных.
Главная проблема тут безусловно cl_interp_ratio, на данный момент ни один европейский серверный конфиг не позволяет играть с этой переменной равной нулю. На данный момент я не знаю ни одного паблика с такими настройками. Только несколько КВ-серверов позволяют отключать интерполяцию. Сейчас добавление sv_client_min_interp_ratio 0 (эта команда отвечает за минимальное значение cl_inerp_ratio, которое может иметь клиент находясь на этом сервере) в евроконфиге скорее всего вопрос времени, и я пологаю, ждать осталось не долго. Но факт остается фактом: значение этой серверной переменной по умолчанию равно 1, а это значит, что клиент не может сделать lerp меньше, чем 10 мс.

1) Напишите в консоли cl_updaterate и запомните значение этой переменной
2) Напишите в консоли cl_interp_ratio 1
3) Разделите 1 на значение cl_updaterate
4) Напишите в консоли cl_interp и присвойте ему то что получили в пункте 3

Например:
Я играю с cl_updaterate 66, это значит что в 3 пункте я получу 0.0152, следовательно мне нужно написать cl_interp 0.0152. Это даст мне lerp = 15. Что уже довольно неплохо. Так как интерполяция таких временных промежутков не слишком сильно добавляет неточности вашим действиям.
Если вы пишите значение cl_interp меньшее, чем cl_interp_ratio/cl_updaterate, то на net_graph lerp будет отображаться оранжевым цветом. Если же lerp окрашен в желтый, то значит значение lerp больше промежутка времени между отсылаемыми пакетами на этом сервере. В обоих случаях lerp (а значит cl_interp) нужно увеличивать пока тот не станет белым. Если вы будете пытаться играть с НЕ БЕЛЫМ lerp, то вы обрекаете часть своих выстрелов застревать в промежутке клиент-сервер.

Вывод:
Добивайтесь минимального значения lerp, оставляя его белым на каждом сервере, на котором играете. Это позволит вам снизить к минимуму все проблемы, связанные с вашим соединением с интернетом.

Чтобы не париться с математикой, можно забиндить клавиши так:

bind «INS» «lerpa+»
bind «DEL» «lerpa-«
bind «HOME» «lerpb+»
bind «END» «lerpb-«
bind «PGUP» «lerpc+»
bind «PGDN» «lerpc-«

Источник

Форум проекта sourceplay.ru

Часовой пояс: UTC+03:00

Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.Страница 1 из 1[ 14 сообщений ]
Версия для печатиПред. тема | След. тема
АвторСообщение
qwist
Не в сети
Младший сержант
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 06:33 Суббота, 24 Сентябрь 2011
Сообщения: 66
Steam_id: STEAM_0:0:66688666

(1) Стандартный net-config.
По умолчанию в tf2 стоят такие значения(вроде бы ибо наизусть не помню):

cl_updaterate 20
cl_cmdrate 33
cl_interp_ratio 1
cl_interp 0.1
rate 20000

Расскажу обо всём по-порядку. В данном конфиге на ВАШЕМ компьютере игровой мир обновляется со скоростью 20 кадров в секунду(cl_updaterate), другими словами вы скачиваете 20 пакетов в секунду.
То есть модельки игроков меняют место-положения 20 раз в секунду. Вы в этом мире обновляетесь 33 раза(cl_cmdrate), другими словами вы обновляетесь на сервере 33 раз в секунду.
Разберёмся с командой rate:
Объясню на примере.
Допустим rate равен 20000. Это означает, что в секунду с сервера скачивается 20000 байт информации. Ну грубо 20 кбайт.(Грубо потому что в килобайте 1024 байта=)).
Но если сервер обновляется всего лишь 20 раз в секунду, то мы должны видеть дёрганное изображение, ибо наш глаз воспринимает 24 кадра в секунду, а не 20. Но мы, как нистранно его видем плавным. Разберёмся, почему же))

(3) Лоссы и чоки
(loss & choke)

(4) Pro-config
Дефолтный конфиг очень даже хорош, но вот киберспортсмены ведь крутые, им надо всего да побольше.

cl_updaterate 66 // сервер посылает 66 пакетов в секунду
cl_cmdrate 66 // вы посылаете серверу 66 пакетов в секунду
cl_interp_ratio 1
rate 30000
cl_interp 0.0152

По сути очеь даже хороший конфиг, но вот от лоссов и чоков он не защищает, потому что лерпа минимальна, а не удвоена (1/66 = 0.152). Лерпа всегда оранжевая как раз поэтому(предупреждает о возможных лагах), а когда происходит потеря пакета, она жёлтая.
Ну вот, то что я могу посоветовать чтобы избавиться от лоссов и чоков.

cl_updaterate 66
cl_cmdrate 66
cl_interp_ratio 1
rate 30000
cl_interp 0.0304

Спасает от loss+choke = 10. Ну примерно по теории вероятности.

Мягко говоря немного по-сложнее. Теряются пакеты? Значит уменьшим их количество, на случай если это происходит из-за слабости сервера-машины; и уменьшим общий размер отправляемого и принимаемого уга на случай, если не хватает канала.

cl_updaterate 50 //минимальное значение по конфигу etf2l.cfg
cl_cmdrate 50 //так же
cl_interp_ratio 1
rate 26000
cl_interp 0.02 // 1/50=0.02

Спасает от loss+choke=15

(5) Гей-про конфиг (gay-pro)
Вам что-то не нравится в названии?

Вот как он выглядел раньше:

Но сейчас etf2l.cfg ограничивает ваше «лагание на сервере». Минимальный cmdrate = 50, минимальный rate = 20000. От таких рэйтов нет никакого смысла, поэтому оставляем плавность и стрельбу через стены.

cl_updaterate 66
cl_interp_ratio 1
cl_interp 0.1

Незабывайте говорить спасибо кому помогла эта информация=)

Не в сети
Старшина
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 06:25 Суббота, 20 Март 2010
Сообщения: 174
Steam_id: STEAM_0:1:9833809
Откуда: Томск

cl_cmdrate 66
cl_updaterate 66
rate 30000
cl_interp 0.015152
cl_inerp_ratio 1

самые хорошие рейты

Не в сети
Старшина
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 06:25 Суббота, 20 Март 2010
Сообщения: 174
Steam_id: STEAM_0:1:9833809
Откуда: Томск

Не в сети
Адмирал
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 12:56 Понедельник, 22 Сентябрь 2008
Сообщения: 1310
Steam_id: STEAM_0:0:34594781

Не в сети
Лейтенант
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 05:30 Четверг, 21 Январь 2010
Сообщения: 297
Steam_id: STEAM_0:0:66688666
Откуда: Белый Яр

Не в сети
Контр-адмирал
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 11:54 Пятница, 20 Ноябрь 2009
Сообщения: 943
Steam_id: STEAM_0:0:66688666
Откуда: Северск

Не в сети
Майор
Как сделать лерп в ксс

Зарегистрирован: 19:45 Понедельник, 03 Январь 2011
Сообщения: 370
Steam_id: STEAM_0:130995.
Откуда: Стрежевой

Не в сети
Адмирал
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 12:56 Понедельник, 22 Сентябрь 2008
Сообщения: 1310
Steam_id: STEAM_0:0:34594781

Не в сети
Лейтенант
Как сделать лерп в ксс
Как сделать лерп в ксс

Зарегистрирован: 05:30 Четверг, 21 Январь 2010
Сообщения: 297
Steam_id: STEAM_0:0:66688666
Откуда: Белый Яр

Саша BachMann I*

насчет ланов ты не прав смотрел, посмотри видео с MAXLAN там у всех игроков рейты 66 стоят, хотя может ты и прав в чем то загляну завтра в клуб посмотрю как разница ощущается

Как сделать лерп в ксс
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.Страница 1 из 1[ 14 сообщений ]

Часовой пояс: UTC+03:00

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей

Источник

Как сделать лерп в ксс

Как сделать лерп в ксс

Как сделать лерп в ксс

у всех после обновления в нижнем правом углу появилась переменная lerp=xxx.
вопростов много по этому поводу, поэтому полазил по инету, нашел инфу которая мне многое прояснила,
и внаглую скопипастил сюда.

По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет «придумано» на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция.

После теории перейдем к практике. С самого начала кажется, что в идеале lerp должен быть равен 0, ведь при таком значении lerp нет интерполяции и клиент видит то же, что видит сервер. Вы НЕ можете себе позволить lerp=0 по двум причинам.

1) Ваш интернет канал оставляет желать лучшего.
Предположим, что вы счастливый обладатель модема или в вашем городе широкополосный интернет пока по карману только избранным или ваш сосед по общежитию по вечерам заливает на торрент пачку свежих немецких фильмов. Это значит, что вы можете себе позволить исключительно скромные сетевые настройки. Скорее всего те, что стоят по умолчанию, а быть может ваши дела еще хуже. При cl_updaterate 20, даже если все пакеты благополучно приходят от сервера к клиенту, вы видите 20 кадров в секунду (не имеет значения, какой у вас компьютер). Человеческий глаз воспринимает эту картинку как дерганую. Если же, не дай бог, потери (choke) есть, то играть вы просто не сможете, так как будете видеть слайдшоу.

2) Настройки серверов непозволяют клиентской части выставлять необходимые значения некоторых переменных.
Главная проблема тут безусловно cl_interp_ratio, на данный момент ни один европейский серверный конфиг не позволяет играть с этой переменной равной нулю. На данный момент я не знаю ни одного паблика с такими настройками. Только несколько КВ-серверов позволяют отключать интерполяцию. Сейчас добавление sv_client_min_interp_rat io 0 (эта команда отвечает за минимальное значение cl_inerp_ratio, которое может иметь клиент находясь на этом сервере) в евроконфиге скорее всего вопрос времени, и я пологаю, ждать осталось не долго. Но факт остается фактом: значение этой серверной переменной по умолчанию равно 1, а это значит, что клиент не может сделать lerp меньше, чем 10 мс.

1) Напишите в консоли cl_updaterate и запомните значение этой переменной
2) Напишите в консоли cl_interp_ratio 1
3) Разделите 1 на значение cl_updaterate
4) Напишите в консоли cl_interp и присвойте ему то что получили в пункте 3

Например:
Я играю с cl_updaterate 66, это значит что в 3 пункте я получу 0.0152, следовательно мне нужно написать cl_interp 0.0152. Это даст мне lerp=15. Что уже довольно неплохо. Так как интерполяция таких временных промежутков не слишком сильно добавляет неточности вашим действиям.
Если вы пишите значение cl_interp меньшее, чем cl_interp_ratio/cl_updaterate, то на net_graph lerp будет отображаться оранжевым цветом. Если же lerp окрашен в желтый, то значит значение lerp больше промежутка времени между отсылаемыми пакетами на этом сервере. В обоих случаях lerp (а значит cl_interp) нужно увеличивать пока тот не станет белым. Если вы будете пытаться играть с НЕ БЕЛЫМ lerp, то вы обрекаете часть своих выстрелов застревать в промежутке клиент-сервер.

Добивайтесь минимального значения lerp, оставляя его белым на каждом сервере, на котором играете. Это позволит вам снизить к минимуму все проблемы, связанные с вашим соединением с интернетом.

Источник

Как сделать лерп в ксс

Как сделать лерп в ксс

Небольшой ликбез

Настройки клиентской части по умолчанию: cl_updaterate 20; cl_interp_ratio 2; cl_interp 0.1.

Как это работает

По сути, значение lerp определяет пропорцию между пакетами, пришедшими от сервера, и пакетами, сгенерированными на клиенте. Чем меньше значение lerp, тем меньше пакетов будет «придумано» на клиентской стороне, тем точнее то, что вы видите, будет соответствовать тому, что происходит на сервере. Чем больше значение lerp, тем большую долю в вашей картинке будет играть интерполяция.

После теории перейдем к практике. С самого начала кажется, что в идеале lerp должен быть равен 0, ведь при таком значении lerp нет интерполяции и клиент видит то же, что видит сервер. Вы НЕ можете себе позволить lerp = 0 по двум причинам.

1) Ваш интернет канал оставляет желать лучшего.
Предположим, что вы счастливый обладатель модема или в вашем городе широкополосный интернет пока по карману только избранным, или ваш сосед по общежитию по вечерам заливает на торрент пачку свежих немецких фильмов. Это значит, что вы можете себе позволить исключительно скромные сетевые настройки. Скорее всего те, что стоят по умолчанию, а быть может ваши дела ещё хуже. При cl_updaterate 20, даже если все пакеты благополучно приходят от сервера к клиенту, вы видите 20 кадров в секунду (не имеет значения, какой у вас компьютер). Человеческий глаз воспринимает эту картинку как дёрганную. Если же, не дай бог, потери (choke) есть, то играть вы просто не сможете, так как будете видеть слайдшоу.

2) Настройки серверов не позволяют клиентской части выставлять необходимые значения некоторых переменных.
Главная проблема тут безусловно cl_interp_ratio, на данный момент ни один европейский серверный конфиг не позволяет играть с этой переменной равной нулю. Сейчас добавление sv_client_min_interp_ratio 0 (эта команда отвечает за минимальное значение cl_inerp_ratio, которое может иметь клиент находясь на этом сервере) в евроконфиге скорее всего вопрос времени, и я пологаю, ждать осталось не долго. Но факт остается фактом: значение этой серверной переменной по умолчанию равно 1, а это значит, что клиент не может сделать lerp меньше, чем 10 мс.

1) Напишите в консоли cl_updaterate и запомните значение этой переменной
2) Напишите в консоли cl_interp_ratio 1
3) Разделите 1 на значение cl_updaterate
4) Напишите в консоли cl_interp и присвойте ему то что получили в пункте 3

Например:
Я играю с cl_updaterate 66, это значит что в 3 пункте я получу 0.0152, следовательно мне нужно написать cl_interp 0.0152. Это даст мне lerp = 15. Что уже довольно неплохо. Так как интерполяция таких временных промежутков не слишком сильно добавляет неточности вашим действиям.
Если вы пишите значение cl_interp меньшее, чем cl_interp_ratio/cl_updaterate, то на net_graph lerp будет отображаться оранжевым цветом. Если же lerp окрашен в желтый, то значит значение lerp больше промежутка времени между отсылаемыми пакетами на этом сервере. В обоих случаях lerp (а значит cl_interp) нужно увеличивать пока тот не станет белым. Если вы будете пытаться играть с НЕ БЕЛЫМ lerp, то вы обрекаете часть своих выстрелов застревать в промежутке клиент-сервер.

Вывод

Добивайтесь минимального значения lerp, оставляя его белым на каждом сервере, на котором играете. Это позволит вам снизить к минимуму все проблемы, связанные с вашим соединением с интернетом.

Ещё совет

Чтобы не париться с математикой, можно забиндить клавиши так:

bind «INS» «lerpa+»
bind «DEL» «lerpa-«
bind «HOME» «lerpb+»
bind «END» «lerpb-«
bind «PGUP» «lerpc+»
bind «PGDN» «lerpc-«

Источник

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

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