1. Fablo Пользователь

    Регистрация:
    23.03.16
    Сообщения:
    262
    Симпатии:
    32
    Пол:
    Мужской
    VKcom:
    pro_iskan
    Настройка соединения по Net-graph.

    Net-graph - это многофункциональная утилита, встроенная в движок Half-Life. Одно из качеств это полный контроль за качеством соединения клиент-сервер в течении игры.

    Для отображения net_graph, напишите в консоли net_graph 1 (значения 2 и 3 имеют другой стиль отображения и содержание показываемых данных). Чтобы выключить net_graph значение 0. Вы можете регулировать размер и положение net_graph на экране, с помощью net_graphpos и net_graphwidth команд. Для установки net_graph слева используйте net_graphpos 3, в центре значение 2, и справа значением 1, которое является значением по умолчанию. Ширину можно изменить параметром net_graphwidth.
    Теперь разберем net_graph по элементам.
    Элемент А.
    Здесь все просто, показывается текущее значение FPS, в моем случае 98.8 кадра в сек.

    [​IMG]

    Элемент B.
    Здесь похитрее. Это не ping как можно было подумать. Это задержка обработки пакетов на сервере от текущего клиента.

    [​IMG]

    Элемент C.
    В рамке показано текущее значение пакета, которое клиент принял от сервера, в моем примере это значение 34 байта и среднее значение скорости приема данных 4.93 кбайт в сек.

    [​IMG]

    Элемент D.
    Здесь наоборот текущий пакет отосланный на сервер, на примере 15 байт, а также скорость передачи данных 4.78 кБайт в сек.

    [​IMG]

    Элемент Е.
    Не что иное как параметр cl_cmdrate

    [​IMG]

    Элемент F.
    Еще одно значение параметра cl_updaterate

    [​IMG]

    Элемент G

    [​IMG]

    Элемент G-2

    [​IMG]

    Элемент G-3
    Элемент G отображает наш ping в виде линии. Если ping скачет, то и форма линии будет ломаться. Две зеленые черточки по краям обозначают ping равный 0, Линия двигается справа налево в зависимости от нашего значения cl_updaterate, При увеличении параметра скорость возрастает, и наоборот. Скорость линии также зависит от серверного параметра sv_maxupdaterate. Если сервер поставит значение 30, то это принудительно установит вам значение cl_updaterate на 30. Все public-сервера ставят значение sv_maxupdaterate равным 30, для экономии пропускной способности канала. Линия должна идти ровно. Если появляются лаги, на линии появляются пики. Красные точки на линии отображают значение Элемента G-2, loss, это потерянные пакеты к серверу. Желтые точки обозначают Элемент G-3, chokе, «удушье». Этот случай возникает, когда сервер не может передать больше пакетов, чем вы запрашиваете.

    [​IMG]

    Элемент H

    [​IMG]

    Элемент H-2
    Элемент Н показывает как наш клиент отрисовывает кадры. Хочется заметить, что помимо наших графических FPS, есть еще и сетевые кадры в секунду, но они в принципе жестко взаимосвязаны, разницу между FPS клиента и сервера как раз и корректируют параметры cl_updaterate, cl_cmdrate, ex_interp. Так вот, для каждого нормально «отрисованного» пакета на net_graph ставиться синяя точка. Желтые, оранжевые, красные точки обозначают задержанные или пропущенные пакеты ставятся выше белых черточек по бокам. Показано на примере Элемента H-2. Если вы не принимаете достаточное количество пакетов с сервера (<10 в секунду) (красные точки), тогда мы используем не интерполяцию, а экстраполяцию (красные точки), а это совсем плохо. Т.е. вы видите человека в одной точке, а через секунду в другом. Лучшим значением интерполяции (ex_interp) будет всегда только 1/cl_updaterate, либо 0 когда CS сама устанавливает это значение автоматически.

    [​IMG]

    Элемент I

    [​IMG]

    Элемент I-2
    Последний элемент. Эта линия должна быть фиолетовой и это непосредственно относиться к вашему fps и fps сервера. Для каждого кадра (фрейма), который был послан и принят на сервере, на линию ставиться фиолетовая точка. Если команда была отклонена к передаче, ставится красная точка. Другими словами красные точки возникают, если ваш компьютер отрисовывает кадры быстрее, чем вы отсылаете их на сервер. Или если ваш fps больше fps сервера. Это из-за того, что ваше значение cl_cmdrate слишком мало.

    [​IMG]

    В итоге:
    FPS = 100, cl_cmdrate = 50 – красные точки (невозможно послать запрошенные фреймы, например: пропуск ваших действий, стрельбы)
    FPS = 100, cl_cmdrate = 100 – нет красных точек (посылка точных обновлений – высокая точность обновлений)
    FPS = 50, cl_cmdrate = 100 – нет красных точек (использование дублированных кадров – нерациональное использование пропускной способности канала, пример: плохая точность позиционирования)
    Т.е. красные точки означают, что ваш клиент отсылает фреймы недостаточно часто, и изменение параметра cmdrate поможет исправить эту проблему.
    Я надеюсь, этот материал поможет изучить net_graph. Значение net_graph 2 не так важно для вас если вы не маппер или разработчик. Оно просто показывает тип и размер данных отсылаемых на сервер, и управляется значением net_scale.
     
    ярослав, Аян и jokin нравится это.