Последние рекорды серверов
Pro Nub

Вопросы связанные с kz_jump_stats

  1. Здравствуйте. Хотел бы задать несколько вопросов по поводу статистики.

    1)Настроил показ одного престрейфа: ljs_main_prestrafes 1.(Speed + difference) Можно ли сделать так чтобы престрейф в основной статистике и в hud показывался после прыжка, а не до него без учета fog?

    2)Если первый столбец показывает gain вместо gain-loss, то сумма которая показывается в скобках после Max speed является суммой gain или по-прежнему gain-loss? Если второе, то можно ли настроить на gain.

    3)Не показывает звуки impressive, goodlike и т.д у прыжка duckbhop. Можно ли их включить ?

    4)Пример прыжка на 100аа. 9-й стрейф везде нули но sync 66% - значит ли то, что 44% времени длительности девятого стрейфа моя мышь не двигалась, но кнопка была нажата как бы в пустую, или это неточность статистики и sync должен быть 100% ?

    Часто у меня возникают сомнения по поводу sync, как будто значения loss,overlaps,desync слишком малы чтобы дать такое большое отклонение в Sync от 100%, но я могу ошибаться. Возможно имеет место быть четвертому параметру влияющему на sync под названием: "Фреймы пустого стрейфа" или вроде того.

    Также можно заметить что на 7 стрейфе desync 1 фрейм, но loss 0 , что как то не совсем логично, ведь desync и loss связаны напрямую между собой. Всё же статистика иногда дает не совсем верные показания?

    1. A 15.2 0.0 10 100% 0 0
    2. D 8.7 0.1 8 87% 0 0
    3. A 10.5 0.0 8 100% 0 0
    4. D 8.5 0.0 9 100% 0 0
    5. A 7.2 0.0 8 100% 0 0
    6. D 6.3 0.0 8 100% 1 0
    7. A 3.2 0.0 7 71% 0 1
    8. D 6.4 0.0 7 85% 2 0
    9. A 1.9 0.0 6 66% 0 0

    5) При прыжке Long jump Frames(в консоли) показывает иногда 73 а иногда 74 - не подскажете из за чего такое происходит ? Как будто длительность прыжка разная всегда.
    Отредактировано Darkspear 23.07.24 12:25
  2. 1) что-то намешано всего подряд, по порядку:

    ljs_main_prestrafes задаёт максимальное количество престейфов, отображаемых в основной стате

    Speed + difference - настройка отображения престрейфа в момент прыжка, задаётся в меню настроек либо кваром ljs_showpre

    Престрейф в основной стате показывает тот, что был до действия замедления, потому что основная стата отображается постфактум, и для игрока при 2 FOG важно не то, с насколько плохим престрейфом он пролетел соответствующую дистанцию, а то, насколько правильно он набрал скорость перед прыжком. Если же есть необходимость видеть именно скорость после замедления, то для этого существует showpre, который отображается непосредственно в момент прыжка, то есть как раз тогда, когда этой информацией можно воспользоваться.

    2) если речь про скобки, которые стоят после Maxspeed в консольном логе основной статы, то там пишет gain-loss (это можно понять, обратив внимание на строку после стрейфовой статы, где то же значение продублировано с пояснением смысла). Чистый суммарный gain в скобках настроить нельзя, если хочется его там увидеть, нужно обосновать практическое значение по сравнению с суммарным gain-loss.

    3) пороги для звуков и colorchat для duckbhop такие же, как для обычного бхопа, для drop duckbhop такие же, как для drop bhop. Отдельных настроек под эти пороги не делал, чтобы не захламлять конфиг. Сомневаюсь в их необходимости, colorchat для duckbhop в uq стате использовался только чтобы спамить красным в чат, никакой ощутимой пользы от него не было.

    4) в kz-rush стате нет понятия sync, оно заменено на efficiency, причём как раз по той причине, что игроки неверно истолковывают его смысл. Здесь могу посоветовать почитать статью про стату, там вообще много полезного:

    https://kz-rush.ru/ru/article/kz-rush-lj-stats

    Там же упоминается команда чата /dt, можно воспользоваться ей и посчитать все интересующие параметры вручную, чтобы проверить правильность стрейфовой статы.

    5) а про это есть статья из учебника, даже с поясняющей картинкой:

    https://kz-rush.ru/ru/page/calculating-distance
  3. 1) Только сейчас заметил, что не показывается последний столбец angle(угол поворота модельки в прыжке) в консоли. Сервер скачивал около полугода назад и настроил его под себя. Если скачиваю версию от 20.05.24 то угол показывает, но перенастраивать заного не хотелось бы. Не могли бы сказать что нужно сделать чтобы показывался угол.

    2) Не могли бы объяснить как игра измеряет угол поворота модельки в прыжке по каждому стрейфу ? Если бокс модельки статичен и не поворачивается, как тогда вычисляется/измеряется угол поворота модельки ?

    3) Задумался о том, что Maxspeed в итоге то разный в uq_jumpstats и kz-rush статах. Согласно статистике kz rush, Max speed это сумма "суммы Gain-loss" и престрейфа, но в uq статистике Max speed это сумма Gain и престрейфа. Правильно ли я понял, что uq_jumpstats статистика показывает завышенный(неправильный) Maxspeed так как не отнимает потери скорости?



    4)Пример прыжка Longjump:

    [MAIN] LongJump
    Distance: 237.601837 units
    Maxspeed: 289.144 (+14.792)
    Prestrafe (FOG): 274.351
    Frames: 73
    Strafes: 6
    Efficiency: 39.6%
    #N button gain-loss duration efficiency overlaps desync
    1. D 2.5 0.0 11 27% 0 0
    2. A 3.5 0.0 19 31% 1 6
    3. D 4.4 0.0 11 90% 1 0
    4. A 2.8 0.0 10 60% 0 2
    5. D 0.8 0.0 11 18% 2 4
    6. A 0.6 0.0 10 10% 0 5
    total gain-loss: 14.7 / efficiency: 39.6%

    [DETAILED]
    1) 0.0WD> 0.0WD> 0.0WD> 0.0WD> 0.0WD> 0.0WD> 0.0D> 0.0D> 0.7D> 0.8D>
    1) 0.8D>
    2) 0.8A> 0.0A> 0.0A> 0.0A> 0.0A> 0.0A> 0.0A< 0.0A< 0.0A< 0.0A<
    2) 0.0A< 0.0A< 0.0A< 0.0A< 0.6A< 0.6A< 0.5A< 0.4A< 0.2AD<
    3) 0.1D> 0.0D> 0.1D> 0.2D> 0.4D> 0.6D> 0.7D> 0.7D> 0.7D> 0.5AD>
    4) 0.4A> 0.0A> 0.0A< 0.0A< 0.0A< 0.4A< 0.5A< 0.7A< 0.6A<
    5) 0.6D< 0.0D< 0.0D< 0.0D< 0.0D> 0.0D> 0.0D> 0.0D> 0.0D> 0.2AD>
    5) 0.0AD>
    6) 0.6A> 0.0A> 0.0A> 0.0A 0.0A 0.0A< 0.0A< 0.0A<

    В стрейф-стате в loss везде 0, но desync 6 во втором стрейфе, что как то нелогично, ведь если есть фреймы desync – то есть фреймы в которых было замедление модельки, то автоматически loss не может быть нулевым, поправьте если ошибаюсь.
    Если вы будете стараться прыгать специально плохо с плохим Eff, то часто будут вылетать противоречивые показания.

    **************************************************************************
    Мне крайне интересно и в то же время досадно - почему статистика иногда выдает противоречивые показания как в примере выше, у вас есть объяснение почему так происходит и возможно ли это пофиксить?
    **************************************************************************

    DETAILED я понял вот как: Цифры показывают Gain. Стрелка вправо означает, что мышь двигается вправо. Стрелка влево- мышь двигается влево. Стрелки нет - мышь остановлена, поправьте если ошибаюсь. (когда нет стрелки как я понял это и есть фреймы пустого стрейфа про которые я писал в пункте 4 комментарием выше, но которых нет в стрейф стате).


    Если это верно, то рассмотрим 2-й стрейф в DETAILED.
    Прыжок совершался в правую сторону. В первом фрейме 2-ого стрейфа мышь двигалась в направлении замедления прыжка и мы видим увеличение gain на 0.8, что логически несопоставимо.
    Начиная со второго по 6-й(включительно) фрейм мышь по прежнему двигалась в направлении замедления и здесь везде 0.0 что логично. С 7-ого фрейма мышь начала двигаться в противоположную сторону в направлении ускорения прыжка ровно до 15 фрейма и мы видим что все 8 фреймов нет прироста gain-loss, что снова не логично. И начиная с 15-ого до 18-ого всё становится нормально, 19-й с перекрытием почему то вновь показывает прирост к скорости. Повторюсь, если прыгать плохо, то такие большие несоответствия выпадают часто, но если игрок профессионал и прыгает почти без ошибок, то несоответствий минимум.

    Получилось так, что и DETAILED неверно показывает результаты. Не могли бы написать свое мнение из за чего такие расхождения? Странно что статистика показывает такие неточности в прыжках, интересно понять из за чего это возникает.
    Отредактировано Darkspear 24.07.24 06:31
  4. 1) Версия статы с тех пор несколько раз обновилась, дело там не только в angle, но в любом случае все новые версии имеют обратную совместимость со старыми. Даже если появились новые настройки или новые значения для них, они не конфликтуют со старыми. Конфиг можно не трогать, он сам обновится нужным образом.

    2) Положение игрока в целом определяется тремя координатами и тремя углами (два определяются движением мыши, третий проявляется в виде наклона вбок после падения либо в качестве эффекта, созданного маппером), какие-то специальные углы движок игры не замеряет, это мои подсчёты в стате.

    Бокс в виде параллелепипеда действительно неподвижен и от углов поворота не зависит (на самом деле и бокса как такового нет, он как бы виртуально появляется когда нужно обсчитать взаимодействие с плоскостями карты, а так игрок представляет собой точку и камеру, смещённую относительно неё). Хитбоксы и моделька игрока, которую мы видим в игре, с боксом взаимодействия с картой не связаны, это всё разные вещи.

    3) Изначально это именно в uq стате используется gain-loss, но для краткости пишется что это gain. В своих первых версиях я считал чистый gain и заменил на gain-loss только для того, чтобы у юзеров uq статы не было диссонанса (собственно половина статы написана по этому принципу, поначалу я даже техники различать не планировал, только виды престрейфа). Но возможность настройкой переключиться на чистый gain я оставил, на всякий случай.

    Что касается Maxspeed, сначала я считал конечную скорость после прыжка, называл Endspeed, но потом опять же из-за uq статы стал считать максимальную, хотя и не включил её отображение в основную стату по умолчанию, так как параметр посчитал по большей части бесполезным. Так что считают они как правило одно и то же, за исключением случаев, где подсчёты uq статы на последнем стрейфе отличаются (не знаю почему, и копаться в её коде не буду, мне проще обосновать как посчитал я).

    4) Ну вот как раз займёмся обоснованием на этом примере.

    desync коррелирует с loss, но прямым следствием из него не является. Из описания статы:

    Desync показывает количество фреймов, когда движение мыши происходило в сторону, противоположную стрейфу


    Набор или потеря скорости помимо нажатых клавиш зависят от угла между скоростью и направлением взгляда в конкретный фрейм. Но это влияние существует только в определённом диапазоне, вне его вектор скорости изменить не получится. Например: я разбежался, прыгнул вперёд, нажал A и стал поворачивать мышь вправо до самого приземления. Все фрейм этого стрейфа пойдут в desync, ведь я поворачивал мышь не в ту сторону, но потерь скорости при этом никаких нет, потому что в нужный диапазон я попал всего на один фрейм когда нажал A (даже gain получить успел), а дальше тут же из него выпал и на скорость уже никак не влиял. Вот тут если пропустить всякие странные формулы и пролистать до самого конца статьи, то можно найти график, на котором показано, как gain (loss) зависит от угла между скоростью и направлением "желаемой скорости" (когда нажимаем клавишу A, то оно направлено влево от нас): https://kz-rush.ru/ru/page/strafe-physics. В своём странном прыжке я на один фрейм оказался на гребне (угол 90), а потом вышел на жёлтую равнину, где прирост нулевой.

    Теперь вернёмся к обсуждаемому примеру. На первом стрейфе вместе с D долго зажата W, из-за этого на гребень gain'а мы не выходили, но мышь вели в правильном направлении, desync'а тут нет. А вот когда нажали A, продолжая вести мышь вправо, начался отсчёт нового стрейфа, и первые 6 фреймов справедливо записало в desync (зажата A, а стрелочка вправо).

    По поводу пустых стрейфов - такого понятия для статы нет. Если клавиши не нажаты в начале прыжка - эта часть станет началом первого стрейфа. Если не нажаты между стрейфами - эта часть станет началом следующего стрейфа. Если в конце прыжка - это отдельный стрейф. В этом несложно убедиться самостоятельно.

    Напоследок ещё раз подчеркну - из оверлэпов или десинка не следует loss, это просто вспомогательная инфа, по которой можно восстановить картину в целом. Добавление angle относится к ним же, по сути я пытаюсь заменить то, что показывается на гифках в этой статье: https://kz-rush.ru/ru/page/longjump-physics. Возможно добавлю вывод ещё чего-нибудь, тот же угол с графика, только уже в отдельный вывод, detailed и так уже переполнен. Здесь на форуме я по запросу делал такие анимации для тех, кто не мог разобраться в ошибках по detailed, это действительно не всегда просто.
    Отредактировано Kpoluk 23.07.24 19:27