Форум находится на стадии наполнения информацией.

О рейтах в Day of Defeat source и точка.

Информация по игре, настройка, техническая часть Day of Defeat source

Модератор: Russian Arena

Закрыто
Аватара пользователя
Russian Arena
Сообщения: 12
Зарегистрирован: 23 янв 2019, 20:22
Поблагодарили: 1 раз
Russia

О рейтах в Day of Defeat source и точка.

#1

Сообщение Russian Arena » 20 фев 2019, 12:35

Допустимые параметры рейтов для плавной игры и хорошей регистрации на сервере:

Переходим в наблюдатели, открываем консоль (Ё) и пишем команды по очереди:

rate от 50000

cl_updaterate 66

cl_cmdrate 66

cl_interp 0.0304 (или меньше) (если интернет притормаживает то 0.0608, а если совсем плохое соединение то 0.1)

Для интересующихся:

В силу того, что пропускная способность сети ограничена, сервер не может посылать пакет с обновлением всем клиентам каждый раз, когда в игровом мире происходит изменение. Вместо этого, сервер делает моментальные снимки состояния игрового мира через равные промежутки времени и передает эти снимки клиентам. На доставку пакета с данными от сервера к клиенту и обратно требуется определенное время (ping). Это означает, что время на клиенте всегда немного отстает от времени сервера. Более того, команды ввода с клиента тоже должны дойти до сервера, так что сервер тоже обрабатывает пользовательские действия с задержкой. В добавок, время прохождения пакета у каждого клиента отличается в зависимости от типа соединения, фонового трафика и частоты обновлений. Эти разницы во времени между сервером и клиентом порождают различные логические проблемы, которые становятся еще серьезнее при возрастании пинга.

про rate
Рейты (rates) - это частота обмена данными с сервером. Измеряется в количестве пакетов в секунду. Серверы в стандарте генерируют состояние игрового мира 66.7 раз в секунду, в то время как клиенты (игра на вашем компьютере) по умолчанию настроены на 20 пакетов/с на прием с сервера и 30 пакетов/с на передачу на сервер. Чем чаще вы обмениваетесь данными с сервером, тем больше картинка у вас на экране соответствует той, что на сервере.

про cl_updaterate
updaterate определяет как много обновлений в секунду вы можете получить от сервера. Ясно что нужно получать как можно больше обновлений, так как это дает вам более точную картину того где кто находится и куда летят их пули. Однако, если у вас будет высокий updaterate и низкий rate вы не сможете послать достаточное количество данных за обновление и любая выгода от высокого updaterate будет сведена к минимуму.

про cl_cmdrate
cl_cmdrate работает так же как и cl_updaterate. Эта команда определяет сколько обновлений в секунду вы посылаете на сервер. И снова ее значение нужно ставить как можно выше. Чем больше обновлений вы пошлете на сервер, тем больше информации он будет иметь о ваших действиях и о том куда летят ваши пули.

про lerp
Например, установка значения cl_updaterate равным 20 будет означать, что клиент получает от сервера пакеты 20 раз в секунду, разница между пакетами - 50 мс. Чтобы предотвратить лагание от возможной потери пакета, интерполяция должна происходить в промежуток времени равный 2х50=100 мс. Чтобы обеспечить такую интерполяцию, необходимо задать параметр cl_interp 0.1. Множитель два означает, что мы хотим интерполировать две области между тремя пакетами пришедшими от сервера: "._._.". Если мы хотим интерполировать только одну область "._.", мы должны изменить соответствующий параметр. Этим параметром является переменная cl_interp_ratio. Она может принимать значения 2, 1, 0. Как не сложно догадаться, если эта переменная равна нулю, то интерполяция на клиенте будет отсутствовать.

В общем случае формула для промежутка такова: lerp = cl_interp, но не может быть меньше cl_interp_ratio/cl_updaterate. Итак, тут мы приходим к самому определению: lerp - промежуток времени, в котором пакеты, полученные клиентом, будут интерполироваться.

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

Но никаких придуманных цифр типа 0.27 или 0.54 быть не должно (cl_updaterate / cl_interp_ratio = cl_interp), все это высчитывается оптимальным путем в зависимости от рейтов и настроек сервера и клиента

Ввиду этого, я искренне не понимаю зачем технические администраторы, на российских Dods серверах, ставят плагины ограничивающие вход на сервер игроков с измененными переменными описанными выше.

Закрыто