Настройка рейтов для игры на сервере

Discussion in 'Общие вопросы' started by Accelerator, Jan 27, 2016.

  1. Accelerator

    Accelerator Главный Администратор Staff Member Администратор

    Наш сервер работает на повышенном тикрейте. Стандартный тикрейт для серверов Left 4 Dead 2 является 30, у нас он 60.

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

    Однако, чтобы увидеть то, что подразумевает под собой тикрейт, необходимо иметь достаточно хорошее и стабильное соединение с нашим сервером, а также достаточно не слабый компьютер. От игрока требуется достаточно быстрый интернет от его провайдера. Примерно 10Мбит/сек и выше, поскольку сервер начинает отправлять и принимать пакеты данных чаще и их объем увеличивается в 1.5-2.5 раза. Для этого важно, чтобы интернет соединение было стабильным. И компьютер, который способен выдавать в игре стабильные 60FPS.

    Настройка рейтов на клиенте
    rate
    - максимальный объем информации (в байтах/bytes), который способен принять сервер.
    По скольку сервер уже при вашем входе в игру задает минимальные рейты для вас (по умолчанию 60000 байт), вы также можете поднять это число до 100000 байт, введя в консоль клиента команду rate 100000. Данную команду нужно будет прописывать каждый раз при каждом входе на сервер.

    cl_cmdrate - это максимальное число пакетов, которые вы (клиент) можете отправить на сервер за секунду. Другими словами, это ваши данные о ваших выстрелах, попаданиях по боссам, игрокам, мобам и т.д. Чем больше информации будет отправлено о ваших действиях, тем точнее и результативнее будут эти действия. Для 60 тикрейта вы можете выставить cl_cmdrate 60. Но учтите, если компьютер у вас не самый новый и не способен выдавать в игре стабильные 60FPS, данная команда вам ничего не даст. В этом случае лучше всего выставить число согласно вашим FPS. К примеру имея 30FPS в игре, вы должны выставить cl_cmdrate 30. Это минимально допустимый предел у нас на сервере. Также вы можете поэксперементировать и выставлять любые значения, которые для вас будут оптимальными. Также смотрите строку choke. Если она постоянно у вас возрастает выше чем 20-30, значит ваш компьютер просто не способен послать столько информации, сколько требует сервер. В этом случае вы должны определить этот параметр так, что бы choke у вас уменьшился. Начинайте с минимального, т.е. 30 и пробуйте увеличивать его с шагом в 5 единиц, либо оставьте его на уровне 30.

    cl_updaterate - это количество пакетов, которые вы способны принять в ответ с сервера. Иными словами, это информация обо всем, что в данный момент происходит на сервере. Чем больше данный параметр, тем точнее вы видите все происходящее на сервере. Здесь большое значение как раз таки принимает скорость вашего интернет-соединения. Если вы видите, что у вас идут потери пакетов (смотрите параметр loss), вам необходимо уменьшить данный параметр. Начинайте с минимального, т.е. cl_updaterate 30 и постепенно его увеличивайте с шагом в 5 единиц, либо оставьте его на уровне 30. Если ваше интернет соединение достаточно быстрое, вы можете смело использовать максимальный параметр cl_updaterate 60.

    Настройка интерполяции
    lerp
    - это задержка на обработку и сглаживание информации, поступающей с сервера. Интерполяция предназначена для сглаживания рывков в игре, дабы игрок не видел слайд-шоу. Другими словами, чем выше интерполяция, тем меньше информация у клиента соответствует информации на сервере. Однако, если вы плохо разбираетесь в данных настройках мы крайне не рекомендуем проделывать действия, описанные ниже, т.к. неправильные действия могут привести к рывкам и лагам у вас в игре.

    cl_interp (стандартное значение cl_interp 0.1 (100 мс)) - устанавливает время задержки между тем, что происходит на сервере. На какой промежуток времени у вас отличается информация от той, что в данный момент на сервере.

    cl_interp_ratio (стандартное значение cl_interp_ratio 2) - частота интерполяции. Величина говорит о том, сколько раз информация с сервера сглаживается на стороне клиента.

    Оптимальные значения этих 2х команд вы должны найти самостоятельно. Для полного отключения интерполяции введите в консоль
    Code:
    cl_interp 0
    cl_interp_ratio 0
    Но при таких настройках могут появляться незначительные подергивания игроков.
    Наиболее оптимально будет иметь такие настройки. При тестах фризов на них не замечалось.
    Code:
    cl_interp 0.1
    cl_interp_ratio 1
    или
    Code:
    cl_interp 0.1
    cl_interp_ratio 0
    или (lerp 60)
    Code:
    cl_interp 0.06
    cl_interp_ratio 0
    Данные значения этим двум параметрам нужно прописывать каждый раз при каждом входе на сервер. Увы, игра сама их не сохраняет.
    Если вы достаточно опытны и разбирайтесь в данных настройках, вы можете сами для себя подобрать оптимальные значения, с которыми вам будет комфортно.

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

    Итак, подведя итоги. Для тех, у кого достаточно мощные компьютеры, имеется быстрое и стабильное интернет соединение, вы можете смело прописывать себе максимальные настройки для параметров cl_cmdrate и cl_updaterate.
    Code:
    cl_cmdrate 60
    cl_updaterate 60
    Тем же, у кого одно из двух условий не выполняется, вы можете прописать минимальные значения cl_cmdrate и cl_updaterate и оставить их на уровне отметки 30, либо же постепенно их увеличивать с интервалом шага в 5 единиц.
    Code:
    cl_cmdrate 30
    cl_updaterate 30
    Т.к. значения mat_queue_mode, rate, cl_interp, cl_interp_ratio не сохраняются, вы можете прописать их в кофиге autoexec.cfg, который потом положить в папку с игрой (./SteamApps/common/Left 4 Dead 2/left4dead2/cfg). В этом случае этот конфиг будет всегда выставлять нужные значения. Или к строке запуска игры добавить +mat_queue_mode 2 +rate 100000 +cl_interp_ratio 1 ("правой кнопкой по игре в библиотеке игр стима" --> "Свойства" --> "Установить параметры запуска...")

    Желаем вам приятной и плавной игры на нашем сервере! :)
     

    Attached Files:

    Last edited: Oct 27, 2018
    `gg, easybot, Колясик and 3 others like this.
  2. Череп

    Череп Постоянный пользователь Участник

    хз, тестил с rate 128000 cl_cmdrate 64 cl_updaterate 64, особой разницы не увидел, поставил дефолт 30,30,30.
    Кстати как раз таки на cl_interp_ratio 1 лично у меня переодически появляются фризы после убийства боссов.
     
  3. Accelerator

    Accelerator Главный Администратор Staff Member Администратор

    С фризами при убийстве боссов проблема была и ранее. Пытаюсь разобраться в причинах. Частично она была решена путем переписывания плагина лута. Завтра займусь оптимизацией плагина статистики.
    Возможно также виной фризов может выступать и сама игра.
     
  4. Accelerator

    Accelerator Главный Администратор Staff Member Администратор

    Провел полную оптимизацию SQL запросов статистики и системы банов. Фризов больше не должно быть. Если будут какие-то глюки, прошу сообщать об этом.
     
  5. Череп

    Череп Постоянный пользователь Участник

    Кстати кому интересно, cl_interp и cl_interp_ratio нужно выставлять в зависимости от того, какой у вас пинг на сервере, вот примерные настройки:

    Ниже 30 ms - cl_interp = 0.015500; cl_interp_ratio 1/0

    30-59 ms - cl_interp = 0.015500; cl_interp_ratio 2

    60-89 ms - cl_interp = 0.015500; cl_interp_ratio 3

    90-109 ms - cl_interp = 0.031000; cl_interp_ratio 2

    110+ ms - cl_interp = 0.031000; cl_interp_ratio 3

    Также кому лень возиться с autoexec'ом можно прописать в параметрах запуска - "правой кнопкой по игре в библиотеке игр стима" --> "Свойства" --> "Установить параметры запуска..." и вбиваем в появившееся окно вот это -novid +rate 60000 +cl_updaterate 64 +cl_cmdrate 64 +cl_interp_ratio 2 +cl_interp 0.015500 (циферки подставить свои, -novid - отключает надоедливую видео заставку вначале) нажимаем "ок". В игре вбивать ничего не надо, настройки автоматом будут проставляться при всех последующих запусках.
     
    `gg, Лунатик and Accelerator like this.
  6. stasik07

    stasik07 Администратор сервера Versus Модератор

    30-59 ms - cl_interp = 0.015500; cl_interp_ratio 2

    60-89 ms - cl_interp = 0.015500; cl_interp_ratio 3

    110+ ms - cl_interp = 0.031000; cl_interp_ratio 3


    Эти настройки работать не будут, т.к лерп(cl_intep) не может быть меньше, чем величина, равная (1/cl_updaterate)*cl_interp_ratio. Кроме того cl_interp_ratio , на сколько я понял, может принимать значения только 0/1/2.

    Предложу свой вариант настроек:
    rate 100000
    cl_updaterate 64
    cl_cmdrate 64
    cl_interp_ratio 2
    cl_interp 0.067

    Давал его нескольким игрокам, им он тоже понравился.
     
    Iris likes this.
  7. dp.

    dp. Новичок

    заметил, что cl_cmdrate напрямую зависит от фпс самого экрана и команда cl_cmdrate 60 не ограничит в 60 пакетов. И вот тут у меня появилась проблемка, получается серв мне отдает 60 пакетов(cl_updaterate 60), а я ему 140(фпс моего экрана) пакетов, ну + - даю столько, то есть у меня на экране инфа обновляется быстрее чем на серве и я ему больше данных присылаю, по идеи это не правильно, он же не засчитывает все мои 140 верно? Тогда вопрос, как ограничить в самой игре 60 фпс моника, чтоб на серв улетало 60 пакетов максимум. карта нвидиа. в настройки самой карты лезть? может кто сталкивался..
     
  8. dp.

    dp. Новичок

    а на счет лерпа и бомжей лагающих и тд, есть лагокомпенсатор на стороне серва, не помню команду, в первой лефтке была... в этом случае, даже при нулевом лепре не лагает ничо, только проц серва грузит страшно) хотя наверное для 10х10 его включать не стоит...
     
  9. Accelerator

    Accelerator Главный Администратор Staff Member Администратор

    Сервер не принимает более 60 пакетов от вас, это ограничено настройками сервера, не важно что у вас стоит в cl_cmdrate.
     
  10. Satyricon

    Satyricon Новичок Участник

    Подскажите кто знает, с переустановкой винды игра перестала видеть autoexec.cfg 1.png
     
  11. stasik07

    stasik07 Администратор сервера Versus Модератор

    Как вариант перенести настройки из autoexec.cfg в config.cfg
     
  12. Satyricon

    Satyricon Новичок Участник

    сделал 1.png не помогает, есть еще варианты? в параметрах запуска игры надо прописываем + exec autoexec.cfg
     
  13. stasik07

    stasik07 Администратор сервера Versus Модератор

    а что конкретно не работает? Все бинды/команды?
     
  14. Accelerator

    Accelerator Главный Администратор Staff Member Администратор

    Советую также многим прописать в параметры запуска игры команду +mat_queue_mode 2, либо в autoexec. Данная команда позволяет частично переложить задачи игры на второе ядро (поток) процессора. Поможет убрать микро-фризы в игре, если они у вас наблюдаются.
     
    Last edited: Oct 27, 2018
    Satyricon likes this.
  15. Varten

    Varten Новичок

    Я играю долгое время с такими настройками в файле autoexec
    //прицел
    cl_crosshair_thickness 2 // толщина
    cl_crosshair_green 0 // интенсивность зелёного
    cl_crosshair_red 255 // интенсивность красного
    cl_crosshair_blue 0 // интенсивность синего цвета
    cl_crosshair_dynamic 0 // статичный прицел (1 - динамичный)
    cl_colorblind 0 // режим цветовой слепоты
    cl_crosshair_alpha 255 // прозрачность (255 - полностью видим, 0 - полностью прозрачен)

    //настройки соеденения
    cl_timeout 10 // время отключения от сервера при потере соединения
    cl_lagcompensation 1 // компенсация лагов для точности
    cl_interp 0.000 // временной промежуток, через который происходит интерполяция(лерп)
    cl_interp_ratio 0 // число промежутков между интерполированием мира
    cl_updaterate 100 // число запросов обновлений игрового мира с сервера в секунду
    cl_cmdrate 100 // число обновлений информации о себе на сервере в секунду(увеличивает пинг)
    rate 300000 // максимальное число передаваемых байт в секунду с серверов
    cl_downloadfilter nosounds // не скачивать пользовательские звуки при загрузке сервера
    cl_lw 1 // все эффекты и действия связанные с оpyжием пpосчитываются на стоpоне клиента
    cl_lc 1 // Данный паpаметp заставляет сеpвеp пpинять во внимание ваш пинг и значительно оптимизиpовать pаботy

    alias lerpa+ "incrementvar cl_interp 0 0.1 +0.0001"// cl_interp +0.0001
    alias lerpa- "incrementvar cl_interp 0 0.1 -0.0001"// cl_interp -0.0001
    alias lerpb+ "incrementvar cl_interp 0 0.1 +0.001" // cl_interp +0.001
    alias lerpb- "incrementvar cl_interp 0 0.1 -0.001"// cl_interp -0.001
    alias lerpc+ "incrementvar cl_interp 0 0.1 +0.01"// cl_interp +0.01
    alias lerpc- "incrementvar cl_interp 0 0.1 -0.01"// cl_interp +0.01
    bind "INS" "lerpa+"
    bind "DEL" "lerpa-"
    bind "HOME" "lerpb+"
    bind "PGUP" "lerpc+"
    bind "PGDN" "lerpc-"
    bind "End" "Exit"
    bind MOUSE4 sm_info
    bind MOUSE5 sm_drop
    bind F4 sm_speclist
    bind F5 sm_rank
    bind F6 sm_nextrank
    bind F7 sm_frags
    bind F8 sm_maptop
    bind "F9" "say status callvote kick


    //графика
    cl_forcepreload 1 // предзагрузка объектов
    cl_ragdoll_limit 0 // кол-во отображаемых фрагментов
    func_break_max_pieces 0 // кол-во обломков
    mat_bloom_scalefactor_scalar 0 // улучшенная цветовая гамма
    mat_grain_scale_override 0 // отключить зернистость плёнки
    r_physpropstaticlighting 0 // быстрое освещение объектов
    r_eyemove 0 // отключить анимацию глаз
    z_wound_client_disabled 1 // мало крови
    r_dynamic 0 // динамическое освещение
    mat_postprocess_enable 0 // отключение сепии у заражённых

    // АУДИО
    snd_pitchquality 1 // высокое качество звука

    // ПРОЧИЕ НАСТРОЙКИ
    con_enable 1 // включить консоль отладки
    joystick 0 // отключить джойстик
    gameinstructor_enable 0 // отключить игрового инструктора
    cl_autohelp 0 // отключить игрового помощника
    cl_showhelp 0 // отключить подсказки
    cc_subtitles 0 // отключить субтитры
    cc_lang russian // субтитры на русском
    spec_allowroaming 1 // свободный обзор при наблюдении
     
    Genster and Satyricon like this.
  16. Geraldduh

    Geraldduh Новичок

    У меня роутере D-Link и GUI в нём отличается от того что в видео.
    Как правильно настроить его?
     
  17. 713

    713 Новичок Участник

    Очень интересная информация, спасибо!