что такое lag compensation
cl_interp — интерполяция в CS:GO
cl_interp уже не используется в кс го, и сейчас настройку интерполяции можно рассмотреть с помощью других команд. О них подробнее и поговорим…
Содержание
Интерполяция в CS:GO
Интерполяция может колоссально повлиять на ваш геймплей. Неправильные настройки могут делать вашу игру ужасной. Если у вас были моменты когда вы стреляете, но ничего не засчитывает, возможно это именно траблы с неверными настройками интерполяции. Вот вам яркий пример:
Все это происходит из-за пинга. Вы можете видеть противника на своем мониторе, но на самом деле он находится в другой позиции. Простыми словами мы видим прошлое, но в момент выстрела сервер говорит что там никого нет.
Для того чтобы избежать подобных разногласий между вами и сервером, разработчики придумали команду cl_lagcompensation. Данная команда компенсирует ту самую разницу в пинге. Если вы включите данную команду, наш компьютер будет отправлять доказательства на сервер, а именно что противник был у нас на прицеле
Сама же команда вводится в классической консоли с помощью ввода
cl_lagcompensation 1
Бывало ли у вас когда вы зашли за стену, но вас убивают?
Если ваш ответ — «да», то это от части действия этой команды. Например, вы спрятались за стенку, но у игрока у которого большой пинг, вы все еще на мониторе. Он убивает вас, ведь его компьютер отправил на сервер подтверждение. Также, на это влияет и ваш пинг, ведь информацию, что вы все таки спрятались за стенку, будет доставляться долго. Если все два этих фактора накладываются, случается нечто подобное. Но это лишь излишки, ведь реальная польза от компенсации гораздо больше.
Всегда перед стартом игры прописывайте в консоли:
Но давайте сперва разберемся — что же такое интерполяция?
cl_interpolate 0
cl_interpolate 1
Теперь посмотрим на движение модельки со включенной интерполяцией
Как можно увидеть модель двигается очень плавно, потому что, теперь работает рендеринг. И даже в случае если из-за интернета мы потеряем тик, моделька по-прежнему будет плавно двигаться. Чтобы погрузится в суть этого, нужно посмотреть на скрин ниже:
Вертикальные палочки визуализирую пакеты которые мы получаем с сервера (тики). Как можно понять, то что мы видим на своих экранах во время игры, на самом деле отстает на два тика, то есть мы видим прошлое. Это происходит, потому что интерполяция будет ждать, пока еще не придут два тика (пакета данных), чтобы на их основе давать плавные движения окружающих объектов в игре
Внимательно посмотрев на фото, можно увидеть что между промежутками тика у нас есть задержка. Мы расчесывали длину тика, разделив одну секунду на количество самих тиков. В обычном матчмейкинге их 64, по этому формула выглядит так: 1000/64=15.625 мс – это точная задержка когда мы играем в ММ
cl_interp_ratio
Но как мы уже говорили, интерполяция добавляет искусственную задержку — это прошлое. По этому она подождет еще два тика. И если мы удвоим все данные, реальная задержка будет выглядеть так: 15.625*2=31.25 мс.
Эта задержка добавляется что бы сделать игру плавной. Но ее можно регулировать в зависимости от нужд. Для этого в кс го есть команда cl_interp_ratio. К CS:GO есть лимит и мы можем выставить только два значения:
cl_interp
В прошлом использовать команда cl_interp, в ней можно было ввести задержку интерполяции в секундах.
ВАЖНО:
Но в поздних версиях Source, interp контролируется командой cl_interp_ratio. Дело в том что разработчики просто забыли удалить команду из игры и теперь она гуляет по различным гайдам в интернете и путает людей. Проверить данный факт и убедится своими глазами довольно просто:
Для теста cl_interp нужно вводить меню, когда вы находитесь на карте ничего не поменяется. Во время теста легко убедится, что ничего не меняется, чего и следовало ожидать.
Если после всего если вы думаете что нужно использовать cl_interp_ratio 1, думая что задержки лучше убрать, вы будете не правы.
И так:
В другом случае пользуемся такой шпаргалкой:
ПОЛЕЗНАЯ СТАТЬЯ: Пропал интернет? Горит « Подключение к сети кс го «
Ниже по ссылке есть таблица с собранной статистикой, где отчетливо видно как влияют те или иные настройки на игру:
Заметно что большинство кто играет с сl_interp_ratio 1 имеют значительную просадку в статистике по убийствам в эру интернет турниров. Может ли это означать, что настройки так сильно влияют на игрока остается пищей для размышлений, но подтверждений полно. Вот полная таблица выглядит таким образом.
Пользуйтесь проверенной информацией, ведь возможно она вам
поможет выйти на новый уровень игры.
Почта для связи
gocsgo.net@gmail.com
lag compensation
1 lag compensation
коррекция на отставание по фазе
—
[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]
Тематики
2 lag compensation
3 lag compensation
4 lag compensation
5 lag compensation
6 lag compensation
7 lag compensation
8 lag compensation
9 lag compensation
10 lag compensation
11 lag compensation
12 lag compensation
13 lag compensation
См. также в других словарях:
Frequency compensation — In electrical engineering, frequency compensation is a technique used in amplifiers, and especially in amplifiers employing negative feedback. It usually has two primary goals: To avoid the unintentional creation of positive feedback, which will… … Wikipedia
Operational amplifier applications — This article illustrates some typical applications of operational amplifiers. A simplified schematic notation is used, and the reader is reminded that many details such as device selection and power supply connections are not shown. Contents 1… … Wikipedia
Tube sound — (or valve sound) is the characteristic sound associated with a vacuum tube based audio amplifiers. Some audiophiles prefer the sound that is produced by the distortion characteristics of tube based amplifiers. The audible significance of tube… … Wikipedia
Online-Game — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Online Spiele (auch bekannt als Internet Spiele) sind… … Deutsch Wikipedia
Onlinegame — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Online Spiele (auch bekannt als Internet Spiele) sind… … Deutsch Wikipedia
Onlinespiel — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Online Spiele (auch bekannt als Internet Spiele) sind… … Deutsch Wikipedia
Audio amplifier — An audio amplifier is an electronic amplifier that amplifies low power audio signals (signals composed primarily of frequencies between 20 hertz to 20,000 hertz, the human range of hearing) to a level suitable for driving loudspeakers and is the… … Wikipedia
Electronic engineering — is a discipline dealing with the behavior and effects of electrons (as in electron tubes and transistors) and with electronic devices, systems, or equipment.The term now also covers a large part of electrical engineering degree courses as studied … Wikipedia
Education and training of electrical and electronics engineers — Both electrical and electronics engineers typically possess an academic degree with a major in electrical/ electronics engineering. The length of study for such a degree is usually three or four years and the completed degree may be designated as … Wikipedia
Deflection (military) — Deflection is a technique used for effectively firing a ranged weapon at a moving target, that describes leading the target ; that is, shooting ahead of a moving target so that the target and projectile will collide. This technique is only… … Wikipedia
коррекция на отставание по фазе — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN lag compensation … Справочник технического переводчика
Как работает компенсация лагов в Left 4 Dead (Source engine)
Введение
Итак, игра у нас типичная и клиент-серверная, где сервер занимается следующими вещами:
• симуляция мира вокруг
• отработка движка игры
• обработка командочек пользователя
• игровой мир рассчитывается каждые N ms (эта штука называется внутренний tickrate сервера, для l4d1 и l4d2 = 30)
Клиент посылает серверу команды по UDP
• клиент получает эти данные, и на основе них генерит вам картину мира, воспроизводит звуки, события итп
• UDP это пакеты по 10-200байт, без установления соединения (в отличие от TCP), оверхед примерно 20 байт служебной инфы + данные
• посылается примерно 20-30 пакетов в секунду, это и есть серверный cmd_rate — он может быть от 20 до 30.
• клиент может пожаловаться серверу что он имеет плохой канал итп.. и запросить «худшие» значения по качеству вот этими параметрами
sv_minrate \ sv_maxrate — мин и макс значение в байтах сколько он готов принимать
sv_minupdaterate\sv_maxupdaterate — то же самое в командах
cl_updaterate — а это типа дефолтное «рабочее» значение
• полные «обновления» посылаются толлько при загрузке игры, затем шлется только дельта
итак, от чего зависит качество вашей игры
• загрузка цп клиента
• загрузка цп сервера
• среднее время на прием и предачу ответа от сервера (ping или round trip time)
чтобы игра была интересной важно чтобы доли секунды реально что-то значили.
итак чтобы бороться со всей этой фигней, в движке source встроено аж 3 механизма
Entity interpolation
Это предсказание поведения физики\объектов карты на клиенте, работает следующим образом:
• берется n последних пакетов (cl_extrapolate_amount), берется ваш текущий FPS ( cl_showfps 1 ) и рассчитывается следующий кадр и местоположение объектов для которых физика и считается (полет ящика, бросок канистры, танк пнул машинку)
• если пакеты доходят с потерями — то буфер старых пакетов пуст и делать интерполяцию особо не по чему — тут вступает в игру экстраполяция ( cl_extrapolate 1 ) — движок на клиенте пытается округлить вперед (уже довольно грубо) что же творится на карте.
• эффект экстраполяции ограничен по времени — 0.25s после последнего пакета с сервера — чтобы не внести сильные искажения
• итак вот мы пришли к cl_interp
• cl_interp_ratio = сколько последних пакетов использовать для «округления» вашей картины мира (чем больше = тем дальше от реальности на сервере, но тем плавнее)
• cl_updaterate = кол-во команд с сервера, в общем то это константа равная 20..30
Input prediction
допустим у нас пинг 150ms и мы нажали w — сервер узнает об этом только чз 150ms; еще через некоторое время он рассчитает куда же мы переместились; потом он разошлет это всем другим клиентам; и нам придет назад пакет с информацией; и тут мы уже «реально» переместились вперед на метр… как-то так
чтобы не было таких дерганий — движок на клиенте САМ двигает нас вперед не дожидаясь подтверждения от сервера (замечу — реальность на сервере — САМАЯ правильная, т.е. то что на клиенте — неважно)
поэтому так бывает — мы куда-то забежали — клиент это показал — сервер подумал и исправил неправильное округление клиента — вернув назад нас же резким рывком :\
• вся эта котовасия включается по дефолту ( cl_predict 1 )
• само сглаживание происходит на время cl_smoothtime
Lag compensation
мы видим врага бегущего мимо и стреляем ему в голову
• X ms пакет с инф о выстреле пакуется
• Y ms он едет на сервер
• Zms сервер его переваривает, и через время Z+Y+X ваш враг уже убежал..
что же делает движок?
• он помнит все события на сервере за последнюю секунду… при этом он отматывает НАЗАД. время и проверяет где тогда был ваш враг — если он был на линии выстрела — засчитывается хит.. бабац. попали.. и во время очередного тика на сервере всем клиентам рассылается информация что вы попали..
именно за счет lag compensation появляются вот такие перлы
(игроки часто думают что это баг игры.. лол)
на пальцах — эта известная картинка показывает модельку (то что в текстурах) которую видит клиент и реальные серверные хит-боксы (белым) которые отстают — и показывают то что видит сервер.
• всё это side-effect от lag compensation.
итого имеем lag compensation + entity interpolation + client prediction,
именно поэтому так важен низкий пинг и отсутствие потерь — иначе косячные атаки, длинные руки, тормозящие насмерть зомби и прочая ерунда.
основной фокус этого текста — объяснить как оно работать внутри,
Lag compensation
Lag compensation is the notion of the server using a player’s latency to rewind time when processing a usercmd, in order to see what the player saw when the command was sent. In combination with prediction, lag compensation can help to combat network latency to the point of almost eliminating it from the perspective of an attacker. For a more detailed explanation see the Source Multiplayer Networking article.
By default only players are rewound, and one second of location/animation history is kept.
Contents
Configuration
Developer server builds (those compiled with ALLOW_DEVELOPMENT_CVARS ) have some extra commands:
sv_unlag Enable/disable lag compensation entirely. sv_maxunlag Number of seconds to store player positions for. Default (and maximum) is 1.
Invocation
Simply wrap whatever code you want lag compensated within two calls to the lagcompensation object:
Lag Compensation Type
Starting with Alien Swarm, you can optimise lag compensation with these settings:
LAG_COMPENSATE_BOUNDS Rewind entities’ locations only, skipping animations. LAG_COMPENSATE_HITBOXES Rewind both locations and hitboxes. This is the standard setting. LAG_COMPENSATE_HITBOXES_ALONG_RAY Rewind hitboxes if an entity is hit by a ray defined by the «weaponPos» StartLagCompensation() overload. Otherwise rewind bounds only.
These setting chosen applies to all entities affected by the rewind.
Implementation
To do: Supporting lag compensation on new entities.
lag compensation
Смотреть что такое «lag compensation» в других словарях:
Frequency compensation — In electrical engineering, frequency compensation is a technique used in amplifiers, and especially in amplifiers employing negative feedback. It usually has two primary goals: To avoid the unintentional creation of positive feedback, which will… … Wikipedia
Operational amplifier applications — This article illustrates some typical applications of operational amplifiers. A simplified schematic notation is used, and the reader is reminded that many details such as device selection and power supply connections are not shown. Contents 1… … Wikipedia
Tube sound — (or valve sound) is the characteristic sound associated with a vacuum tube based audio amplifiers. Some audiophiles prefer the sound that is produced by the distortion characteristics of tube based amplifiers. The audible significance of tube… … Wikipedia
Online-Game — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Online Spiele (auch bekannt als Internet Spiele) sind… … Deutsch Wikipedia
Onlinegame — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Online Spiele (auch bekannt als Internet Spiele) sind… … Deutsch Wikipedia
Onlinespiel — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Online Spiele (auch bekannt als Internet Spiele) sind… … Deutsch Wikipedia
Audio amplifier — An audio amplifier is an electronic amplifier that amplifies low power audio signals (signals composed primarily of frequencies between 20 hertz to 20,000 hertz, the human range of hearing) to a level suitable for driving loudspeakers and is the… … Wikipedia
Electronic engineering — is a discipline dealing with the behavior and effects of electrons (as in electron tubes and transistors) and with electronic devices, systems, or equipment.The term now also covers a large part of electrical engineering degree courses as studied … Wikipedia
Education and training of electrical and electronics engineers — Both electrical and electronics engineers typically possess an academic degree with a major in electrical/ electronics engineering. The length of study for such a degree is usually three or four years and the completed degree may be designated as … Wikipedia
Deflection (military) — Deflection is a technique used for effectively firing a ranged weapon at a moving target, that describes leading the target ; that is, shooting ahead of a moving target so that the target and projectile will collide. This technique is only… … Wikipedia
коррекция на отставание по фазе — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN lag compensation … Справочник технического переводчика