kin
(LeGion)
Зарегистрирован: Apr 2006
Проживает: Тасмания/Занзибар
Написал: 166 сообщений
|
Причиной потери части получаемой игроком информации может быть, например, беспричинное завышение параметра tickrates в настройках сервера.
Tickrate - это "fps" на которых работает сервер. Наиболее важный параметр, котрый серверный администратор может изменять. Здесь две стороны медали: повышенный tickrate означает большую загрузку процессора и больший трафик от сервера к клиенту, но в то же время дает игрокам лучший пинг.
По умолчанию tickrate (20 для интернет серверов) приводит к жуткому пингу - когда сервер работает на 20 тиках в секунду означает 1/20-ю часть секунды он будет думать прежде чем среагирует на пинг клиента - это означает 50 ms! Так же это влияет на игру - если ваш сервер работает на 20 тиках значит все команды игроков будут ждать 50 ms прежде чем как-то смогут повлиять на игру. И прицеливание становится просто невозможным - подумайте сами какая может быть меткость при 20 fps. Если повернете быстро мышь экран будет перемещаться рывками на такой низкой скорости - вот, собственно, что может сделать сервер с вашим прицеливанием (и с вашими затратами на хорошую связь) при работе на такой низкой частоте. Это так же приводит к видимому увеличению дамаджа у продолжительно стреляющего оружия (альтернативный пульс [шафт] и миниган) - поскольку больше чем одиночные выстрелы попадают в цель.
В последнее время серверные администраторы пробуют различные значения. Можно встретить сервера со 100 тиками, что прекрасно для игроков с толстыми каналами (и если позволяет мощность серверного процессора и достаточно широкий канал для прокачки трафика), но совсем не хорошо для ISDN-игроков, поскольку генерит больше трафика, чем может принять 64 kbit линия isdn и будет приводить к потере пакетов от незначительной информации о дырках от пуль на стенах до серьезной о передвижении противника.
Как игрок вы не можете изменить эту ситуацию. Тем не менее, вы можете выяснить с каким тикрэйтом работает сервер. Напишите в консоли inject userflag 1 (значение 0 отключит функцию)
Первый номер (максимальный) тикрэйт сервера. Вы не можете тем не менее увидеть (configured netservermax-) tickrate путем простой проверки входящих пакетов в секунду - у linux-сервера ведут себя по-другому.
Другая возможность команды userflag 1 определить баг пинга (известный в Windows 2000 и некоторых устаревших linux-системах). Следующий номер показанный на картинке число подключенных клиентов и по причине этого бага, по вине которого клиент не может по-нормальному отконнектиться от сервера после смены карты, число это может быть больше, нежели реально подключено игроков (плюс спектаторы) до тех пор пока действует баг пинга.
Последняя важная информация (для игрока), которая может быть получена с помощью команды userflag 1 это просмотр загрузки процессора.
3-й и 4-й номера отображают время, потребовавшееся серверу для последнего тика. Поскольку время определяется с "начала тика" и его "окончания", оно может быть использовано как индикатор загрузки cpu. Сервер выполняет (или пытается выполнять) частоту тиков в секунду, каждый из которых требует милисекунды net+act. Если net + act клиенту; для каждого клиента, используется минимальная клиентская скорость и maxclientrate, не влияет на трафик клиент->сервер.
Что отличает Linux сервер от Windows сервера? Известно многим: число отсылаемых ежесекундно пакетов не постоянно по отношению к netservermaxtickrate. По замыслу авторов игры, UT должен отсылать пакет в каждый тик, но даже при загрузке процессора менее 50%, Linux сервер старается отсылать меньше, не считаясь с определенным для этого числом пакетов. Это влияет и на пинг по F6 - если даже клиент получает всего 10 пакетов в секунду, ему придется ждать 100 ms пока на его пинг придет ответ!
Возможная причина этому в кроется Linux UT threading. Threading - это концепция, позволяющая мультизадачность: программы говорят операционной системе что они закончили со своим текущим заданием и также получают процессорное время снова для работы. Похоже команды, делающие это в Linux UT, написаны не совсем корректно и сервер "спит" (между тиками) дольше, чем следует. Это означает, что сервер всегда будет работать с меньшей частотой тиков, чем указано в NetServerMaxTickRate. Частота, при которой это происходит меняется от времени и под воздействием других неизвестных факторов.
На сегодня это не лечится. В большинстве случаев похоже сервера пытаются отсылать минимальное число пакетов, ниже нормы, когда происходит "экшн" в игре, но это не правило.
Как тикрэйт влияет на трафик? Конечно, более высокий тикрэйт производит больший трафик, но рост его не линеен (2х тикрэйт совсем не означает 2х трафик). Причина проста: хоть некоторые вещи (такие как прицеливание игрока) реально улучшаются при увеличении тикрэйта и готовы отсылаться каждый тик, то другие вещи нет (игроки не начинают выстреливать в два раза быстрее, менять чаще направление движения). И когда нечего обновлять (новые направления перемещений, ...) никакого трафика для этого и нет. В результате, увеличение тикрейта на значение Х создаст увеличение трафика меньше чем в Х раз.
Принимая во внимание все это, можно дать некоторые рекомендации по установке тикрейта для различных ситуаций. Хотя информация касается Windows серверов, но поскольку Linux сервера никогда не работают быстрее чем должны, значения могут использоваться и для Linux серверов. Значения подразумевают пропускную способность 5000 байт/секунду при полном дуплексе подключенных игроков, если не указано иначе.
1на1 сервер: Тут все просто. С двумя игроками, создающими "действие" не бывает особых проблем с пропускной способностью; вполне хорошо будете себя чувствовать при тикрэйте 50.
4на4 TDM сервер: Значения тикрэйта в районе 40 будут приемлемы. Если только игроки приконнектятся на скорости 6500 байт/сек (как в продвинутом германском клановом матче) тикрэйт 50 будет лучшим вариантом.
5на5 CTF сервер: Тикрэйт 30-35 будет в самый раз.
Для международных игр вы должны уточнить действительно ли пропускная способность равна 5кб/сек между сервером и клиентом. Если клиенты начнут терять пакеты или будет расти пинг, что не происходит при малом тикрейте, стало быть где-то бутылочное горлышко.
Возможно вас поражает, почему Epic рекомендовали намного ниже значения - этому есть две простые причины: они ориентировались на среднего покупателя, имеющего 56к модем (а аналоговые модемы близко не стояли к полному дуплексу) и установили скорость соединения 2800 - и тикрейт сервера на 16 игроков. Соответсвенно нет причин сегодня использовать эти значения, особенно для серьезных игр. Вторая причина в том, что epic никогда не заботились о спортивности своей игры (модем 56к и мясо на 16 человек - fun)
Если у Вас нет паранойи - это еще не значит, что за Вами не наблюдают...
//host.north.kz/jforum/posts/list/75/76.page#2976
у вас тикрейт 33 и то лагает, попадания не засчитываются
сделайте наконец 1 пулемет вместо 2 ибо мясо получается
To surf 40-foot waves is to put yourself...
...In Gods Hands
|