Сетевые настройки

Продолжение одного из самых известных шутеров от Valve.
Закрыто
Сообщение
Автор
Аватара пользователя
Deimos
VIP
VIP
Сообщения: 569
Зарегистрирован: 13.05.2007
Поблагодарили: 45 раз

#1 Сообщение 09.01.2014, 17:09

Привет. Просьба отписаться тем, кто понял принцип интерполяции этого мать его Source движка.
Потому что я уже задолбался, что меня видят раньше, что можно впритык всадить 30 патронов с калаша или эмки, и попасть всего лишь раз (да-да, и 27 хп снять, будто в пятку попал), а чаще - не попасть совсем. Раньше такое было, когда у твоего соперника пинг был где-то от 80 мс, но после одного из обновлений (уже месяц-полтора) у него может быть пинг 50, 30 или вообще 5, а по нему всё равно не регит, даже когда он стоит, а уж когда двигается - пиши пропало... Подозреваю, что есть какие-то специальные значения сетевых настроек, но понизишь ты cmdrate или rate - и сам же будешь хуже попадать, а эти твари наоборот - попадают прекрасно, а в них не попасть вообще.

Речь о соревновательном режиме (5 на 5).
cl_cmdrate 64
cl_updaterate 64
rate от 128000 до 512000 - абсолютно пофиг
cl_interp 0 - чтобы само поставило минимально возможную
cl_interp_ratio - а вот здесь главный вопрос. При постоянном пинге в около 70 мс (судя по net_graph) у меня то нормально регистрирует при значении 2, а при 1 всё "в молоко", то наоборот.
Я знаю, что interp_ratio надо ставить 2, когда есть loss, но loss нету, зато есть choke процентов до 30 (обычно в самом начале раунда, но может подняться и в середине, и вообще когда угодно).

Часто читал, что на серверах с тикрейтом 64 lerp должен быть близок к текущему пингу.
В CS:S lerp вроде как считался очень просто: cl_interp*1000, а cl_interp=cl_interp_ratio/cl_updaterate
Таким образом, при interp_ratio 1 и updaterate 66 lerp был 1*1000/66=15.2 мс
Но то ли авторы статей по CS:GO ошибались в расчётах, то ли я что-то недопонял, но lerp у них получался вдвое больше, чем по моей формуле, и в его расчёте участвовал тикрейт. В общем, то ли лыжи не едут...
При чём, поставив cl_interp больше, чем он получается по формуле cl_interp_ratio/cl_updaterate, можно наблюдать, как соперник скрылся за углом, ты выстрелил туда, где он только что был, и убил его, т.е. какой-то бред.

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

Аватара пользователя
shtopor-89
Майор
Майор
Сообщения: 657
Зарегистрирован: 27.08.2009
Благодарил (а): 6 раз
Поблагодарили: 158 раз
Контактная информация:

#2 Сообщение 09.01.2014, 17:40

ну вот я вот таким образом настраиваю в клиенте

Настройка 64 рейтов (подходит для официальных серверов валв):

Код: Выделить всё

rate 80000; cl_updaterate 64; cl_cmdrate 64; cl_interp 0; cl_interp_ratio 1; cl_lagcompensation 1
Настройка 102 рейтов (встречаются на серверах редко):

Код: Выделить всё

rate 104000; cl_updaterate 102; cl_cmdrate 102; cl_interp 0; cl_interp_ratio 1; cl_lagcompensation 1
Настройка 128 рейтов (встречаются на настроенных серверах сообщества):

Код: Выделить всё

rate 128000; cl_updaterate 128; cl_cmdrate 128; cl_interp 0; cl_interp_ratio 1; cl_lagcompensation 1
Настройка дефолтных рейтов:

Код: Выделить всё

rate 80000; cl_updaterate 64; cl_cmdrate 64; cl_interp 0.03125; cl_interp_ratio 2; cl_lagcompensation 1
и все нормально...

Аватара пользователя
Deimos
VIP
VIP
Сообщения: 569
Зарегистрирован: 13.05.2007
Поблагодарили: 45 раз

#3 Сообщение 09.01.2014, 18:30

Показалось, что при interp_ratio 1 плохо регит по движущимся объектам, и подозрения, что при выбегании меня видят раньше, чем я кого-нибудь увижу (слишком быстро на меня реагируют), а при interp_ratio 2 - как-то криво регит, но зато аномальная резкость реакции соперников уменьшается.
Где-то видел совет попробовать interp_ratio 1 и interp 0.03 (типа вдвое выше минимального), но так тоже пули не очень попадают...
Про-игроки вроде как даже в инете юзают interp_ratio 1, а у меня пару знакомых имеют пинг 150, настройки не меняли вообще, т.е. у них interp_ratio 2, и говорят, что свой пинг вообще не ощущают, и что всё у них прекрасно. Хотя про-игроки играют на серверах с тикрейтом 128, а знакомые у меня матчмейкинг играют, соответственно тикрейт 64...

Desser
Нович0к
Нович0к
Сообщения: 1
Зарегистрирован: 01.03.2014

#4 Сообщение 01.03.2014, 15:53

Deimos писал(а):Показалось, что при interp_ratio 1 плохо регит по движущимся объектам, и подозрения, что при выбегании меня видят раньше, чем я кого-нибудь увижу (слишком быстро на меня реагируют), а при interp_ratio 2 - как-то криво регит, но зато аномальная резкость реакции соперников уменьшается.
Где-то видел совет попробовать interp_ratio 1 и interp 0.03 (типа вдвое выше минимального), но так тоже пули не очень попадают...
Про-игроки вроде как даже в инете юзают interp_ratio 1, а у меня пару знакомых имеют пинг 150, настройки не меняли вообще, т.е. у них interp_ratio 2, и говорят, что свой пинг вообще не ощущают, и что всё у них прекрасно. Хотя про-игроки играют на серверах с тикрейтом 128, а знакомые у меня матчмейкинг играют, соответственно тикрейт 64...
Привет Deimos, у меня тоже самая проблемма=) есть ли ее решение?

Аватара пользователя
Deimos
VIP
VIP
Сообщения: 569
Зарегистрирован: 13.05.2007
Поблагодарили: 45 раз

#5 Сообщение 05.03.2014, 03:34

Desser
1. Если большой пинг у твоих соперников, решение одно - попадать и минусовать первым, потому что если ты не отминусовал и скрылся даже за непробиваемым препятствием, по тебе может зарегить попадание пингёра, которое он успел сделать ещё тогда, когда видел тебя (из-за своего большого пинга он по идее видит всё позже). На попадание с AWP по таким игрокам можно не рассчитывать - не зарегит, как и часть попаданий из другого оружия, особенно прикольно попасть по не движущемуся игроку раз 4-5, из которых зарегистрирует 1-2, почему так - неизвестно...
2. Если большой пинг у тебя, если есть choke/loss, то решение - cl_interp_ratio 2; cl_interp 0.03125
3. У меня стабильно полный песец на шведских серверах. Для Восточной Европы (или вообще Европы?), как я понял, альтернативы две - либо Люксембург, либо Швеция, ну так на шведских я постоянно на последнем месте по фрагам, а мои соперники демонстрируют чудеса реакции, контроля разброса и уворачивания от моих выстрелов. Между Люксембургом и Швецией около 30 мс разницы в пинге (40-50 Люксембург, 70-80 Швеция), видимо она очень критична.
4. Сколько ни пытался постигнуть логику работы КС ГО с сетью, ничего не получилось.
Тут и кривая регистрация попаданий по игрокам с высоким (от 80 по Tab) пингом, и постоянное преимущество игроков с низким (5-15 по Tab) пингом - они реально видят тебя раньше, даже стоя за углом они прекрасно реагируют на выбегающего меня, хотя у тех, кто выбегает из-за угла, вроде как 30 мс преимущества по дефолту перед тем, кто ждёт неподвижно.
Тут и непонятные топфраггеры с пингом выше 100 и даже выше 300...
В общем, игра в КС ГО по интернету при тикрейте 64 - это привет, рандом.

Ах да, старые формулы расчёта cl_interp летят в трубу - на тикрейте 64 и выше он ограничен отметкой в 0.031, т.е. уже как бы cl_interp = cl_interp_ratio / cl_updaterate не катит, т.к. при interp_ratio 2 и cl_updaterate 64 interp должен быть 0.03125, целых 0.25 мс интерполяции "исчезли", а что делать тем, у кого updaterate ниже 64?.. Хз...

Иными словами, я решения не нашёл. Говорят, что классно играть 5 на 5 на серверах с 128 тикрейтом и пингом ниже 50, но я такую игру попробовал лишь один раз, на ESL, но в полной мере ощутить преимущество такого сервера не смог - попалось два идиота-тиммейта из Португалии, но это совсем другая история...

Закрыто