Для расчета коэффициента интерполяции (ex_interp) нам потребуется знание о характеристиках канала связи от Вашего компьютера до сервера cs.groza.ru. С этого и начнем.
Немного теории. Элементы, влияющие на пинг:
1. Производительность связки процессор-оперативка-
сетевая_карта(в случае отсутствия DMA-контроллера нагрузка по
обсчету сетевых событий ляжет на процессор).
2. Производительность канала связи. Произведите настройку
сетевой карты. Должна стоять частота соединения 100 Мбит/сек
полный дуплекс, максимальный размер буффера пакетов. Хотя
данная настройка влияет только на производительность канала
от вашей сетевой карты до свича (10-50 метров из 0,5-5 км
кабеля в общем при максимальной скорости=0,8*скорость_света,
от 0,2 до 2 милисекуд).
3. Произодительность маршрутизатора 2-го уровня.
4. Производительность маршрутизатора 3-го уровня. Он один на
целый сегмент.
5. Все маршруты сводятся к нескольким крупным. Один из них
M5-Gigabit.isnet.ru [217.24.176.214]. Их производительность
тоже не абсолютна.
6. Производительность сетевой карты сервера cs.groza.ru
[83.167.24.197].
Матиматизируя все вычисления получается:
1. 1/240000 секунды за каждый метр кабеля от вашей сетевой
карты до сервера cs.groza.ru [83.167.24.197].
2. Производительность сетевого оборудования. Сетевые карты
всего активного сетевого оборудования + свичи (упрощенно). Не
углубляясь в рассчеты предлагаю для расчета использовать
формулу 1узел=100 метрам кабеля (1/2400 секунды). Узлов
получается порядка 10-15 (с учетом всех свичей).
Практика. Производим оценку скорости канала связи.
Проверяем все с помощью утилиты ping, входящий в стандартную
комплектацию винды (дополнительная информация по пингу
http://ru.wikipedia.org/wiki/Ping):
1. Запускаем окно Выполнить... (Run...) сочетанием клавиш
WinKey + R.
2. Запускаем командную строку (вводим cmd и нажимаем Enter).
3. Вводим команду ping -t cs.groza.ru.
4. Ждем секунд 30
5. Нажимаем сочетание клавишь Ctrl+C для выхода из цикла
пинга.
6. Смотрим на показатель средней.
Получаем следующий результат:
Documents and SettingsRoot>ping -t cs.groza.ru
Обмен пакетами с cs.groza.ru [83.167.24.197] по 32 байт:
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=4мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=1мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=1мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=15мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=1мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=1мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=3мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=1мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=1мс TTL=126
Ответ от 83.167.24.197: число байт=32 время=2мс TTL=126
Статистика Ping для 83.167.24.197:
Пакетов: отправлено = 70, получено = 70, потеряно = 0 (0%потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 1мсек, Максимальное = 15 мсек, Среднее = 2мсек
Control-C
^C
Documents and SettingsRoot>
Как видно из анализа, предоставленного нам программой средний
пинг составляет 2 милисекунды. Но присутствуют скачки, что сведельствует
о не высоком качестве активного сетевого оборудования. Радует
нуливой процент потерь, что сведетельствует об отсутствии
коллизий и переполнения буфферов приема сетевых карт всего
маршрута. Идентичный показатель TTL (time-to-life)
сведетельствует о безальтернативности маршрута, что тоже хорошо.
Теперь непосредственно об интерполяции.
Интерполяция — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений (Wikipedia.org)
Если быть точным, то в контерстрайке используется квадролинейная интерполяция: координаты X,Y,Z а также вектор взгяда игрока (точки куда он мотрит).
С целью компенсации сетевых задержек в рассчете событий (как мы уже выяснили, все события, с точки зрения связки клиент-сервер-клиент, происходят не одновременно), используется интерполяция места нахождения противников. Компьютер получает дискретную информацию о координатах нахождения противников. Используя коэффициент интерполяции он рассчитывает и показывает те координаты где ДОЛЖЕН БУДЕТ находиться игрок.
Становится понятно, что для интернета и LAN'a интерполяция должна быть разной.
1. Для LAN'a: лучшей настройкой будет ex_interp 0. В таком случае он автоматически примет значение 1/cl_updaterate (т.е. почти всегда 0.01, при минимально возможной интерполяции 0.009).В случае, если связь в клубе оставляет желать лучшего, стоит поэкспериментировать со значением 0.015~0.02.
2. Для интернета формула сложнее, т.к. нам придется учитывать лаги маршрутизаторов более высоких уровней и физическую длину канала. ex_interp = 1/ 0.5ping секунд. Половинное значение пинга берется потому, что его начальное значение равно туда-обратно от нас до сервера, в то время как нас интересует только время, с которым пакеты приходят к нам.
В моем случае пинг составил в среднем 2 милисекунды, т.е. 0.02 секунды. ex_interp = 1/ 0.5*0.02 = 0.01.
Данный коэффициент интерполяции будет наиболее точно обображать модели игроков на экране. Но замеры пинга производились утром, при низкой нагрузке каналов.
В моменты загрузки каналов, лучшим интерпом будет 0.03~0.05, но не в коем случае не 0.1
Эффекты интерполяции.
1. "я хитрый, поставлю интерп 0,5 и буду видеть всех, кто бежит раньше, чем они меня!" Парирую аргументом, если оппонент подошел к углу, постоял меньше секунды, и резко из-за него вышел, вы одновременно увидите, что противник вышел из-за угла, и что вы упали... При этом ваш спрей (стрельба очередью) будет не корректно обсчитан. Именно по этому профессионалы в своих конфигах используют только ex_interp 0.01. "лучше я позже увижу врага, но железно убъю его очередью в 5 пуль..."
2. Чем выше значение интерпа, тем больше вашему процессору приходится производить вычислений, тем дерганнее будет картина, при "хитром" передвижении противника. Если он начнет делать небольшие шаги влево-вправо, что часто делают при передвижении с автоматическими винтовками, вам по нему не попасть...
3. При неоправданно заниженном значении интерпа, у вашего оппонента будет приемущество во времени наведения (он увидит вас рашьне, что особенно фатально, если вы будете стоять неподвижно).
Идеально подобрать интерп - залог успеха.
Не поленитесь, играя по интернету, перед игрой вычислить оптимальное значение интерпа, исходя из пинга до сервера (и не путайте его с показателями, отображаемыми в статусе игроков). Не забудьте прописать рэйты.
не всё конечно за*бись, если у тебя мс = 2-5, а если 60-80, то тогда даже и не 0.1 наверное получиться, раз копипастом научился заниматься, то сам посчитаешь...
вообщето 0.01 и я хз кто с этим спорит, только это интерп для ЛАНА, или при очень хорошем интернете, когда пинг не свыше 20...
1) ex_interp это клиентская настройка. нету команды ex_interp у сервера
2) у вас не будет лагов (то что называют "моделька прыгает" или нечто подобное) только если все на сервере прописали интерп такой же как и у вас
3) принято играть онлайн 0.1 на лане 0.01, по скольку соединение лучше. конечно вы можете играть с 0.01 и онлайн, но врятли все остальные пропишут его же...
№28 ты ошибаешься у сервера как раз таки есть такая команда !!!И сервер автоматически выставляет ex_interp в зависимости что у тебя прописано в конфиге сервера, т.е если поставил 0.1 то у всех кто зайдет на сервер будет интерп 0.1 , соответственно если 0.01 то у клиента 0.01