Статистика
» Зарег. на сайте Всего: 957 Новых за месяц: 0 Новых за неделю: 0 Новых вчера: 0 Новых сегодня: 0 » Из них Администраторов: 2 Модераторов: 1 Проверенных: 0 Файловиков: 3 Дизайнеров: 1 Обычных юзеров: 949 Из нихПарней: 897 Девушек: 59
Онлайн всего: 1 Гостей: 1 Пользователей: 0
Пользователи, посетившие сайт за текущий день :
|
ЛЕРП
Основные net-настройки:
cl_updaterate - число запросов обновлений игрового мира с сервера в секунду. cl_cmdrate - число обновлений информации о себе на сервере в секунду rate - максимальное число отправляемых/принимаемых байт в секунду cl_interp_ratio - число промежутков между интерполированием мира. cl_interp - временной промежуток, через который происходит интерполяция.
1. Интерполяция - ШОЦЕТАКЕ?!
В
идеальном сферическом мире в вакууме обновление информации о игровом
мире с сервера идет бесконечно с задержкой в 1мс. В суровой реальности
такого нет и число ваших запросов на обновление мира ограничено (66
максиум, выше - большая редкость и офф. не поддерживается). Между этими
обновлениями мир стоит на месте. Чтобы этого не происходило - была
придумана интерполяция. Она позволяет _предположить_ передвижение
противника до того как мир обновится. Наша задача сводится к тому, чтобы
интерполяция происходила одновреммено с обновлением мира - тогда
информация о противнике будет самой точной.
2. Рейты - чо и как?
Число,
которое стоит в параметрах цмд- и апдейтрейт указывает на число
отправленных/принятых пакетов в секунду. Параметр rate позволяет
ограничить общий объем передаваемой инфы в этих пакетах. Я видел много
"рашн про" с rate 9999. Сжигать их на костре!
3. Как это относится друг к другу?
Мы
имеем обновление мира 66 раз в секунду, исходя из того что
cl_updaterate 66, нам нужно сделать так, чтобы интерполяция проходила в
промежуток между пакетами. Далее мы решаем - через как часто будет
происходить интерполяция - между одним или между двумя пакетами. Это
задается при помощи cl_interp_ratio: значение 1 - между двумя пакетами, один промежуток. |_| значение 2 - между тремя, 2 промежутка. |_|_| Теперь
нам нужно узнать сколько мс длится промежуток. Для этого секунду делим
на число обновлений: 1/66 = 0.0(15), округляем до 0.0152. Теперь если
один промежуток (cl_interp_ratio 1), то ставим cl_interp 0.0152, если
промежутков 2 (cl_interp_ratio 2) , то ставим cl_interp 0.0152*2=0,0304 Выводим формулу:
1/cl_updaterate = cl_interp/cl_interp_ratio, отсюда получаем:
cl_interp = (1/cl_updaterate)*cl_interp_ratio
Получается, что интерполяция зависит от рейтов. Зная как высчитать интерполяцию составляем конфиг:
cl_updaterate 66; cl_cmdrate 66; (цмд должен соответствовать апдрейту, для синхронности) rate 40000; (можно 30000, меньше - хуже) cl_interp_ratio 1 (лучше 1 промежуток - точнее инфа о противнике) cl_interp 0.0152 (находим по формуле)
Это практически идеальный конфиг. +10 к пингу -100 к лагучести.
Можно делать вариации для слабого инета:
cl_updaterate 60; cl_cmdrate 60; rate 30000; cl_interp_ratio 2 cl_interp 0.0333
Теперь немного о геях.
cl_updaterate 66 cl_interp 0.100
Самый распространенный "gay-pro" конфиг. Из 66 пакетов игнорируется 46. Противник уходит за стену - а вы его убиваете.
rate 9999 - а вот фиг вам я скажу как и где я двигаюсь! Сам не попаду и вам не дам!
cl_cmdrate 20 - А зачем противнику знать обо мне? (а на деле вы больше бегаете по прямой, стрейфы работают хуже)
Ну и вспомним эпик:
http://www.tf2world....9&postcount=200
Эпичные рекомендации лучшего снайпера "Росии". Если вы поняли суть моего гайда, то вам будет смешно от его рекомендаций.
Принимаются рекомендации/недочеты и вообще. Надеюсь вам поможет.
UPD: Лоссы и чоки - ТЫ С КАКОВА СЕРВАКА ПРИШЕЛ, А?!
Лоссы и чоки - это потери пакетов при отправке их от вас на сервер.
Лосс:
неконтролируемая потеря пакетов на пути к серверу. Случается из-за
беспроводного соединения/плохого качества вашего соединения (в
большинстве случаев). Также это бывает, если вы сидите за большим
количеством проксей - чем больше сетей проходит пакет по пути от вас к
серваку - тем больше вероятность лоссов. (путь пакета от вас к серверу
можно посмотреть через пуск - выполнить - cmd - tracert "ip" без
кавычек)
Чоки: бывают двух видов: - первый тип зависит от вас -
вы посылаете слишком много пакетов на сервер. Например у вас стоит
апдейт рейт 100, а серверный тикрейт 66 (тикрейт сервера - максимальное
число отдаваемых/принимаемых пакетов на одного юзера). Тогда чоки будут
равны 34 и это значит, что 34% инфы о вас потеряно. - второй тип чоков - зависит от сервера - сервер не справляется с потоком данных/лаг сети сервера/лаг CPU.
Избавиться от чоков можно по принципу: net_graph 3 в консоли. Смотрим число чоков и вычитаем увиденное значение из cl_updaterate и cl_cmdrate.
Пример: choke 20 при cl_updaterate и cl_cmdrate 66. Вычитаем - пишем в консоли cl_cmdrate 46; cl_updaterate 46.
UPD:
Есть скрипт я пробовал он у меня работает!
вот он сам:
alias lerpa+ "incrementvar cl_interp 0.01 0.09 +0.0001"// cl_interp +0.0001 alias lerpa- "incrementvar cl_interp 0.01 0.09 -0.0001"// cl_interp -0.0001 alias lerpb+ "incrementvar cl_interp 0.01 0.09 +0.001" // cl_interp +0.001 alias lerpb- "incrementvar cl_interp 0.01 0.09 -0.001"// cl_interp -0.001 alias lerpc+ "incrementvar cl_interp 0.01 0.09 +0.01"// cl_interp +0.01 alias lerpc- "incrementvar cl_interp 0.01 0.09 -0.01"// cl_interp +0.01
bind "INS" "lerpa+" bind "DEL" "lerpa-" bind "HOME" "lerpb+" bind "END" "lerpb-" bind "PGUP" "lerpc+" bind "PGDN" "lerpc-"
Как видете там есть бинды вот ими мы и пытаемся как-то накрутить свой лерп,но говорю еще раз у меня этот скрипт не пошёл!
Второй способ . По моему мнению это лучший способ хоть как то повлиять на значение лерпа!
Для этого мы будем пользоваться камандами:
cl_interp_ratio (Если не 0, то 2) cl_interp (очень неплохо 0.003)
Оранжевый
lerp - незначительное отклонение от идеального значения - ситуация
когда получается значение лерпа в периоде/имеет слишком большое
количество цифр и округленно. Желтый lerp - сильное отклонение. Красный lerp - тотальный ппц. Крайне редок. Белый lerp - идеален. Но странно то, что лерп 0.1 засчитывается как идеальный тогда, когда он явно не подходит. Ещё кое что, если lerp желтый - идут большие потери пакетов, а значит сервер- УГ. Если lerp оранжевый, то потерь нет, но если будет лаг или лосс, то интерполировать будет нечего.
Всё спасибо за внимание!
|
Категория: Мои статьи | Добавил: БуГоР (23.12.2011)
|
Просмотров: 7047
| Рейтинг: 5.0/3 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
Информация о сайте
Comments: 114 Blog: 10 News: 39 Downloads: 1753 Publisher: 83 Guestbook: 9
Пожертвования
Наши реквизиты:
41001963229726
Контактная информация:
vampir1056
|